@selfcommunity/react-ui 0.7.50-events.86 → 0.7.50-events.88

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.
Files changed (77) hide show
  1. package/lib/cjs/assets/onBoarding/android.d.ts +2 -0
  2. package/lib/cjs/assets/onBoarding/android.js +3 -0
  3. package/lib/cjs/assets/onBoarding/categoryA.d.ts +2 -0
  4. package/lib/cjs/assets/onBoarding/categoryA.js +3 -0
  5. package/lib/cjs/assets/onBoarding/categoryB.d.ts +2 -0
  6. package/lib/cjs/assets/onBoarding/categoryB.js +3 -0
  7. package/lib/cjs/assets/onBoarding/header.d.ts +2 -0
  8. package/lib/cjs/assets/onBoarding/header.js +3 -0
  9. package/lib/cjs/assets/onBoarding/ios.d.ts +2 -0
  10. package/lib/cjs/assets/onBoarding/ios.js +3 -0
  11. package/lib/cjs/assets/onBoarding/progress/category_progress.json +1 -0
  12. package/lib/cjs/assets/onBoarding/progress/content_progress.json +1 -0
  13. package/lib/cjs/components/EventHeader/EventHeader.d.ts +1 -1
  14. package/lib/cjs/components/EventHeader/EventHeader.js +24 -16
  15. package/lib/cjs/components/EventInfoWidget/EventInfoWidget.js +1 -1
  16. package/lib/cjs/components/EventInviteButton/EventInviteButton.js +1 -1
  17. package/lib/cjs/components/OnBoardingWidget/OnBoardingWidget.js +2 -2
  18. package/lib/cjs/components/OnBoardingWidget/Steps/App/App.js +4 -4
  19. package/lib/cjs/components/OnBoardingWidget/Steps/Category/Category.js +18 -14
  20. package/lib/cjs/components/OnBoardingWidget/Steps/Content/Content.js +6 -2
  21. package/lib/cjs/constants/Event.d.ts +1 -1
  22. package/lib/cjs/constants/Event.js +1 -1
  23. package/lib/cjs/shared/EventInfoDetails/index.d.ts +3 -0
  24. package/lib/cjs/shared/EventInfoDetails/index.js +17 -18
  25. package/lib/cjs/shared/ProgressBar/index.d.ts +5 -0
  26. package/lib/cjs/shared/ProgressBar/index.js +2 -2
  27. package/lib/esm/assets/onBoarding/android.d.ts +2 -0
  28. package/lib/esm/assets/onBoarding/android.js +1 -0
  29. package/lib/esm/assets/onBoarding/categoryA.d.ts +2 -0
  30. package/lib/esm/assets/onBoarding/categoryA.js +1 -0
  31. package/lib/esm/assets/onBoarding/categoryB.d.ts +2 -0
  32. package/lib/esm/assets/onBoarding/categoryB.js +1 -0
  33. package/lib/esm/assets/onBoarding/header.d.ts +2 -0
  34. package/lib/esm/assets/onBoarding/header.js +1 -0
  35. package/lib/esm/assets/onBoarding/ios.d.ts +2 -0
  36. package/lib/esm/assets/onBoarding/ios.js +1 -0
  37. package/lib/esm/assets/onBoarding/progress/category_progress.json +1 -0
  38. package/lib/esm/assets/onBoarding/progress/content_progress.json +1 -0
  39. package/lib/esm/components/EventHeader/EventHeader.d.ts +1 -1
  40. package/lib/esm/components/EventHeader/EventHeader.js +24 -16
  41. package/lib/esm/components/EventInfoWidget/EventInfoWidget.js +1 -1
  42. package/lib/esm/components/EventInviteButton/EventInviteButton.js +1 -1
  43. package/lib/esm/components/OnBoardingWidget/OnBoardingWidget.js +2 -2
  44. package/lib/esm/components/OnBoardingWidget/Steps/App/App.js +4 -4
  45. package/lib/esm/components/OnBoardingWidget/Steps/Category/Category.js +19 -15
  46. package/lib/esm/components/OnBoardingWidget/Steps/Content/Content.js +6 -2
  47. package/lib/esm/constants/Event.d.ts +1 -1
  48. package/lib/esm/constants/Event.js +1 -1
  49. package/lib/esm/shared/EventInfoDetails/index.d.ts +3 -0
  50. package/lib/esm/shared/EventInfoDetails/index.js +18 -19
  51. package/lib/esm/shared/ProgressBar/index.d.ts +5 -0
  52. package/lib/esm/shared/ProgressBar/index.js +2 -2
  53. package/lib/umd/99.js +2 -0
  54. package/lib/umd/react-ui.js +1 -1
  55. package/package.json +8 -7
  56. package/lib/cjs/assets/onBoarding/Android.d.ts +0 -1
  57. package/lib/cjs/assets/onBoarding/Android.js +0 -7
  58. package/lib/cjs/assets/onBoarding/CategoryA.d.ts +0 -1
  59. package/lib/cjs/assets/onBoarding/CategoryA.js +0 -7
  60. package/lib/cjs/assets/onBoarding/CategoryB.d.ts +0 -1
  61. package/lib/cjs/assets/onBoarding/CategoryB.js +0 -7
  62. package/lib/cjs/assets/onBoarding/Header.d.ts +0 -1
  63. package/lib/cjs/assets/onBoarding/Header.js +0 -7
  64. package/lib/cjs/assets/onBoarding/Ios.d.ts +0 -1
  65. package/lib/cjs/assets/onBoarding/Ios.js +0 -7
  66. package/lib/esm/assets/onBoarding/Android.d.ts +0 -1
  67. package/lib/esm/assets/onBoarding/Android.js +0 -4
  68. package/lib/esm/assets/onBoarding/CategoryA.d.ts +0 -1
  69. package/lib/esm/assets/onBoarding/CategoryA.js +0 -4
  70. package/lib/esm/assets/onBoarding/CategoryB.d.ts +0 -1
  71. package/lib/esm/assets/onBoarding/CategoryB.js +0 -4
  72. package/lib/esm/assets/onBoarding/Header.d.ts +0 -1
  73. package/lib/esm/assets/onBoarding/Header.js +0 -4
  74. package/lib/esm/assets/onBoarding/Ios.d.ts +0 -1
  75. package/lib/esm/assets/onBoarding/Ios.js +0 -4
  76. package/lib/umd/920.js +0 -2
  77. /package/lib/umd/{920.js.LICENSE.txt → 99.js.LICENSE.txt} +0 -0
@@ -244,7 +244,7 @@ export default function EventInviteButton(inProps) {
244
244
  /**
245
245
  * Renders root object
246
246
  */
247
- return (_jsxs(React.Fragment, { children: [_jsx(Root, Object.assign({ className: classNames(classes.root, className), onClick: handleClose, variant: scEvent ? 'contained' : 'outlined', color: scEvent ? 'secondary' : 'inherit', startIcon: _jsx(Icon, { children: "add" }) }, rest, { children: _jsx(FormattedMessage, { id: "ui.eventInviteButton", defaultMessage: "ui.eventInviteButton" }) })), open && (_jsx(DialogRoot, Object.assign({ DialogContentProps: { dividers: false }, open: true, className: classes.dialogRoot, title: _jsxs(_Fragment, { children: [_jsx(IconButton, Object.assign({ onClick: handleClose }, { children: _jsx(Icon, { children: "arrow_back" }) })), _jsx(Typography, Object.assign({ className: classes.dialogTitle }, { children: _jsx(FormattedMessage, { id: "ui.eventInviteButton.dialog.title", defaultMessage: "ui.eventInviteButton.dialog.title" }) })), _jsx(LoadingButton, Object.assign({ size: "small", color: "secondary", variant: "contained", onClick: handleSendInvitations, loading: isSending, disabled: !invited.length }, { children: _jsx(FormattedMessage, { id: "ui.eventInviteButton.dialog.button.end", defaultMessage: "ui.eventInviteButton.dialog.button.end" }) }))] }) }, { children: _jsxs(Box, Object.assign({ className: classes.dialogContent }, { children: [_jsx(Autocomplete, { className: classes.autocomplete, loading: loading, size: "small", multiple: true, freeSolo: true, disableClearable: true, options: suggested, onChange: handleChange, onInputChange: handleInputChange, inputValue: value, filterOptions: filterOptions, value: invited, getOptionLabel: (option) => (option ? option.username : '...'), isOptionEqualToValue: (option, value) => (option ? value.id === option.id : false), renderTags: () => null, renderOption: (props, option) => (_jsxs(Box, Object.assign({ component: "li" }, props, { children: [_jsx(Avatar, { alt: option.username, src: option.avatar }), _jsx(Typography, Object.assign({ ml: 1 }, { children: option.username }))] }))), renderInput: (params) => (_jsx(TextField, Object.assign({}, params, { variant: "outlined", placeholder: `${intl.formatMessage(messages.placeholder)}`, InputProps: Object.assign(Object.assign({}, params.InputProps), { className: classes.input, startAdornment: (_jsxs(_Fragment, { children: [_jsx(InputAdornment, Object.assign({ position: "start" }, { children: _jsx(Icon, Object.assign({ className: classes.icon }, { children: "search" })) })), params.InputProps.startAdornment] })) }) }))) }), _jsx(Box, Object.assign({ className: classes.invitedBox }, { children: invited.map((option, index) => (_jsx(Chip, { avatar: _jsx(Avatar, { alt: option.username, src: option.avatar }), label: option.username, onDelete: () => {
247
+ return (_jsxs(React.Fragment, { children: [_jsx(Root, Object.assign({ className: classNames(classes.root, className), onClick: handleClose, variant: scEvent ? 'contained' : 'outlined', color: scEvent ? 'secondary' : 'inherit', startIcon: _jsx(Icon, { children: "add" }) }, rest, { children: _jsx(FormattedMessage, { id: "ui.eventInviteButton", defaultMessage: "ui.eventInviteButton" }) })), open && (_jsx(DialogRoot, Object.assign({ DialogContentProps: { dividers: false }, open: true, className: classes.dialogRoot, title: _jsxs(_Fragment, { children: [_jsx(IconButton, Object.assign({ onClick: handleClose }, { children: _jsx(Icon, { children: "close" }) })), _jsx(Typography, Object.assign({ className: classes.dialogTitle }, { children: _jsx(FormattedMessage, { id: "ui.eventInviteButton.dialog.title", defaultMessage: "ui.eventInviteButton.dialog.title" }) })), _jsx(LoadingButton, Object.assign({ size: "small", color: "secondary", variant: "contained", onClick: handleSendInvitations, loading: isSending, disabled: !invited.length }, { children: _jsx(FormattedMessage, { id: "ui.eventInviteButton.dialog.button.end", defaultMessage: "ui.eventInviteButton.dialog.button.end" }) }))] }) }, { children: _jsxs(Box, Object.assign({ className: classes.dialogContent }, { children: [_jsx(Autocomplete, { className: classes.autocomplete, loading: loading, size: "small", multiple: true, freeSolo: true, disableClearable: true, options: suggested, onChange: handleChange, onInputChange: handleInputChange, inputValue: value, filterOptions: filterOptions, value: invited, getOptionLabel: (option) => (option ? option.username : '...'), isOptionEqualToValue: (option, value) => (option ? value.id === option.id : false), renderTags: () => null, renderOption: (props, option) => (_jsxs(Box, Object.assign({ component: "li" }, props, { children: [_jsx(Avatar, { alt: option.username, src: option.avatar }), _jsx(Typography, Object.assign({ ml: 1 }, { children: option.username }))] }))), renderInput: (params) => (_jsx(TextField, Object.assign({}, params, { variant: "outlined", placeholder: `${intl.formatMessage(messages.placeholder)}`, InputProps: Object.assign(Object.assign({}, params.InputProps), { className: classes.input, startAdornment: (_jsxs(_Fragment, { children: [_jsx(InputAdornment, Object.assign({ position: "start" }, { children: _jsx(Icon, Object.assign({ className: classes.icon }, { children: "search" })) })), params.InputProps.startAdornment] })) }) }))) }), _jsx(Box, Object.assign({ className: classes.invitedBox }, { children: invited.map((option, index) => (_jsx(Chip, { avatar: _jsx(Avatar, { alt: option.username, src: option.avatar }), label: option.username, onDelete: () => {
248
248
  handleDelete(option);
249
249
  }, style: { marginRight: 8 } }, index))) })), _jsxs(Box, Object.assign({ className: classes.suggested }, { children: [list.length !== 0 && (_jsx(Typography, Object.assign({ variant: "h4", fontWeight: "bold" }, { children: _jsx(FormattedMessage, { id: "ui.eventInviteButton.dialog.content.list", defaultMessage: "ui.eventInviteButton.dialog.content.list" }) }))), list.slice(0, 5).map((user, index) => (_jsx(User, { elevation: 0, actions: _jsx(_Fragment, {}), user: user, userId: user.id, buttonProps: { onClick: () => handleUserInvite(user) } }, index)))] }))] })) })))] }));
250
250
  }
@@ -16,7 +16,6 @@ import App from './Steps/App';
16
16
  import HiddenPlaceholder from '../../shared/HiddenPlaceholder';
17
17
  import Widget from '../Widget';
18
18
  import Content from './Steps/Content';
19
- import Header from '../../assets/onBoarding/Header';
20
19
  import { SCOPE_SC_UI } from '../../constants/Errors';
21
20
  import { OnBoardingService, PreferenceService } from '@selfcommunity/api-services';
22
21
  import { Logger } from '@selfcommunity/utils';
@@ -24,6 +23,7 @@ import { SCOnBoardingStepStatusType, SCOnBoardingStepType } from '@selfcommunity
24
23
  import OnBoardingWidgetSkeleton from './Skeleton';
25
24
  import { closeSnackbar, useSnackbar } from 'notistack';
26
25
  import { CONSOLE_PROD, CONSOLE_STAGE } from '../PlatformWidget/constants';
26
+ import HeaderPlaceholder from '../../assets/onBoarding/header';
27
27
  const classes = {
28
28
  root: `${PREFIX}-root`,
29
29
  content: `${PREFIX}-content`,
@@ -215,7 +215,7 @@ const OnBoardingWidget = (inProps) => {
215
215
  if (!isAdmin) {
216
216
  return _jsx(HiddenPlaceholder, {});
217
217
  }
218
- return (_jsx(Root, Object.assign({ className: classNames(classes.root, className) }, rest, { children: _jsxs(AccordionRoot, Object.assign({ defaultExpanded: true, onChange: handleExpand, className: classes.accordionRoot, expanded: expanded }, { children: [_jsx(AccordionSummary, Object.assign({ expandIcon: _jsx(Icon, Object.assign({ fontSize: "medium" }, { children: "expand_more" })), "aria-controls": "accordion", id: "onBoarding-accordion" }, { children: _jsx(_Fragment, { children: expanded ? (_jsxs(_Fragment, { children: [!isMobile ? (_jsx(CardMedia, Object.assign({ className: classes.logo, component: "div" }, { children: _jsx(Header, {}) }))) : (_jsx(Typography, Object.assign({ variant: "h4", textAlign: "center" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.accordion.expanded.title.mobile", defaultMessage: "ui.onBoardingWidget.accordion.expanded.title.mobile", values: {
218
+ return (_jsx(Root, Object.assign({ className: classNames(classes.root, className) }, rest, { children: _jsxs(AccordionRoot, Object.assign({ defaultExpanded: true, onChange: handleExpand, className: classes.accordionRoot, expanded: expanded }, { children: [_jsx(AccordionSummary, Object.assign({ expandIcon: _jsx(Icon, Object.assign({ fontSize: "medium" }, { children: "expand_more" })), "aria-controls": "accordion", id: "onBoarding-accordion" }, { children: _jsx(_Fragment, { children: expanded ? (_jsxs(_Fragment, { children: [!isMobile ? (_jsx(CardMedia, { className: classes.logo, component: "img", src: HeaderPlaceholder })) : (_jsx(Typography, Object.assign({ variant: "h4", textAlign: "center" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.accordion.expanded.title.mobile", defaultMessage: "ui.onBoardingWidget.accordion.expanded.title.mobile", values: {
219
219
  // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
220
220
  // @ts-ignore
221
221
  b: (chunks) => _jsx("strong", { children: chunks }),
@@ -7,9 +7,9 @@ import classNames from 'classnames';
7
7
  import { PREFIX } from '../../constants';
8
8
  import { Button, CardMedia, Icon, Tab, Tabs, Typography } from '@mui/material';
9
9
  import { FormattedMessage } from 'react-intl';
10
- import Ios from '../../../../assets/onBoarding/Ios';
11
- import Android from '../../../../assets/onBoarding/Android';
12
10
  import { SCOnBoardingStepStatusType } from '@selfcommunity/types';
11
+ import AndroidPlaceholder from '../../../../assets/onBoarding/android';
12
+ import IosPlaceholder from '../../../../assets/onBoarding/ios';
13
13
  const classes = {
14
14
  root: `${PREFIX}-app-root`,
15
15
  title: `${PREFIX}-app-title`,
@@ -53,7 +53,7 @@ export default function App(inProps) {
53
53
  // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
54
54
  // @ts-ignore
55
55
  b: (...chunks) => _jsx("strong", { children: chunks })
56
- } }) })), _jsx(CardMedia, Object.assign({ className: classes.image, component: "div" }, { children: _jsx(Ios, {}) }))] })), tab === 1 && (_jsxs(_Fragment, { children: [_jsx(Typography, Object.assign({ className: classes.summary }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.app.android", defaultMessage: "ui.onBoardingWidget.step.app.android" }) })), _jsx(Typography, Object.assign({ className: classes.step }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.app.android.a", defaultMessage: "ui.onBoardingWidget.step.app.android.a", values: {
56
+ } }) })), _jsx(CardMedia, { className: classes.image, component: "img", src: IosPlaceholder })] })), tab === 1 && (_jsxs(_Fragment, { children: [_jsx(Typography, Object.assign({ className: classes.summary }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.app.android", defaultMessage: "ui.onBoardingWidget.step.app.android" }) })), _jsx(Typography, Object.assign({ className: classes.step }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.app.android.a", defaultMessage: "ui.onBoardingWidget.step.app.android.a", values: {
57
57
  // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
58
58
  // @ts-ignore
59
59
  icon: (...chunks) => _jsx(Icon, Object.assign({ fontSize: "medium" }, { children: chunks })),
@@ -67,5 +67,5 @@ export default function App(inProps) {
67
67
  // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
68
68
  // @ts-ignore
69
69
  b: (...chunks) => _jsx("strong", { children: chunks })
70
- } }) })), _jsx(CardMedia, Object.assign({ className: classes.image, component: "div" }, { children: _jsx(Android, {}) }))] })), _jsx(Button, Object.assign({ className: classes.button, size: "small", variant: "outlined", color: "secondary", onClick: onCompleteAction, disabled: (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.COMPLETED || (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.IN_PROGRESS }, { children: "Ok!" }))] }))] })));
70
+ } }) })), _jsx(CardMedia, { className: classes.image, component: "img", src: AndroidPlaceholder })] })), _jsx(Button, Object.assign({ className: classes.button, size: "small", variant: "outlined", color: "secondary", onClick: onCompleteAction, disabled: (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.COMPLETED || (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.IN_PROGRESS }, { children: "Ok!" }))] }))] })));
71
71
  }
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { styled } from '@mui/material/styles';
3
3
  import { Alert, Button, CardMedia, Icon, Typography } from '@mui/material';
4
4
  import Box from '@mui/material/Box';
@@ -7,10 +7,12 @@ import classNames from 'classnames';
7
7
  import { useEffect, useState } from 'react';
8
8
  import { FormattedMessage } from 'react-intl';
9
9
  import { PREFIX } from '../../constants';
10
- import CategoryA from '../../../../assets/onBoarding/CategoryA';
11
- import CategoryB from '../../../../assets/onBoarding/CategoryB';
12
10
  import ProgressBar from '../../../../shared/ProgressBar';
13
11
  import { SCOnBoardingStepStatusType } from '@selfcommunity/types';
12
+ import { Player } from '@lottiefiles/react-lottie-player';
13
+ import CategoryAPlaceholder from '../../../../assets/onBoarding/categoryA';
14
+ import CategoryBPlaceholder from '../../../../assets/onBoarding/categoryB';
15
+ import animatedProgress from '../../../../assets/onBoarding/progress/category_progress.json';
14
16
  const classes = {
15
17
  root: `${PREFIX}-category-root`,
16
18
  title: `${PREFIX}-category-title`,
@@ -18,7 +20,9 @@ const classes = {
18
20
  image: `${PREFIX}-category-image`,
19
21
  action: `${PREFIX}-category-action`,
20
22
  button: `${PREFIX}-category-button`,
21
- success: `${PREFIX}-success`
23
+ success: `${PREFIX}-success`,
24
+ progress: `${PREFIX}-category-progress`,
25
+ animationProgress: `${PREFIX}-category-animation-progress`
22
26
  };
23
27
  function CircledLetter({ letter, statement }) {
24
28
  return (_jsxs(Box, Object.assign({ component: "span", sx: { display: 'flex', alignItems: 'center', gap: 1, mb: 1.5 } }, { children: [_jsx(Box, Object.assign({ component: "span", sx: {
@@ -65,15 +69,15 @@ export default function Category(inProps) {
65
69
  return () => clearInterval(intervalId);
66
70
  }
67
71
  }, [step.status, step.completion_percentage]);
68
- return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, { children: [_jsx(Typography, Object.assign({ variant: "h4", className: classes.title }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.categories", defaultMessage: "ui.onBoardingWidget.categories" }) })), _jsx(Typography, Object.assign({ className: classes.summary }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.category.summary", defaultMessage: "ui.onBoardingWidget.step.category.summary" }) })), _jsx(Typography, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.category.generation.steps", defaultMessage: "ui.onBoardingWidget.step.category.generation.steps", values: {
69
- // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
70
- // @ts-ignore
71
- iconA: (...chunks) => _jsx(CircledLetter, { letter: "a", statement: chunks }),
72
- // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
73
- // @ts-ignore
74
- iconB: (...chunks) => _jsx(CircledLetter, { letter: "b", statement: chunks }),
75
- // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
76
- // @ts-ignore
77
- iconC: (...chunks) => _jsx(CircledLetter, { letter: "c", statement: chunks })
78
- } }) }), _jsx(CardMedia, Object.assign({ className: classes.image, component: "div" }, { children: _jsx(CategoryA, {}) })), _jsx(CardMedia, Object.assign({ className: classes.image, component: "div" }, { children: _jsx(CategoryB, {}) })), _jsx(Box, Object.assign({ component: "span", className: classes.action }, { children: (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.COMPLETED ? (_jsx(Alert, Object.assign({ severity: "success" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.categories.success", defaultMessage: "ui.onBoardingWidget.step.categories.success" }) }))) : (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.IN_PROGRESS ? (_jsx(ProgressBar, { value: progress, loadingMessage: _jsx(Typography, Object.assign({ variant: "h4" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.categories.loading", defaultMessage: "ui.onBoardingWidget.step.categories.loading" }) })) })) : (_jsx(Button, Object.assign({ size: "small", variant: "contained", color: "secondary", onClick: handleCategoriesCreation, endIcon: _jsx(Icon, { children: hover ? 'ai_stars' : 'magic_wand' }), onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false) }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.onBoardingWidget.step.category.button", id: "ui.onBoardingWidget.step.category.button" }) }))) }))] })));
72
+ return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, { children: [_jsx(Typography, Object.assign({ variant: "h4", className: classes.title }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.categories", defaultMessage: "ui.onBoardingWidget.categories" }) })), _jsx(Typography, Object.assign({ className: classes.summary }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.category.summary", defaultMessage: "ui.onBoardingWidget.step.category.summary" }) })), (step === null || step === void 0 ? void 0 : step.status) !== SCOnBoardingStepStatusType.IN_PROGRESS && (_jsxs(_Fragment, { children: [_jsx(Typography, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.category.generation.steps", defaultMessage: "ui.onBoardingWidget.step.category.generation.steps", values: {
73
+ // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
74
+ // @ts-ignore
75
+ iconA: (...chunks) => _jsx(CircledLetter, { letter: "a", statement: chunks }),
76
+ // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
77
+ // @ts-ignore
78
+ iconB: (...chunks) => _jsx(CircledLetter, { letter: "b", statement: chunks }),
79
+ // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
80
+ // @ts-ignore
81
+ iconC: (...chunks) => _jsx(CircledLetter, { letter: "c", statement: chunks })
82
+ } }) }), _jsx(CardMedia, { className: classes.image, component: "img", src: CategoryAPlaceholder }), _jsx(CardMedia, { className: classes.image, component: "img", src: CategoryBPlaceholder })] })), _jsx(Box, Object.assign({ component: "span", className: classes.action }, { children: (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.COMPLETED ? (_jsx(Alert, Object.assign({ severity: "success" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.categories.success", defaultMessage: "ui.onBoardingWidget.step.categories.success" }) }))) : (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.IN_PROGRESS ? (_jsxs(Box, Object.assign({ className: classes.progress }, { children: [_jsx(Player, { autoplay: true, loop: true, src: animatedProgress, className: classes.animationProgress, controls: false }), _jsx(ProgressBar, { value: progress, hideBar: true, loadingMessage: _jsx(Typography, Object.assign({ variant: "h4" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.categories.loading", defaultMessage: "ui.onBoardingWidget.step.categories.loading" }) })) })] }))) : (_jsx(Button, Object.assign({ size: "small", variant: "contained", color: "secondary", onClick: handleCategoriesCreation, endIcon: _jsx(Icon, { children: hover ? 'ai_stars' : 'magic_wand' }), onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false) }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.onBoardingWidget.step.category.button", id: "ui.onBoardingWidget.step.category.button" }) }))) }))] })));
79
83
  }
@@ -9,11 +9,15 @@ import { PREFIX } from '../../constants';
9
9
  import { FormattedMessage } from 'react-intl';
10
10
  import { SCOnBoardingStepStatusType } from '@selfcommunity/types';
11
11
  import ProgressBar from '../../../../shared/ProgressBar';
12
+ import { Player } from '@lottiefiles/react-lottie-player';
13
+ import animatedProgress from '../../../../assets/onBoarding/progress/content_progress.json';
12
14
  const classes = {
13
15
  root: `${PREFIX}-content-root`,
14
16
  title: `${PREFIX}-content-title`,
15
17
  summary: `${PREFIX}-content-summary`,
16
- action: `${PREFIX}-content-action`
18
+ action: `${PREFIX}-content-action`,
19
+ progress: `${PREFIX}-content-progress`,
20
+ animationProgress: `${PREFIX}-content-animation-progress`
17
21
  };
18
22
  const Root = styled(Box, {
19
23
  name: PREFIX,
@@ -45,5 +49,5 @@ export default function Content(inProps) {
45
49
  return () => clearInterval(intervalId);
46
50
  }
47
51
  }, [step.status, step.completion_percentage]);
48
- return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, { children: [_jsx(Typography, Object.assign({ variant: "h4", className: classes.title }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.contents", defaultMessage: "ui.onBoardingWidget.contents" }) })), _jsx(Typography, Object.assign({ className: classes.summary }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.content.summary", defaultMessage: "ui.onBoardingWidget.step.content.summary" }) })), _jsx(Box, Object.assign({ component: "span", className: classes.action }, { children: (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.COMPLETED ? (_jsx(Alert, Object.assign({ severity: "success" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.contents.success", defaultMessage: "ui.onBoardingWidget.step.contents.success" }) }))) : (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.IN_PROGRESS ? (_jsx(ProgressBar, { value: progress, loadingMessage: _jsx(Typography, Object.assign({ variant: "h4" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.contents.loading", defaultMessage: "ui.onBoardingWidget.step.contents.loading" }) })) })) : (_jsx(Button, Object.assign({ size: "small", variant: "contained", color: "secondary", onClick: handleContentCreation, endIcon: _jsx(Icon, { children: hover ? 'ai_stars' : 'magic_wand' }), onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false) }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.onBoardingWidget.step.content.button", id: "ui.onBoardingWidget.step.content.button" }) }))) }))] })));
52
+ return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, { children: [_jsx(Typography, Object.assign({ variant: "h4", className: classes.title }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.contents", defaultMessage: "ui.onBoardingWidget.contents" }) })), _jsx(Typography, Object.assign({ className: classes.summary }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.content.summary", defaultMessage: "ui.onBoardingWidget.step.content.summary" }) })), _jsx(Box, Object.assign({ component: "span", className: classes.action }, { children: (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.COMPLETED ? (_jsx(Alert, Object.assign({ severity: "success" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.contents.success", defaultMessage: "ui.onBoardingWidget.step.contents.success" }) }))) : (step === null || step === void 0 ? void 0 : step.status) === SCOnBoardingStepStatusType.IN_PROGRESS ? (_jsxs(Box, Object.assign({ className: classes.progress }, { children: [_jsx(Player, { autoplay: true, loop: true, src: animatedProgress, className: classes.animationProgress, controls: false }), _jsx(ProgressBar, { value: progress, hideBar: true, loadingMessage: _jsx(Typography, Object.assign({ variant: "h4" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.contents.loading", defaultMessage: "ui.onBoardingWidget.step.contents.loading" }) })) })] }))) : (_jsx(Button, Object.assign({ size: "small", variant: "contained", color: "secondary", onClick: handleContentCreation, endIcon: _jsx(Icon, { children: hover ? 'ai_stars' : 'magic_wand' }), onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false) }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.onBoardingWidget.step.content.button", id: "ui.onBoardingWidget.step.content.button" }) }))) }))] })));
49
53
  }
@@ -1,2 +1,2 @@
1
1
  export declare const EVENT_TITLE_MAX_LENGTH = 50;
2
- export declare const EVENT_DESCRIPTION_MAX_LENGTH = 150;
2
+ export declare const EVENT_DESCRIPTION_MAX_LENGTH = 500;
@@ -1,2 +1,2 @@
1
1
  export const EVENT_TITLE_MAX_LENGTH = 50;
2
- export const EVENT_DESCRIPTION_MAX_LENGTH = 150;
2
+ export const EVENT_DESCRIPTION_MAX_LENGTH = 500;
@@ -3,14 +3,17 @@ import React from 'react';
3
3
  export interface EventInfoDetailsProps {
4
4
  event: SCEventType;
5
5
  hideDateIcon?: boolean;
6
+ hideRecurringIcon?: boolean;
6
7
  hidePrivacyIcon?: boolean;
7
8
  hideLocationIcon?: boolean;
8
9
  hideCreatedIcon?: boolean;
9
10
  hasDateInfo?: boolean;
11
+ hasRecurringInfo?: boolean;
10
12
  hasPrivacyInfo?: boolean;
11
13
  hasLocationInfo?: boolean;
12
14
  hasCreatedInfo?: boolean;
13
15
  beforeDateInfo?: React.ReactNode | null;
16
+ beforeRecurringInfo?: React.ReactNode | null;
14
17
  beforePrivacyInfo?: React.ReactNode | null;
15
18
  beforeLocationInfo?: React.ReactNode | null;
16
19
  beforeCreatedInfo?: React.ReactNode | null;
@@ -1,14 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Icon, Stack, styled, Typography, useThemeProps } from '@mui/material';
3
3
  import { Link } from '@selfcommunity/react-core';
4
- import { SCEventLocationType, SCEventPrivacyType } from '@selfcommunity/types';
5
- import { format } from 'date-fns';
6
- import { enUS, it } from 'date-fns/locale';
4
+ import { SCEventLocationType, SCEventPrivacyType, SCEventRecurrenceType } from '@selfcommunity/types';
7
5
  import { FormattedMessage, useIntl } from 'react-intl';
8
- const LOCALE_MAP = {
9
- en: enUS,
10
- it
11
- };
12
6
  const PREFIX = 'SCEventInfoDetails';
13
7
  const classes = {
14
8
  root: `${PREFIX}-root`,
@@ -28,20 +22,25 @@ export default function EventInfoDetails(inProps) {
28
22
  props: inProps,
29
23
  name: PREFIX
30
24
  });
31
- const { event, hideDateIcon = false, hidePrivacyIcon = false, hideLocationIcon = false, hideCreatedIcon = false, hasDateInfo = true, hasPrivacyInfo = true, hasLocationInfo = true, hasCreatedInfo = false, beforeDateInfo, beforePrivacyInfo, beforeLocationInfo, beforeCreatedInfo } = props;
25
+ const { event, hideDateIcon = false, hideRecurringIcon = false, hidePrivacyIcon = false, hideLocationIcon = false, hideCreatedIcon = false, hasDateInfo = true, hasRecurringInfo = false, hasPrivacyInfo = true, hasLocationInfo = true, hasCreatedInfo = false, beforeDateInfo, beforeRecurringInfo, beforePrivacyInfo, beforeLocationInfo, beforeCreatedInfo } = props;
32
26
  // HOOKS
33
27
  const intl = useIntl();
34
28
  const privacy = event.privacy === SCEventPrivacyType.PUBLIC ? 'ui.eventInfoDetails.privacy.public' : 'ui.eventInfoDetails.privacy.private';
35
29
  const location = event.location === SCEventLocationType.ONLINE ? 'ui.eventInfoDetails.location.virtual' : 'ui.eventInfoDetails.location.inPerson';
36
- const formatDateEventDate = (date) => {
37
- return format(new Date(date), "EEEE d MMMM' - Ore 'H:mm", {
38
- locale: LOCALE_MAP[intl.locale]
39
- }).replace(/([a-z/ì]+) (\d{2}) ([a-z]+) - Ore (\d{2}):(\d{2})/, (_, weekDay, day, month, hour, minute) => `${weekDay.charAt(0).toUpperCase() + weekDay.slice(1)} ${day} ${month.charAt(0).toUpperCase() + month.slice(1)} - Ore ${hour}:${minute}`);
40
- };
41
- const formatDateCreateDate = (date) => {
42
- return format(new Date(date), "'Creato il 'd MMMM y", {
43
- locale: LOCALE_MAP[intl.locale]
44
- }).replace(/Creato il (\d{1})+ ([a-z]+) (\d{4})/, (_, day, month, year) => `Creato il ${day} ${month.charAt(0).toUpperCase() + month.slice(1)} ${year}`);
45
- };
46
- return (_jsxs(Root, Object.assign({ className: classes.root }, { children: [beforeDateInfo, hasDateInfo && (_jsxs(Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hideDateIcon && _jsx(Icon, Object.assign({ fontSize: "small" }, { children: "CalendarIcon" })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: formatDateEventDate(event.start_date) }))] }))), beforePrivacyInfo, hasPrivacyInfo && (_jsxs(Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hidePrivacyIcon && _jsx(Icon, Object.assign({ fontSize: "small" }, { children: event.privacy === SCEventPrivacyType.PUBLIC ? 'public' : 'private' })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: privacy, defaultMessage: privacy }) })), "-", _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: location, defaultMessage: location }) }))] }))), beforeLocationInfo, hasLocationInfo && (_jsxs(Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hideLocationIcon && (_jsx(Icon, Object.assign({ fontSize: "small" }, { children: event.location === SCEventLocationType.ONLINE ? 'play_circle_outline' : 'add_location_alt' }))), event.location === SCEventLocationType.ONLINE ? (_jsx(Link, Object.assign({ to: event.link, target: "_blank", className: classes.link }, { children: _jsx(Typography, Object.assign({ variant: "body1", className: classes.url }, { children: event.link })) }))) : (_jsx(Typography, Object.assign({ variant: "body1", className: classes.url }, { children: event.geolocation })))] }))), beforeCreatedInfo, hasCreatedInfo && (_jsxs(Stack, Object.assign({ className: classes.creationWrapper }, { children: [!hideCreatedIcon && _jsx(Icon, Object.assign({ fontSize: "small" }, { children: "create" })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: formatDateCreateDate(event.created_at) }))] })))] })));
30
+ return (_jsxs(Root, Object.assign({ className: classes.root }, { children: [beforeDateInfo, hasDateInfo && (_jsxs(Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hideDateIcon && _jsx(Icon, Object.assign({ fontSize: "small" }, { children: "CalendarIcon" })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: "ui.eventInfoDetails.date.startEndTime", defaultMessage: "ui.eventInfoDetails.date.startEndTime", values: {
31
+ date: intl.formatDate(event.running ? event.running_start_date : event.next_start_date, {
32
+ weekday: 'long',
33
+ day: 'numeric',
34
+ year: 'numeric',
35
+ month: 'long'
36
+ }),
37
+ start: intl.formatDate(event.running ? event.running_start_date : event.next_start_date, { hour: 'numeric', minute: 'numeric' })
38
+ } }) }))] }))), beforeRecurringInfo, hasRecurringInfo && event.recurring !== SCEventRecurrenceType.NEVER && (_jsxs(Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hideRecurringIcon && _jsx(Icon, Object.assign({ fontSize: "small" }, { children: "frequency" })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: `ui.eventInfoDetails.frequency.${event.recurring}.placeholder`, defaultMessage: `ui.eventInfoDetails.frequency.${event.recurring}.placeholder` }) }))] }))), beforePrivacyInfo, hasPrivacyInfo && (_jsxs(Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hidePrivacyIcon && _jsx(Icon, Object.assign({ fontSize: "small" }, { children: event.privacy === SCEventPrivacyType.PUBLIC ? 'public' : 'private' })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: privacy, defaultMessage: privacy }) })), "-", _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: location, defaultMessage: location }) }))] }))), beforeLocationInfo, hasLocationInfo && (_jsxs(Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hideLocationIcon && (_jsx(Icon, Object.assign({ fontSize: "small" }, { children: event.location === SCEventLocationType.ONLINE ? 'play_circle_outline' : 'add_location_alt' }))), event.location === SCEventLocationType.ONLINE ? (_jsx(Link, Object.assign({ to: event.link, target: "_blank", className: classes.link }, { children: _jsx(Typography, Object.assign({ variant: "body1", className: classes.url }, { children: event.link })) }))) : (_jsx(Typography, Object.assign({ variant: "body1", className: classes.url }, { children: event.geolocation })))] }))), beforeCreatedInfo, hasCreatedInfo && (_jsxs(Stack, Object.assign({ className: classes.creationWrapper }, { children: [!hideCreatedIcon && _jsx(Icon, Object.assign({ fontSize: "small" }, { children: "create" })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: "ui.eventInfoDetails.date.create", defaultMessage: "ui.eventInfoDetails.date.create", values: {
39
+ date: intl.formatDate(event.created_at, {
40
+ weekday: 'long',
41
+ day: 'numeric',
42
+ year: 'numeric',
43
+ month: 'long'
44
+ })
45
+ } }) }))] })))] })));
47
46
  }
@@ -15,6 +15,11 @@ export interface ProgressBarProps extends LinearProgressProps {
15
15
  * @default null
16
16
  */
17
17
  loadingMessage?: React.ReactNode;
18
+ /**
19
+ * Hides the bar, rendering just the massage and percentage
20
+ * @default false
21
+ */
22
+ hideBar?: boolean;
18
23
  /**
19
24
  * Any other properties
20
25
  */
@@ -17,6 +17,6 @@ const Root = styled(Box, {
17
17
  overridesResolver: (props, styles) => styles.root
18
18
  })(() => ({}));
19
19
  export default function ProgressBar(props) {
20
- const { className, value, loadingMessage = null } = props, rest = __rest(props, ["className", "value", "loadingMessage"]);
21
- return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, { children: [_jsx(Box, Object.assign({ className: classes.message }, { children: loadingMessage })), _jsx(LinearProgress, Object.assign({ variant: "determinate", color: "success", className: classes.bar, value: value }, rest)), _jsx(Box, Object.assign({ className: classes.progress }, { children: _jsx(Typography, Object.assign({ variant: "body2", color: "text.secondary" }, { children: `${Math.round(value)}%` })) }))] })));
20
+ const { className, value, loadingMessage = null, hideBar = false } = props, rest = __rest(props, ["className", "value", "loadingMessage", "hideBar"]);
21
+ return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, { children: [_jsx(Box, Object.assign({ className: classes.message }, { children: loadingMessage })), !hideBar && _jsx(LinearProgress, Object.assign({ variant: "determinate", color: "success", className: classes.bar, value: value }, rest)), _jsx(Box, Object.assign({ className: classes.progress }, { children: _jsx(Typography, Object.assign({ variant: "body2", color: "text.secondary" }, { children: `${Math.round(value)}%` })) }))] })));
22
22
  }