@selfcommunity/react-ui 0.10.5-payments.200 → 0.10.5-payments.201

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.
@@ -183,8 +183,10 @@ function EventForm(inProps) {
183
183
  const canCreateLiveStream = (0, react_1.useMemo)(() => { var _a, _b; return (_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_live_stream; }, [(_d = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _d === void 0 ? void 0 : _d.permission]);
184
184
  const privateEnabled = (0, react_1.useMemo)(() => scPreferences.preferences[react_core_1.SCPreferences.CONFIGURATIONS_EVENTS_PRIVATE_ENABLED].value, [scPreferences.preferences]);
185
185
  const visibilityEnabled = (0, react_1.useMemo)(() => scPreferences.preferences[react_core_1.SCPreferences.CONFIGURATIONS_EVENTS_VISIBILITY_ENABLED].value, [scPreferences.preferences]);
186
- const disablePastStartTime = (0, react_1.useMemo)(() => field.startDate.getDate() === (0, utils_2.getNewDate)().getDate(), [field]);
187
- const disablePastEndTime = (0, react_1.useMemo)(() => field.endDate.getDate() === (0, utils_2.getNewDate)().getDate(), [field]);
186
+ const disablePastStartTime = (0, react_1.useMemo)(() => (event ? false : field.startTime.getDate() === initialFieldState.startTime.getDate()), [event, field]);
187
+ const disablePastEndTime = (0, react_1.useMemo)(() => field.endTime.getDate() === (0, utils_2.getNewDate)().getDate(), [field]);
188
+ const minStartTime = (0, react_1.useMemo)(() => (event ? (field.startTime.getDate() === initialFieldState.startTime.getDate() ? initialFieldState.startTime : undefined) : undefined), [event, field, initialFieldState]);
189
+ const minStartDate = (0, react_1.useMemo)(() => (event ? initialFieldState.startDate : undefined), [event, initialFieldState]);
188
190
  // PAYMENTS
189
191
  const { isPaymentsEnabled } = (0, react_core_1.useSCPaymentsEnabled)();
190
192
  const _backgroundCover = Object.assign({}, (field.imageOriginal
@@ -348,25 +350,25 @@ function EventForm(inProps) {
348
350
  const handleChangePaymentsProducts = (products) => {
349
351
  setField((prev) => (Object.assign(Object.assign({}, prev), { products: products.map((product) => product.id) })));
350
352
  };
351
- const shouldDisableDate = (0, react_1.useCallback)((date) => {
353
+ const shouldDisableDate = (0, react_1.useCallback)((day) => {
352
354
  let disabled = false;
353
355
  switch (field.recurring) {
354
356
  case types_1.SCEventRecurrenceType.DAILY:
355
- disabled = date.getTime() > (0, utils_2.getDateAndHours)((0, utils_2.getLaterDaysDate)(constants_1.DAILY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
357
+ disabled = day.getTime() > (0, utils_2.getDateAndHours)((0, utils_2.getLaterDaysDate)(constants_1.DAILY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
356
358
  break;
357
359
  case types_1.SCEventRecurrenceType.WEEKLY:
358
- disabled = date.getTime() > (0, utils_2.getDateAndHours)((0, utils_2.getLaterDaysDate)(constants_1.WEEKLY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
360
+ disabled = day.getTime() > (0, utils_2.getDateAndHours)((0, utils_2.getLaterDaysDate)(constants_1.WEEKLY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
359
361
  break;
360
362
  case types_1.SCEventRecurrenceType.MONTHLY:
361
- disabled = date.getTime() > (0, utils_2.getDateAndHours)((0, utils_2.getLaterDaysDate)(constants_1.MONTHLY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
363
+ disabled = day.getTime() > (0, utils_2.getDateAndHours)((0, utils_2.getLaterDaysDate)(constants_1.MONTHLY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
362
364
  break;
363
365
  case types_1.SCEventRecurrenceType.NEVER:
364
366
  default:
365
- disabled = date.getTime() > (0, utils_2.getDateAndHours)((0, utils_2.getLaterDaysDate)(constants_1.NEVER_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
367
+ disabled = day.getTime() > (0, utils_2.getDateAndHours)((0, utils_2.getLaterDaysDate)(constants_1.NEVER_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
366
368
  }
367
369
  return disabled;
368
370
  }, [field]);
369
- const shouldDisableTime = (0, react_1.useCallback)((date) => field.startTime.getTime() > date.getTime(), [field]);
371
+ const shouldDisableTime = (0, react_1.useCallback)((value) => value.getTime() < field.startTime.getTime(), [field]);
370
372
  /**
371
373
  * Renders root object
372
374
  */
@@ -374,7 +376,7 @@ function EventForm(inProps) {
374
376
  endAdornment: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body2" }, { children: Event_1.EVENT_TITLE_MAX_LENGTH - field.name.length }))
375
377
  }, error: Boolean(field.name.length > Event_1.EVENT_TITLE_MAX_LENGTH) || Boolean(error['nameError']), helperText: field.name.length > Event_1.EVENT_TITLE_MAX_LENGTH ? ((0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.name.error.maxLength", defaultMessage: "ui.eventForm.name.error.maxLength" })) : error['nameError'] ? (error['nameError']) : null }), (0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.dateTime }, { children: (0, jsx_runtime_1.jsxs)(x_date_pickers_1.LocalizationProvider, Object.assign({ dateAdapter: AdapterDateFns_1.AdapterDateFns, adapterLocale: scContext.settings.locale.default === 'it' ? it_1.default : en_US_1.default, localeText: {
376
378
  cancelButtonLabel: `${intl.formatMessage(messages.pickerCancelAction)}`
377
- } }, { children: [(0, jsx_runtime_1.jsx)(x_date_pickers_1.MobileDatePicker, { className: classes.picker, disablePast: true, label: field.startDate && (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.date.placeholder", defaultMessage: "ui.eventForm.date.placeholder" }), value: field.startDate, slots: {
379
+ } }, { children: [(0, jsx_runtime_1.jsx)(x_date_pickers_1.MobileDatePicker, { className: classes.picker, disablePast: !event, minDate: minStartDate, label: field.startDate && (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.date.placeholder", defaultMessage: "ui.eventForm.date.placeholder" }), value: field.startDate, slots: {
378
380
  textField: (params) => ((0, jsx_runtime_1.jsx)(material_1.TextField, Object.assign({}, params, { InputProps: Object.assign(Object.assign({}, params.InputProps), { placeholder: `${intl.formatMessage(messages.startDate)}`, startAdornment: ((0, jsx_runtime_1.jsx)(material_1.InputAdornment, Object.assign({ position: "start" }, { children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "CalendarIcon" }) }) }))) }) })))
379
381
  }, slotProps: {
380
382
  toolbar: {
@@ -385,7 +387,7 @@ function EventForm(inProps) {
385
387
  }, onChange: (value) => {
386
388
  handleChangeDateTime(value, 'startDate');
387
389
  handleChangeDateTime(value, 'startTime');
388
- } }), (0, jsx_runtime_1.jsx)(x_date_pickers_1.MobileTimePicker, { className: classes.picker, disablePast: disablePastStartTime, label: field.startTime && (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.time.placeholder", defaultMessage: "ui.eventForm.time.placeholder" }), value: field.startTime, slots: {
390
+ } }), (0, jsx_runtime_1.jsx)(x_date_pickers_1.MobileTimePicker, { className: classes.picker, disablePast: disablePastStartTime, minTime: minStartTime, label: field.startTime && (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.time.placeholder", defaultMessage: "ui.eventForm.time.placeholder" }), value: field.startTime, slots: {
389
391
  textField: (params) => ((0, jsx_runtime_1.jsx)(material_1.TextField, Object.assign({}, params, { InputProps: Object.assign(Object.assign({}, params.InputProps), { placeholder: `${intl.formatMessage(messages.startTime)}`, startAdornment: ((0, jsx_runtime_1.jsx)(material_1.InputAdornment, Object.assign({ position: "start" }, { children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "access_time" }) }) }))) }) })))
390
392
  }, slotProps: {
391
393
  toolbar: {
@@ -181,8 +181,10 @@ export default function EventForm(inProps) {
181
181
  const canCreateLiveStream = useMemo(() => { var _a, _b; return (_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_live_stream; }, [(_d = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _d === void 0 ? void 0 : _d.permission]);
182
182
  const privateEnabled = useMemo(() => scPreferences.preferences[SCPreferences.CONFIGURATIONS_EVENTS_PRIVATE_ENABLED].value, [scPreferences.preferences]);
183
183
  const visibilityEnabled = useMemo(() => scPreferences.preferences[SCPreferences.CONFIGURATIONS_EVENTS_VISIBILITY_ENABLED].value, [scPreferences.preferences]);
184
- const disablePastStartTime = useMemo(() => field.startDate.getDate() === getNewDate().getDate(), [field]);
185
- const disablePastEndTime = useMemo(() => field.endDate.getDate() === getNewDate().getDate(), [field]);
184
+ const disablePastStartTime = useMemo(() => (event ? false : field.startTime.getDate() === initialFieldState.startTime.getDate()), [event, field]);
185
+ const disablePastEndTime = useMemo(() => field.endTime.getDate() === getNewDate().getDate(), [field]);
186
+ const minStartTime = useMemo(() => (event ? (field.startTime.getDate() === initialFieldState.startTime.getDate() ? initialFieldState.startTime : undefined) : undefined), [event, field, initialFieldState]);
187
+ const minStartDate = useMemo(() => (event ? initialFieldState.startDate : undefined), [event, initialFieldState]);
186
188
  // PAYMENTS
187
189
  const { isPaymentsEnabled } = useSCPaymentsEnabled();
188
190
  const _backgroundCover = Object.assign({}, (field.imageOriginal
@@ -346,25 +348,25 @@ export default function EventForm(inProps) {
346
348
  const handleChangePaymentsProducts = (products) => {
347
349
  setField((prev) => (Object.assign(Object.assign({}, prev), { products: products.map((product) => product.id) })));
348
350
  };
349
- const shouldDisableDate = useCallback((date) => {
351
+ const shouldDisableDate = useCallback((day) => {
350
352
  let disabled = false;
351
353
  switch (field.recurring) {
352
354
  case SCEventRecurrenceType.DAILY:
353
- disabled = date.getTime() > getDateAndHours(getLaterDaysDate(DAILY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
355
+ disabled = day.getTime() > getDateAndHours(getLaterDaysDate(DAILY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
354
356
  break;
355
357
  case SCEventRecurrenceType.WEEKLY:
356
- disabled = date.getTime() > getDateAndHours(getLaterDaysDate(WEEKLY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
358
+ disabled = day.getTime() > getDateAndHours(getLaterDaysDate(WEEKLY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
357
359
  break;
358
360
  case SCEventRecurrenceType.MONTHLY:
359
- disabled = date.getTime() > getDateAndHours(getLaterDaysDate(MONTHLY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
361
+ disabled = day.getTime() > getDateAndHours(getLaterDaysDate(MONTHLY_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
360
362
  break;
361
363
  case SCEventRecurrenceType.NEVER:
362
364
  default:
363
- disabled = date.getTime() > getDateAndHours(getLaterDaysDate(NEVER_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
365
+ disabled = day.getTime() > getDateAndHours(getLaterDaysDate(NEVER_LATER_DAYS, field.startDate), 23, 59, 59, 59).getTime();
364
366
  }
365
367
  return disabled;
366
368
  }, [field]);
367
- const shouldDisableTime = useCallback((date) => field.startTime.getTime() > date.getTime(), [field]);
369
+ const shouldDisableTime = useCallback((value) => value.getTime() < field.startTime.getTime(), [field]);
368
370
  /**
369
371
  * Renders root object
370
372
  */
@@ -372,7 +374,7 @@ export default function EventForm(inProps) {
372
374
  endAdornment: _jsx(Typography, Object.assign({ variant: "body2" }, { children: EVENT_TITLE_MAX_LENGTH - field.name.length }))
373
375
  }, error: Boolean(field.name.length > EVENT_TITLE_MAX_LENGTH) || Boolean(error['nameError']), helperText: field.name.length > EVENT_TITLE_MAX_LENGTH ? (_jsx(FormattedMessage, { id: "ui.eventForm.name.error.maxLength", defaultMessage: "ui.eventForm.name.error.maxLength" })) : error['nameError'] ? (error['nameError']) : null }), _jsx(Box, Object.assign({ className: classes.dateTime }, { children: _jsxs(LocalizationProvider, Object.assign({ dateAdapter: AdapterDateFns, adapterLocale: scContext.settings.locale.default === 'it' ? itLocale : enLocale, localeText: {
374
376
  cancelButtonLabel: `${intl.formatMessage(messages.pickerCancelAction)}`
375
- } }, { children: [_jsx(MobileDatePicker, { className: classes.picker, disablePast: true, label: field.startDate && _jsx(FormattedMessage, { id: "ui.eventForm.date.placeholder", defaultMessage: "ui.eventForm.date.placeholder" }), value: field.startDate, slots: {
377
+ } }, { children: [_jsx(MobileDatePicker, { className: classes.picker, disablePast: !event, minDate: minStartDate, label: field.startDate && _jsx(FormattedMessage, { id: "ui.eventForm.date.placeholder", defaultMessage: "ui.eventForm.date.placeholder" }), value: field.startDate, slots: {
376
378
  textField: (params) => (_jsx(TextField, Object.assign({}, params, { InputProps: Object.assign(Object.assign({}, params.InputProps), { placeholder: `${intl.formatMessage(messages.startDate)}`, startAdornment: (_jsx(InputAdornment, Object.assign({ position: "start" }, { children: _jsx(IconButton, { children: _jsx(Icon, { children: "CalendarIcon" }) }) }))) }) })))
377
379
  }, slotProps: {
378
380
  toolbar: {
@@ -383,7 +385,7 @@ export default function EventForm(inProps) {
383
385
  }, onChange: (value) => {
384
386
  handleChangeDateTime(value, 'startDate');
385
387
  handleChangeDateTime(value, 'startTime');
386
- } }), _jsx(MobileTimePicker, { className: classes.picker, disablePast: disablePastStartTime, label: field.startTime && _jsx(FormattedMessage, { id: "ui.eventForm.time.placeholder", defaultMessage: "ui.eventForm.time.placeholder" }), value: field.startTime, slots: {
388
+ } }), _jsx(MobileTimePicker, { className: classes.picker, disablePast: disablePastStartTime, minTime: minStartTime, label: field.startTime && _jsx(FormattedMessage, { id: "ui.eventForm.time.placeholder", defaultMessage: "ui.eventForm.time.placeholder" }), value: field.startTime, slots: {
387
389
  textField: (params) => (_jsx(TextField, Object.assign({}, params, { InputProps: Object.assign(Object.assign({}, params.InputProps), { placeholder: `${intl.formatMessage(messages.startTime)}`, startAdornment: (_jsx(InputAdornment, Object.assign({ position: "start" }, { children: _jsx(IconButton, { children: _jsx(Icon, { children: "access_time" }) }) }))) }) })))
388
390
  }, slotProps: {
389
391
  toolbar: {