@steroidsjs/core 3.0.0-beta.97 → 3.0.0-beta.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.0-beta.97",
3
+ "version": "3.0.0-beta.98",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { IModalProps } from '../../../ui/modal/Modal/Modal';
3
3
  import CalendarEnum from './enums/CalendarType';
4
4
  export type CalendarSystemModalFields = 'title' | 'eventGroupId' | 'date' | 'description';
5
+ export type CalendarSystemEventGroupModalFields = 'label' | 'color';
5
6
  export interface IEventInitialValues extends IEvent {
6
7
  eventGroupId: string;
7
8
  }
@@ -54,6 +55,7 @@ export interface ICalendarSystemViewProps extends Omit<ICalendarSystemProps, 'ca
54
55
  onMonthChange: (newDate: Date) => void;
55
56
  applyControl: (event: React.MouseEvent<HTMLElement>) => void;
56
57
  openCreateModal: (eventInitialDay?: IDay) => void;
58
+ openCreateEventGroupModal: VoidFunction;
57
59
  openEditModal: (event: IEvent) => void;
58
60
  getEventsFromDate: (dateFromDay: Date, isMonth: boolean) => IEvent[];
59
61
  onChangeEventGroupsIds: (selectedIds: number[]) => void;
@@ -65,4 +67,8 @@ export interface ICalendarSystemModalViewProps extends IModalProps {
65
67
  isCreate: boolean;
66
68
  eventInitialValues?: any;
67
69
  }
70
+ export interface CalendarSystemEventGroupModalViewProps extends IModalProps {
71
+ isCreate: boolean;
72
+ onEventGroupSubmit: (fields: Record<CalendarSystemEventGroupModalFields, string>) => void;
73
+ }
68
74
  export default function CalendarSystem(props: ICalendarSystemProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
@@ -31,6 +31,7 @@ var hooks_1 = require("../../../hooks");
31
31
  var addEventIfMatchDate_1 = require("./helpers/addEventIfMatchDate");
32
32
  var CalendarType_1 = __importDefault(require("./enums/CalendarType"));
33
33
  var useCalendarSystemModals_1 = __importDefault(require("./hooks/useCalendarSystemModals"));
34
+ var useCalendarSystemEventGroupModals_1 = require("./hooks/useCalendarSystemEventGroupModals");
34
35
  dayjs_1["default"].extend(localeData_1["default"]);
35
36
  function CalendarSystem(props) {
36
37
  var components = (0, hooks_1.useComponents)();
@@ -42,6 +43,7 @@ function CalendarSystem(props) {
42
43
  var _f = (0, hooks_1.useWeekCalendar)(currentMonthDate), currentWeekDays = _f.currentWeek, weekControls = _f.weekControls, forceUpdateWeekOnMonthChange = _f.forceUpdateWeekOnMonthChange;
43
44
  var applyControl = (0, useCalendarControls_1["default"])(calendarType, weekControls);
44
45
  var _g = (0, useCalendarSystemModals_1["default"])(props.calendarModalProps, innerEventGroups, setInnerEventGroups), openCreateModal = _g.openCreateModal, openEditModal = _g.openEditModal;
46
+ var openCreateEventGroupModal = (0, useCalendarSystemEventGroupModals_1.useCalendarSystemEventGroupModals)(innerEventGroups, setInnerEventGroups).openCreateEventGroupModal;
45
47
  var onChangeCalendarType = react_1["default"].useCallback(function (newType) {
46
48
  setCalendarType(newType);
47
49
  if (props.onChangeCalendarType) {
@@ -96,6 +98,6 @@ function CalendarSystem(props) {
96
98
  }
97
99
  return hoursArray;
98
100
  }, []);
99
- return components.ui.renderView(props.view || 'content.CalendarSystemView', __assign(__assign({}, props), { dateToDisplay: dateToDisplay, monthCalendarDays: monthCalendarDays, calendarType: calendarType, currentWeekDays: currentWeekDays, eventGroups: innerEventGroups, eventGroupsTitle: props.eventBlock.title, allHours: allHours, selectedEventGroupsIds: selectedEventGroupsIds, onChangeCalendarType: onChangeCalendarType, onMonthChange: onMonthChange, applyControl: applyControl, openCreateModal: openCreateModal, getEventsFromDate: getEventsFromDate, onChangeEventGroupsIds: function (newSelectedEventGroupsIds) { return setSelectedEventGroupsIds(newSelectedEventGroupsIds); }, openEditModal: openEditModal, weekDays: weekDays }));
101
+ return components.ui.renderView(props.view || 'content.CalendarSystemView', __assign(__assign({}, props), { dateToDisplay: dateToDisplay, monthCalendarDays: monthCalendarDays, calendarType: calendarType, currentWeekDays: currentWeekDays, eventGroups: innerEventGroups, eventGroupsTitle: props.eventBlock.title, allHours: allHours, selectedEventGroupsIds: selectedEventGroupsIds, onChangeCalendarType: onChangeCalendarType, onMonthChange: onMonthChange, applyControl: applyControl, openCreateModal: openCreateModal, getEventsFromDate: getEventsFromDate, onChangeEventGroupsIds: function (newSelectedEventGroupsIds) { return setSelectedEventGroupsIds(newSelectedEventGroupsIds); }, openCreateEventGroupModal: openCreateEventGroupModal, openEditModal: openEditModal, weekDays: weekDays }));
100
102
  }
101
103
  exports["default"] = CalendarSystem;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { IEventGroup } from '../CalendarSystem';
3
+ export declare const useCalendarSystemEventGroupModals: (innerEventGroups: IEventGroup[], setInnerEventGroups: React.Dispatch<React.SetStateAction<IEventGroup[]>>) => {
4
+ openCreateEventGroupModal: () => void;
5
+ };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ exports.__esModule = true;
15
+ exports.useCalendarSystemEventGroupModals = void 0;
16
+ var react_redux_1 = require("react-redux");
17
+ var maxBy_1 = __importDefault(require("lodash-es/maxBy"));
18
+ var react_1 = __importDefault(require("react"));
19
+ var modal_1 = require("../../../../actions/modal");
20
+ var useComponents_1 = __importDefault(require("../../../../hooks/useComponents"));
21
+ var DEFAULT_ID = 1;
22
+ var useCalendarSystemEventGroupModals = function (innerEventGroups, setInnerEventGroups) {
23
+ var dispatch = (0, react_redux_1.useDispatch)();
24
+ var components = (0, useComponents_1["default"])();
25
+ var calendarModalView = components.ui.getView('content.CalendarSystemEventGroupModalView');
26
+ var onEventGroupSubmit = react_1["default"].useCallback(function (fields) {
27
+ var _a;
28
+ var newEventGroup = {
29
+ id: (((_a = (0, maxBy_1["default"])(innerEventGroups, function (eventsGroup) { return eventsGroup.id; })) === null || _a === void 0 ? void 0 : _a.id) || DEFAULT_ID) + 1,
30
+ label: fields.label,
31
+ color: fields.color,
32
+ events: []
33
+ };
34
+ setInnerEventGroups(function (prev) { return __spreadArray(__spreadArray([], prev, true), [newEventGroup], false); });
35
+ }, [innerEventGroups, setInnerEventGroups]);
36
+ var openCreateEventGroupModal = react_1["default"].useCallback(function () {
37
+ dispatch((0, modal_1.openModal)(calendarModalView, {
38
+ isCreate: true,
39
+ onEventGroupSubmit: onEventGroupSubmit
40
+ }));
41
+ }, [calendarModalView, dispatch, onEventGroupSubmit]);
42
+ return {
43
+ openCreateEventGroupModal: openCreateEventGroupModal
44
+ };
45
+ };
46
+ exports.useCalendarSystemEventGroupModals = useCalendarSystemEventGroupModals;