@chayns-components/date 5.0.0-beta.869 → 5.0.0-beta.870

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.
@@ -23,8 +23,8 @@ const OpeningTimes = ({
23
23
  weekdays,
24
24
  onChange,
25
25
  onTimeAdd,
26
- onValidationStateChange,
27
- onTimeRemove
26
+ onTimeRemove,
27
+ shouldNotValidate = false
28
28
  }) => {
29
29
  const [newOpeningTimes, setNewOpeningTimes] = (0, _react.useState)();
30
30
  const [invalidOpeningTimes, setInvalidOpeningTimes] = (0, _react.useState)([]);
@@ -34,11 +34,14 @@ const OpeningTimes = ({
34
34
  (0, _react.useEffect)(() => {
35
35
  setNewOpeningTimes(openingTimes);
36
36
  }, [openingTimes]);
37
- (0, _react.useEffect)(() => {
38
- if (typeof onValidationStateChange === 'function') {
39
- onValidationStateChange(invalidOpeningTimes);
37
+ const validateTime = (0, _react.useCallback)((newTime, dayId) => {
38
+ var _newOpeningTimes$find;
39
+ if (newTime.start === newTime.end) {
40
+ return false;
40
41
  }
41
- }, [invalidOpeningTimes, onValidationStateChange]);
42
+ const dayTimes = (newOpeningTimes === null || newOpeningTimes === void 0 || (_newOpeningTimes$find = newOpeningTimes.find(day => day.id === dayId)) === null || _newOpeningTimes$find === void 0 ? void 0 : _newOpeningTimes$find.times) || [];
43
+ return dayTimes.every(time => time.id === newTime.id || newTime.end <= time.start || newTime.start >= time.end);
44
+ }, [newOpeningTimes]);
42
45
  const handleCheckBoxChange = (0, _react.useCallback)(id => {
43
46
  setNewOpeningTimes(prevOpeningTimes => {
44
47
  const updatedOpeningTimes = (prevOpeningTimes ?? []).map(openingTime => {
@@ -59,6 +62,10 @@ const OpeningTimes = ({
59
62
  });
60
63
  }, [onChange]);
61
64
  const handleChange = (0, _react.useCallback)((newTime, id) => {
65
+ const isValid = shouldNotValidate || validateTime(newTime, id);
66
+ if (!isValid) {
67
+ return;
68
+ }
62
69
  setNewOpeningTimes(prevOpeningTimes => {
63
70
  const updatedOpeningTimes = (prevOpeningTimes ?? []).map(openingTime => {
64
71
  if (openingTime.id === id) {
@@ -75,30 +82,20 @@ const OpeningTimes = ({
75
82
  }
76
83
  return openingTime;
77
84
  });
78
- if (typeof onChange === 'function') {
85
+ if (isValid && typeof onChange === 'function') {
79
86
  onChange({
80
87
  time: newTime
81
88
  });
82
89
  }
83
90
  return updatedOpeningTimes;
84
91
  });
85
- }, [onChange]);
92
+ }, [onChange, shouldNotValidate, validateTime]);
86
93
  const handleAdd = (0, _react.useCallback)((time, id) => {
87
- const updatedInvalidOpeningTimes = (newOpeningTimes === null || newOpeningTimes === void 0 ? void 0 : newOpeningTimes.reduce((acc, openingTime) => {
88
- const invalidTimesIds = openingTime.times.filter(ivalidTime => ivalidTime.start < time.end && ivalidTime.end > time.start).map(t => t.id);
89
- if (invalidTimesIds.length > 0) {
90
- acc.push({
91
- openingTimeId: id,
92
- invalidTimeIds: invalidTimesIds
93
- });
94
- }
95
- return acc;
96
- }, [])) || [];
97
- if (typeof onTimeAdd === 'function') {
94
+ const isValid = shouldNotValidate || validateTime(time, id);
95
+ if (isValid && typeof onTimeAdd === 'function') {
98
96
  onTimeAdd({
99
- invalidOpeningTimes: updatedInvalidOpeningTimes,
100
- dayId: id,
101
- time
97
+ time,
98
+ dayId: id
102
99
  });
103
100
  }
104
101
  setNewOpeningTimes(prevOpeningTimes => (prevOpeningTimes ?? []).map(openingTime => {
@@ -110,7 +107,7 @@ const OpeningTimes = ({
110
107
  }
111
108
  return openingTime;
112
109
  }));
113
- }, [newOpeningTimes, onTimeAdd]);
110
+ }, [onTimeAdd, shouldNotValidate, validateTime]);
114
111
  const handleUpdateInvalidIds = (0, _react.useCallback)((openingTimeId, invalidTimeIds) => {
115
112
  setInvalidOpeningTimes(prevState => {
116
113
  const updatedInvalidOpeningTimes = prevState.map(invalidOpeningTime => {
@@ -1 +1 @@
1
- {"version":3,"file":"OpeningTimes.js","names":["_core","require","_react","_interopRequireWildcard","_openingTimes","_HintText","_interopRequireDefault","_OpeningInputs","_OpeningTimes","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","OpeningTimes","closedText","currentDayId","editMode","hintText","hintTextPosition","HintTextPosition","Bottom","openingTimes","weekdays","onChange","onTimeAdd","onValidationStateChange","onTimeRemove","newOpeningTimes","setNewOpeningTimes","useState","invalidOpeningTimes","setInvalidOpeningTimes","isPopupOpen","setIsPopupOpen","ref","useRef","popupRef","useEffect","handleCheckBoxChange","useCallback","id","prevOpeningTimes","updatedOpeningTimes","map","openingTime","isDisabled","enabledDays","filter","item","handleChange","newTime","newTimes","times","time","handleAdd","updatedInvalidOpeningTimes","reduce","acc","invalidTimesIds","ivalidTime","start","end","length","push","openingTimeId","invalidTimeIds","dayId","handleUpdateInvalidIds","prevState","invalidOpeningTime","some","updatedInvalidOpeningId","updatedInvalidOpeningTime","handleRemove","content","useMemo","items","forEach","weekdayId","_weekdays$find","weekday","find","weekDay","name","createElement","StyledOpeningTimesWrapper","key","Checkbox","isChecked","StyledOpeningTimesWeekDay","onInvalid","onRemove","onAdd","size","useElementSize","hidePopup","_popupRef$current","current","hide","showPopup","_popupRef$current2","show","displayedContent","_weekdays$find2","singleDay","style","width","onMouseEnter","onMouseLeave","onClick","Popup","onShow","onHide","StyledOpeningTimesTooltipContent","shouldShowHint","StyledOpeningTimes","Top","text","displayName","_default","exports"],"sources":["../../../../src/components/opening-times/OpeningTimes.tsx"],"sourcesContent":["import { Checkbox, Popup, useElementSize, type PopupRef } from '@chayns-components/core';\nimport React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactElement,\n} from 'react';\nimport {\n HintTextPosition,\n type OnChange,\n type OnTimeAdd,\n type OpeningTime,\n type Time,\n type Weekday,\n} from '../../types/openingTimes';\nimport HintText from './hint-text/HintText';\nimport OpeningInputs from './opening-inputs/OpeningInputs';\nimport {\n StyledOpeningTimes,\n StyledOpeningTimesTooltipContent,\n StyledOpeningTimesWeekDay,\n StyledOpeningTimesWrapper,\n} from './OpeningTimes.styles';\n\nexport type OpeningTimesProps = {\n /**\n * The text that should be displayed when a day is closed.\n */\n closedText?: string;\n /**\n * If set just the current day is displayed and the whole week in a tooltip.\n */\n currentDayId?: OpeningTime['id'];\n /**\n * Whether the opening times can be edited.\n */\n editMode?: boolean;\n /**\n * The text that should be displayed if times are colliding.\n */\n hintText?: string;\n /**\n * The position of the hint text.\n */\n hintTextPosition?: HintTextPosition;\n /**\n * Function to be executed when a time is changed or a day is enabled/disabled.\n * @param openingTimes\n */\n onChange?: ({ time, enabledDays }: OnChange) => void;\n /**\n * Function to be executed when a time is added.\n */\n onTimeAdd?: ({ time, dayId,invalidOpeningTimes }: OnTimeAdd ) => void;\n /**\n * Function to be executed when a time is removed.\n */\n onTimeRemove?: (id: string) => void;\n /**\n * Function to be executed when Validation is changed.\n */\n onValidationStateChange?: (\n invalidOpeningTimes: { openingTimeId: string; invalidTimeIds: string[] }[],\n ) => void;\n\n /**\n * The opening times corresponding to its weekday.\n */\n openingTimes: OpeningTime[];\n /**\n * The weekdays that should be displayed.\n */\n weekdays: Weekday[];\n};\n\nconst OpeningTimes: FC<OpeningTimesProps> = ({\n closedText = 'closed',\n currentDayId,\n editMode = false,\n hintText,\n hintTextPosition = HintTextPosition.Bottom,\n openingTimes,\n weekdays,\n onChange,\n onTimeAdd,\n onValidationStateChange,\n onTimeRemove,\n}) => {\n const [newOpeningTimes, setNewOpeningTimes] = useState<OpeningTime[]>();\n const [invalidOpeningTimes, setInvalidOpeningTimes] = useState<\n { openingTimeId: string; invalidTimeIds: string[] }[]\n >([]);\n const [isPopupOpen, setIsPopupOpen] = useState(false);\n\n const ref = useRef<HTMLDivElement>(null);\n const popupRef = useRef<PopupRef>(null);\n\n useEffect(() => {\n setNewOpeningTimes(openingTimes);\n }, [openingTimes]);\n\n useEffect(() => {\n if (typeof onValidationStateChange === 'function') {\n onValidationStateChange(invalidOpeningTimes);\n }\n }, [invalidOpeningTimes, onValidationStateChange]);\n\n const handleCheckBoxChange = useCallback(\n (id: string) => {\n setNewOpeningTimes((prevOpeningTimes) => {\n const updatedOpeningTimes = (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n return { ...openingTime, isDisabled: !openingTime.isDisabled };\n }\n return openingTime;\n });\n\n if (typeof onChange === 'function') {\n onChange({\n enabledDays: updatedOpeningTimes\n .filter((item) => !item.isDisabled)\n .map((item) => item.id),\n });\n }\n\n return updatedOpeningTimes;\n });\n },\n [onChange],\n );\n\n const handleChange = useCallback(\n (newTime: Time, id: string) => {\n setNewOpeningTimes((prevOpeningTimes) => {\n const updatedOpeningTimes = (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n const newTimes = openingTime.times.map((time) => {\n if (time.id === newTime.id) {\n return newTime;\n }\n\n return time;\n });\n\n return { ...openingTime, times: newTimes };\n }\n return openingTime;\n });\n\n if (typeof onChange === 'function') {\n onChange({ time: newTime });\n }\n\n return updatedOpeningTimes;\n });\n },\n [onChange],\n );\n\n const handleAdd = useCallback(\n (time: Time, id: string) => {\n const updatedInvalidOpeningTimes = newOpeningTimes?.reduce(\n (acc: { openingTimeId: string; invalidTimeIds: string[] }[], openingTime) => {\n const invalidTimesIds = openingTime.times.filter((ivalidTime) =>\n (ivalidTime.start < time.end && ivalidTime.end > time.start)\n ).map((t) => t.id);\n\n if (invalidTimesIds.length > 0) {\n acc.push({ openingTimeId: id, invalidTimeIds: invalidTimesIds });\n }\n return acc;\n },\n [],\n ) || [];\n\n if (typeof onTimeAdd === 'function') {\n onTimeAdd({ invalidOpeningTimes: updatedInvalidOpeningTimes, dayId: id, time });\n }\n\n setNewOpeningTimes((prevOpeningTimes) =>\n (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n return { ...openingTime, times: [...openingTime.times, time] };\n }\n return openingTime;\n }),\n );\n },\n [newOpeningTimes, onTimeAdd],\n );\n\n const handleUpdateInvalidIds = useCallback(\n (openingTimeId: string, invalidTimeIds: string[]) => {\n setInvalidOpeningTimes((prevState) => {\n const updatedInvalidOpeningTimes = prevState.map((invalidOpeningTime) => {\n if (invalidOpeningTime.openingTimeId === openingTimeId) {\n return {\n openingTimeId,\n invalidTimeIds,\n };\n }\n return invalidOpeningTime;\n });\n\n if (\n !updatedInvalidOpeningTimes.some(\n ({ openingTimeId: updatedInvalidOpeningId }) =>\n updatedInvalidOpeningId === openingTimeId,\n ) &&\n invalidTimeIds.length > 0\n ) {\n updatedInvalidOpeningTimes.push({ openingTimeId, invalidTimeIds });\n }\n\n return updatedInvalidOpeningTimes.filter(\n (updatedInvalidOpeningTime) =>\n updatedInvalidOpeningTime.invalidTimeIds.length !== 0,\n );\n });\n },\n [],\n );\n\n const handleRemove = useCallback(\n (id: string) => {\n setNewOpeningTimes((prevOpeningTimes) =>\n (prevOpeningTimes ?? []).map((openingTime) => {\n const newTimes = openingTime.times.filter((time) => time.id !== id);\n\n return {...openingTime, times: newTimes};\n }),\n );\n\n if (typeof onTimeRemove === 'function') {\n onTimeRemove(id);\n }\n },\n [onTimeRemove],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!newOpeningTimes) {\n return items;\n }\n\n newOpeningTimes.forEach(({ times, id, weekdayId, isDisabled }) => {\n const weekday = weekdays.find((weekDay) => weekDay.id === weekdayId)?.name;\n\n if (!weekday) {\n return;\n }\n\n items.push(\n <StyledOpeningTimesWrapper key={`openingTimes__${id}`}>\n {editMode ? (\n <Checkbox isChecked={!isDisabled} onChange={() => handleCheckBoxChange(id)}>\n {weekday}\n </Checkbox>\n ) : (\n <StyledOpeningTimesWeekDay>{weekday}</StyledOpeningTimesWeekDay>\n )}\n <OpeningInputs\n closedText={closedText}\n currentDayId={currentDayId}\n id={id}\n times={times}\n isDisabled={isDisabled}\n onInvalid={handleUpdateInvalidIds}\n onChange={(newTime) => handleChange(newTime, id)}\n onRemove={handleRemove}\n onAdd={handleAdd}\n editMode={editMode}\n />\n </StyledOpeningTimesWrapper>,\n );\n });\n\n return items;\n }, [\n closedText,\n currentDayId,\n editMode,\n handleAdd,\n handleChange,\n handleCheckBoxChange,\n handleRemove,\n handleUpdateInvalidIds,\n newOpeningTimes,\n weekdays,\n ]);\n\n const size = useElementSize(ref);\n\n const hidePopup = useCallback(() => {\n setIsPopupOpen(false);\n popupRef.current?.hide();\n }, []);\n\n const showPopup = useCallback(() => {\n setIsPopupOpen(true);\n popupRef.current?.show();\n }, []);\n\n const displayedContent = useMemo(() => {\n if (!currentDayId || editMode) {\n return content;\n }\n\n const singleDay = newOpeningTimes?.find(({ id }) => id === currentDayId);\n\n if (!singleDay) {\n return content;\n }\n\n const { id, times, weekdayId } = singleDay;\n\n const weekday = weekdays.find((weekDay) => weekDay.id === weekdayId)?.name;\n\n return (\n <StyledOpeningTimesWrapper\n key={`currentDay__${currentDayId}`}\n style={size && { width: size.width }}\n onMouseEnter={showPopup}\n onMouseLeave={hidePopup}\n onClick={() => (isPopupOpen ? hidePopup() : showPopup())}\n >\n <Popup\n onShow={() => setIsPopupOpen(true)}\n onHide={() => setIsPopupOpen(false)}\n ref={popupRef}\n content={\n <StyledOpeningTimesTooltipContent key=\"opening-time-tooltip\">\n {content}\n </StyledOpeningTimesTooltipContent>\n }\n >\n <StyledOpeningTimesWeekDay>{weekday}</StyledOpeningTimesWeekDay>\n </Popup>\n <OpeningInputs\n closedText={closedText}\n currentDayId={currentDayId}\n onInvalid={handleUpdateInvalidIds}\n id={id}\n times={times}\n editMode={editMode}\n />\n </StyledOpeningTimesWrapper>\n );\n }, [\n currentDayId,\n editMode,\n newOpeningTimes,\n weekdays,\n size,\n showPopup,\n hidePopup,\n content,\n closedText,\n handleUpdateInvalidIds,\n isPopupOpen,\n ]);\n\n const shouldShowHint = useMemo(\n () => invalidOpeningTimes.length > 0,\n [invalidOpeningTimes.length],\n );\n\n return useMemo(\n () => (\n <StyledOpeningTimes ref={ref}>\n {shouldShowHint && hintText && hintTextPosition === HintTextPosition.Top && (\n <HintText text={hintText} />\n )}\n {displayedContent}\n {shouldShowHint && hintText && hintTextPosition === HintTextPosition.Bottom && (\n <HintText text={hintText} />\n )}\n </StyledOpeningTimes>\n ),\n [displayedContent, hintText, hintTextPosition, shouldShowHint],\n );\n};\n\nOpeningTimes.displayName = 'OpeningTimes';\n\nexport default OpeningTimes;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OpeningTimes.js","names":["_core","require","_react","_interopRequireWildcard","_openingTimes","_HintText","_interopRequireDefault","_OpeningInputs","_OpeningTimes","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","OpeningTimes","closedText","currentDayId","editMode","hintText","hintTextPosition","HintTextPosition","Bottom","openingTimes","weekdays","onChange","onTimeAdd","onTimeRemove","shouldNotValidate","newOpeningTimes","setNewOpeningTimes","useState","invalidOpeningTimes","setInvalidOpeningTimes","isPopupOpen","setIsPopupOpen","ref","useRef","popupRef","useEffect","validateTime","useCallback","newTime","dayId","_newOpeningTimes$find","start","end","dayTimes","find","day","id","times","every","time","handleCheckBoxChange","prevOpeningTimes","updatedOpeningTimes","map","openingTime","isDisabled","enabledDays","filter","item","handleChange","isValid","newTimes","handleAdd","handleUpdateInvalidIds","openingTimeId","invalidTimeIds","prevState","updatedInvalidOpeningTimes","invalidOpeningTime","some","updatedInvalidOpeningId","length","push","updatedInvalidOpeningTime","handleRemove","content","useMemo","items","forEach","weekdayId","_weekdays$find","weekday","weekDay","name","createElement","StyledOpeningTimesWrapper","key","Checkbox","isChecked","StyledOpeningTimesWeekDay","onInvalid","onRemove","onAdd","size","useElementSize","hidePopup","_popupRef$current","current","hide","showPopup","_popupRef$current2","show","displayedContent","_weekdays$find2","singleDay","style","width","onMouseEnter","onMouseLeave","onClick","Popup","onShow","onHide","StyledOpeningTimesTooltipContent","shouldShowHint","StyledOpeningTimes","Top","text","displayName","_default","exports"],"sources":["../../../../src/components/opening-times/OpeningTimes.tsx"],"sourcesContent":["import { Checkbox, Popup, useElementSize, type PopupRef } from '@chayns-components/core';\nimport React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactElement,\n} from 'react';\nimport {\n HintTextPosition,\n type OnChange,\n type OnTimeAdd,\n type OpeningTime,\n type Time,\n type Weekday,\n} from '../../types/openingTimes';\nimport HintText from './hint-text/HintText';\nimport OpeningInputs from './opening-inputs/OpeningInputs';\nimport {\n StyledOpeningTimes,\n StyledOpeningTimesTooltipContent,\n StyledOpeningTimesWeekDay,\n StyledOpeningTimesWrapper,\n} from './OpeningTimes.styles';\n\nexport type OpeningTimesProps = {\n /**\n * The text that should be displayed when a day is closed.\n */\n closedText?: string;\n /**\n * If set just the current day is displayed and the whole week in a tooltip.\n */\n currentDayId?: OpeningTime['id'];\n /**\n * Whether the opening times can be edited.\n */\n editMode?: boolean;\n /**\n * The text that should be displayed if times are colliding.\n */\n hintText?: string;\n /**\n * The position of the hint text.\n */\n hintTextPosition?: HintTextPosition;\n /**\n * Function to be executed when a time is changed or a day is enabled/disabled.\n * @param openingTimes\n */\n onChange?: ({ time, enabledDays }: OnChange) => void;\n /**\n * Function to be executed when a time is added.\n */\n onTimeAdd?: ({ time, dayId }: OnTimeAdd) => void;\n /**\n * Function to be executed when a time is removed.\n */\n onTimeRemove?: (id: string) => void;\n /**\n * Function to be executed when Validation is changed.\n */\n onValidationStateChange?: (\n invalidOpeningTimes: { openingTimeId: string; invalidTimeIds: string[] }[],\n ) => void;\n\n /**\n * The opening times corresponding to its weekday.\n */\n openingTimes: OpeningTime[];\n /**\n * The weekdays that should be displayed.\n */\n weekdays: Weekday[];\n /**\n * When set to true, events are triggered without validation.\n */\n shouldNotValidate?: boolean;\n};\n\nconst OpeningTimes: FC<OpeningTimesProps> = ({\n closedText = 'closed',\n currentDayId,\n editMode = false,\n hintText,\n hintTextPosition = HintTextPosition.Bottom,\n openingTimes,\n weekdays,\n onChange,\n onTimeAdd,\n onTimeRemove,\n shouldNotValidate = false,\n}) => {\n const [newOpeningTimes, setNewOpeningTimes] = useState<OpeningTime[]>();\n const [invalidOpeningTimes, setInvalidOpeningTimes] = useState<\n { openingTimeId: string; invalidTimeIds: string[] }[]\n >([]);\n const [isPopupOpen, setIsPopupOpen] = useState(false);\n\n const ref = useRef<HTMLDivElement>(null);\n const popupRef = useRef<PopupRef>(null);\n\n useEffect(() => {\n setNewOpeningTimes(openingTimes);\n }, [openingTimes]);\n\n const validateTime = useCallback(\n (newTime: Time, dayId: string): boolean => {\n if (newTime.start === newTime.end) {\n return false;\n }\n const dayTimes = newOpeningTimes?.find((day) => day.id === dayId)?.times || [];\n\n return dayTimes.every(\n (time) =>\n time.id === newTime.id ||\n newTime.end <= time.start ||\n newTime.start >= time.end,\n );\n },\n [newOpeningTimes],\n );\n\n const handleCheckBoxChange = useCallback(\n (id: string) => {\n setNewOpeningTimes((prevOpeningTimes) => {\n const updatedOpeningTimes = (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n return { ...openingTime, isDisabled: !openingTime.isDisabled };\n }\n return openingTime;\n });\n\n if (typeof onChange === 'function') {\n onChange({\n enabledDays: updatedOpeningTimes\n .filter((item) => !item.isDisabled)\n .map((item) => item.id),\n });\n }\n\n return updatedOpeningTimes;\n });\n },\n [onChange],\n );\n\n const handleChange = useCallback(\n (newTime: Time, id: string) => {\n const isValid = shouldNotValidate || validateTime(newTime, id);\n if (!isValid) {\n return;\n }\n\n setNewOpeningTimes((prevOpeningTimes) => {\n const updatedOpeningTimes = (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n const newTimes = openingTime.times.map((time) => {\n if (time.id === newTime.id) {\n return newTime;\n }\n return time;\n });\n return { ...openingTime, times: newTimes };\n }\n return openingTime;\n });\n\n if (isValid && typeof onChange === 'function') {\n onChange({ time: newTime });\n }\n\n return updatedOpeningTimes;\n });\n },\n [onChange, shouldNotValidate, validateTime],\n );\n\n const handleAdd = useCallback(\n (time: Time, id: string) => {\n const isValid = shouldNotValidate || validateTime(time, id);\n\n if (isValid && typeof onTimeAdd === 'function') {\n onTimeAdd({ time, dayId: id });\n }\n\n setNewOpeningTimes((prevOpeningTimes) =>\n (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n return { ...openingTime, times: [...openingTime.times, time] };\n }\n return openingTime;\n }),\n );\n },\n [onTimeAdd, shouldNotValidate, validateTime],\n );\n\n const handleUpdateInvalidIds = useCallback(\n (openingTimeId: string, invalidTimeIds: string[]) => {\n setInvalidOpeningTimes((prevState) => {\n const updatedInvalidOpeningTimes = prevState.map((invalidOpeningTime) => {\n if (invalidOpeningTime.openingTimeId === openingTimeId) {\n return {\n openingTimeId,\n invalidTimeIds,\n };\n }\n return invalidOpeningTime;\n });\n\n if (\n !updatedInvalidOpeningTimes.some(\n ({ openingTimeId: updatedInvalidOpeningId }) =>\n updatedInvalidOpeningId === openingTimeId,\n ) &&\n invalidTimeIds.length > 0\n ) {\n updatedInvalidOpeningTimes.push({ openingTimeId, invalidTimeIds });\n }\n\n return updatedInvalidOpeningTimes.filter(\n (updatedInvalidOpeningTime) =>\n updatedInvalidOpeningTime.invalidTimeIds.length !== 0,\n );\n });\n },\n [],\n );\n\n const handleRemove = useCallback(\n (id: string) => {\n setNewOpeningTimes((prevOpeningTimes) =>\n (prevOpeningTimes ?? []).map((openingTime) => {\n const newTimes = openingTime.times.filter((time) => time.id !== id);\n\n return { ...openingTime, times: newTimes };\n }),\n );\n\n if (typeof onTimeRemove === 'function') {\n onTimeRemove(id);\n }\n },\n [onTimeRemove],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!newOpeningTimes) {\n return items;\n }\n\n newOpeningTimes.forEach(({ times, id, weekdayId, isDisabled }) => {\n const weekday = weekdays.find((weekDay) => weekDay.id === weekdayId)?.name;\n\n if (!weekday) {\n return;\n }\n\n items.push(\n <StyledOpeningTimesWrapper key={`openingTimes__${id}`}>\n {editMode ? (\n <Checkbox isChecked={!isDisabled} onChange={() => handleCheckBoxChange(id)}>\n {weekday}\n </Checkbox>\n ) : (\n <StyledOpeningTimesWeekDay>{weekday}</StyledOpeningTimesWeekDay>\n )}\n <OpeningInputs\n closedText={closedText}\n currentDayId={currentDayId}\n id={id}\n times={times}\n isDisabled={isDisabled}\n onInvalid={handleUpdateInvalidIds}\n onChange={(newTime) => handleChange(newTime, id)}\n onRemove={handleRemove}\n onAdd={handleAdd}\n editMode={editMode}\n />\n </StyledOpeningTimesWrapper>,\n );\n });\n\n return items;\n }, [\n closedText,\n currentDayId,\n editMode,\n handleAdd,\n handleChange,\n handleCheckBoxChange,\n handleRemove,\n handleUpdateInvalidIds,\n newOpeningTimes,\n weekdays,\n ]);\n\n const size = useElementSize(ref);\n\n const hidePopup = useCallback(() => {\n setIsPopupOpen(false);\n popupRef.current?.hide();\n }, []);\n\n const showPopup = useCallback(() => {\n setIsPopupOpen(true);\n popupRef.current?.show();\n }, []);\n\n const displayedContent = useMemo(() => {\n if (!currentDayId || editMode) {\n return content;\n }\n\n const singleDay = newOpeningTimes?.find(({ id }) => id === currentDayId);\n\n if (!singleDay) {\n return content;\n }\n\n const { id, times, weekdayId } = singleDay;\n\n const weekday = weekdays.find((weekDay) => weekDay.id === weekdayId)?.name;\n\n return (\n <StyledOpeningTimesWrapper\n key={`currentDay__${currentDayId}`}\n style={size && { width: size.width }}\n onMouseEnter={showPopup}\n onMouseLeave={hidePopup}\n onClick={() => (isPopupOpen ? hidePopup() : showPopup())}\n >\n <Popup\n onShow={() => setIsPopupOpen(true)}\n onHide={() => setIsPopupOpen(false)}\n ref={popupRef}\n content={\n <StyledOpeningTimesTooltipContent key=\"opening-time-tooltip\">\n {content}\n </StyledOpeningTimesTooltipContent>\n }\n >\n <StyledOpeningTimesWeekDay>{weekday}</StyledOpeningTimesWeekDay>\n </Popup>\n <OpeningInputs\n closedText={closedText}\n currentDayId={currentDayId}\n onInvalid={handleUpdateInvalidIds}\n id={id}\n times={times}\n editMode={editMode}\n />\n </StyledOpeningTimesWrapper>\n );\n }, [\n currentDayId,\n editMode,\n newOpeningTimes,\n weekdays,\n size,\n showPopup,\n hidePopup,\n content,\n closedText,\n handleUpdateInvalidIds,\n isPopupOpen,\n ]);\n\n const shouldShowHint = useMemo(\n () => invalidOpeningTimes.length > 0,\n [invalidOpeningTimes.length],\n );\n\n return useMemo(\n () => (\n <StyledOpeningTimes ref={ref}>\n {shouldShowHint && hintText && hintTextPosition === HintTextPosition.Top && (\n <HintText text={hintText} />\n )}\n {displayedContent}\n {shouldShowHint && hintText && hintTextPosition === HintTextPosition.Bottom && (\n <HintText text={hintText} />\n )}\n </StyledOpeningTimes>\n ),\n [displayedContent, hintText, hintTextPosition, shouldShowHint],\n );\n};\n\nOpeningTimes.displayName = 'OpeningTimes';\n\nexport default OpeningTimes;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"openingTimes.js","names":["OpeningTimesButtonType","exports","HintTextPosition"],"sources":["../../../src/types/openingTimes.ts"],"sourcesContent":["export interface Weekday {\n name: string;\n id: number;\n}\n\nexport interface Time {\n id: string;\n start: string;\n end: string;\n}\n\nexport interface OpeningTime {\n weekdayId: Weekday['id'];\n id: string;\n isDisabled?: boolean;\n times: Time[];\n}\n\nexport interface OnTimeAdd {\n dayId: OpeningTime['id'];\n time: Time;\n invalidOpeningTimes: { openingTimeId: string; invalidTimeIds: string[] }[]\n}\n\nexport interface OnChange {\n enabledDays?: OpeningTime['id'][];\n time?: Time;\n}\n\nexport enum OpeningTimesButtonType {\n NONE,\n ADD,\n REMOVE,\n}\n\nexport enum HintTextPosition {\n Top,\n Bottom,\n}\n"],"mappings":";;;;;;IA6BYA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,0BAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;AAAA,IAMtBE,gBAAgB,GAAAD,OAAA,CAAAC,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"openingTimes.js","names":["OpeningTimesButtonType","exports","HintTextPosition"],"sources":["../../../src/types/openingTimes.ts"],"sourcesContent":["export interface Weekday {\n name: string;\n id: number;\n}\n\nexport interface Time {\n id: string;\n start: string;\n end: string;\n}\n\nexport interface OpeningTime {\n weekdayId: Weekday['id'];\n id: string;\n isDisabled?: boolean;\n times: Time[];\n}\n\nexport interface OnTimeAdd {\n dayId: OpeningTime['id'];\n time: Time;\n}\n\nexport interface OnChange {\n enabledDays?: OpeningTime['id'][];\n time?: Time;\n}\n\nexport enum OpeningTimesButtonType {\n NONE,\n ADD,\n REMOVE,\n}\n\nexport enum HintTextPosition {\n Top,\n Bottom,\n}\n"],"mappings":";;;;;;IA4BYA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,0BAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;AAAA,IAMtBE,gBAAgB,GAAAD,OAAA,CAAAC,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA","ignoreList":[]}
@@ -15,8 +15,8 @@ const OpeningTimes = _ref => {
15
15
  weekdays,
16
16
  onChange,
17
17
  onTimeAdd,
18
- onValidationStateChange,
19
- onTimeRemove
18
+ onTimeRemove,
19
+ shouldNotValidate = false
20
20
  } = _ref;
21
21
  const [newOpeningTimes, setNewOpeningTimes] = useState();
22
22
  const [invalidOpeningTimes, setInvalidOpeningTimes] = useState([]);
@@ -26,11 +26,13 @@ const OpeningTimes = _ref => {
26
26
  useEffect(() => {
27
27
  setNewOpeningTimes(openingTimes);
28
28
  }, [openingTimes]);
29
- useEffect(() => {
30
- if (typeof onValidationStateChange === 'function') {
31
- onValidationStateChange(invalidOpeningTimes);
29
+ const validateTime = useCallback((newTime, dayId) => {
30
+ if (newTime.start === newTime.end) {
31
+ return false;
32
32
  }
33
- }, [invalidOpeningTimes, onValidationStateChange]);
33
+ const dayTimes = newOpeningTimes?.find(day => day.id === dayId)?.times || [];
34
+ return dayTimes.every(time => time.id === newTime.id || newTime.end <= time.start || newTime.start >= time.end);
35
+ }, [newOpeningTimes]);
34
36
  const handleCheckBoxChange = useCallback(id => {
35
37
  setNewOpeningTimes(prevOpeningTimes => {
36
38
  const updatedOpeningTimes = (prevOpeningTimes ?? []).map(openingTime => {
@@ -51,6 +53,10 @@ const OpeningTimes = _ref => {
51
53
  });
52
54
  }, [onChange]);
53
55
  const handleChange = useCallback((newTime, id) => {
56
+ const isValid = shouldNotValidate || validateTime(newTime, id);
57
+ if (!isValid) {
58
+ return;
59
+ }
54
60
  setNewOpeningTimes(prevOpeningTimes => {
55
61
  const updatedOpeningTimes = (prevOpeningTimes ?? []).map(openingTime => {
56
62
  if (openingTime.id === id) {
@@ -67,30 +73,20 @@ const OpeningTimes = _ref => {
67
73
  }
68
74
  return openingTime;
69
75
  });
70
- if (typeof onChange === 'function') {
76
+ if (isValid && typeof onChange === 'function') {
71
77
  onChange({
72
78
  time: newTime
73
79
  });
74
80
  }
75
81
  return updatedOpeningTimes;
76
82
  });
77
- }, [onChange]);
83
+ }, [onChange, shouldNotValidate, validateTime]);
78
84
  const handleAdd = useCallback((time, id) => {
79
- const updatedInvalidOpeningTimes = newOpeningTimes?.reduce((acc, openingTime) => {
80
- const invalidTimesIds = openingTime.times.filter(ivalidTime => ivalidTime.start < time.end && ivalidTime.end > time.start).map(t => t.id);
81
- if (invalidTimesIds.length > 0) {
82
- acc.push({
83
- openingTimeId: id,
84
- invalidTimeIds: invalidTimesIds
85
- });
86
- }
87
- return acc;
88
- }, []) || [];
89
- if (typeof onTimeAdd === 'function') {
85
+ const isValid = shouldNotValidate || validateTime(time, id);
86
+ if (isValid && typeof onTimeAdd === 'function') {
90
87
  onTimeAdd({
91
- invalidOpeningTimes: updatedInvalidOpeningTimes,
92
- dayId: id,
93
- time
88
+ time,
89
+ dayId: id
94
90
  });
95
91
  }
96
92
  setNewOpeningTimes(prevOpeningTimes => (prevOpeningTimes ?? []).map(openingTime => {
@@ -102,7 +98,7 @@ const OpeningTimes = _ref => {
102
98
  }
103
99
  return openingTime;
104
100
  }));
105
- }, [newOpeningTimes, onTimeAdd]);
101
+ }, [onTimeAdd, shouldNotValidate, validateTime]);
106
102
  const handleUpdateInvalidIds = useCallback((openingTimeId, invalidTimeIds) => {
107
103
  setInvalidOpeningTimes(prevState => {
108
104
  const updatedInvalidOpeningTimes = prevState.map(invalidOpeningTime => {
@@ -1 +1 @@
1
- {"version":3,"file":"OpeningTimes.js","names":["Checkbox","Popup","useElementSize","React","useCallback","useEffect","useMemo","useRef","useState","HintTextPosition","HintText","OpeningInputs","StyledOpeningTimes","StyledOpeningTimesTooltipContent","StyledOpeningTimesWeekDay","StyledOpeningTimesWrapper","OpeningTimes","_ref","closedText","currentDayId","editMode","hintText","hintTextPosition","Bottom","openingTimes","weekdays","onChange","onTimeAdd","onValidationStateChange","onTimeRemove","newOpeningTimes","setNewOpeningTimes","invalidOpeningTimes","setInvalidOpeningTimes","isPopupOpen","setIsPopupOpen","ref","popupRef","handleCheckBoxChange","id","prevOpeningTimes","updatedOpeningTimes","map","openingTime","isDisabled","enabledDays","filter","item","handleChange","newTime","newTimes","times","time","handleAdd","updatedInvalidOpeningTimes","reduce","acc","invalidTimesIds","ivalidTime","start","end","t","length","push","openingTimeId","invalidTimeIds","dayId","handleUpdateInvalidIds","prevState","invalidOpeningTime","some","_ref2","updatedInvalidOpeningId","updatedInvalidOpeningTime","handleRemove","content","items","forEach","_ref3","weekdayId","weekday","find","weekDay","name","createElement","key","isChecked","onInvalid","onRemove","onAdd","size","hidePopup","current","hide","showPopup","show","displayedContent","singleDay","_ref4","style","width","onMouseEnter","onMouseLeave","onClick","onShow","onHide","shouldShowHint","Top","text","displayName"],"sources":["../../../../src/components/opening-times/OpeningTimes.tsx"],"sourcesContent":["import { Checkbox, Popup, useElementSize, type PopupRef } from '@chayns-components/core';\nimport React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactElement,\n} from 'react';\nimport {\n HintTextPosition,\n type OnChange,\n type OnTimeAdd,\n type OpeningTime,\n type Time,\n type Weekday,\n} from '../../types/openingTimes';\nimport HintText from './hint-text/HintText';\nimport OpeningInputs from './opening-inputs/OpeningInputs';\nimport {\n StyledOpeningTimes,\n StyledOpeningTimesTooltipContent,\n StyledOpeningTimesWeekDay,\n StyledOpeningTimesWrapper,\n} from './OpeningTimes.styles';\n\nexport type OpeningTimesProps = {\n /**\n * The text that should be displayed when a day is closed.\n */\n closedText?: string;\n /**\n * If set just the current day is displayed and the whole week in a tooltip.\n */\n currentDayId?: OpeningTime['id'];\n /**\n * Whether the opening times can be edited.\n */\n editMode?: boolean;\n /**\n * The text that should be displayed if times are colliding.\n */\n hintText?: string;\n /**\n * The position of the hint text.\n */\n hintTextPosition?: HintTextPosition;\n /**\n * Function to be executed when a time is changed or a day is enabled/disabled.\n * @param openingTimes\n */\n onChange?: ({ time, enabledDays }: OnChange) => void;\n /**\n * Function to be executed when a time is added.\n */\n onTimeAdd?: ({ time, dayId,invalidOpeningTimes }: OnTimeAdd ) => void;\n /**\n * Function to be executed when a time is removed.\n */\n onTimeRemove?: (id: string) => void;\n /**\n * Function to be executed when Validation is changed.\n */\n onValidationStateChange?: (\n invalidOpeningTimes: { openingTimeId: string; invalidTimeIds: string[] }[],\n ) => void;\n\n /**\n * The opening times corresponding to its weekday.\n */\n openingTimes: OpeningTime[];\n /**\n * The weekdays that should be displayed.\n */\n weekdays: Weekday[];\n};\n\nconst OpeningTimes: FC<OpeningTimesProps> = ({\n closedText = 'closed',\n currentDayId,\n editMode = false,\n hintText,\n hintTextPosition = HintTextPosition.Bottom,\n openingTimes,\n weekdays,\n onChange,\n onTimeAdd,\n onValidationStateChange,\n onTimeRemove,\n}) => {\n const [newOpeningTimes, setNewOpeningTimes] = useState<OpeningTime[]>();\n const [invalidOpeningTimes, setInvalidOpeningTimes] = useState<\n { openingTimeId: string; invalidTimeIds: string[] }[]\n >([]);\n const [isPopupOpen, setIsPopupOpen] = useState(false);\n\n const ref = useRef<HTMLDivElement>(null);\n const popupRef = useRef<PopupRef>(null);\n\n useEffect(() => {\n setNewOpeningTimes(openingTimes);\n }, [openingTimes]);\n\n useEffect(() => {\n if (typeof onValidationStateChange === 'function') {\n onValidationStateChange(invalidOpeningTimes);\n }\n }, [invalidOpeningTimes, onValidationStateChange]);\n\n const handleCheckBoxChange = useCallback(\n (id: string) => {\n setNewOpeningTimes((prevOpeningTimes) => {\n const updatedOpeningTimes = (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n return { ...openingTime, isDisabled: !openingTime.isDisabled };\n }\n return openingTime;\n });\n\n if (typeof onChange === 'function') {\n onChange({\n enabledDays: updatedOpeningTimes\n .filter((item) => !item.isDisabled)\n .map((item) => item.id),\n });\n }\n\n return updatedOpeningTimes;\n });\n },\n [onChange],\n );\n\n const handleChange = useCallback(\n (newTime: Time, id: string) => {\n setNewOpeningTimes((prevOpeningTimes) => {\n const updatedOpeningTimes = (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n const newTimes = openingTime.times.map((time) => {\n if (time.id === newTime.id) {\n return newTime;\n }\n\n return time;\n });\n\n return { ...openingTime, times: newTimes };\n }\n return openingTime;\n });\n\n if (typeof onChange === 'function') {\n onChange({ time: newTime });\n }\n\n return updatedOpeningTimes;\n });\n },\n [onChange],\n );\n\n const handleAdd = useCallback(\n (time: Time, id: string) => {\n const updatedInvalidOpeningTimes = newOpeningTimes?.reduce(\n (acc: { openingTimeId: string; invalidTimeIds: string[] }[], openingTime) => {\n const invalidTimesIds = openingTime.times.filter((ivalidTime) =>\n (ivalidTime.start < time.end && ivalidTime.end > time.start)\n ).map((t) => t.id);\n\n if (invalidTimesIds.length > 0) {\n acc.push({ openingTimeId: id, invalidTimeIds: invalidTimesIds });\n }\n return acc;\n },\n [],\n ) || [];\n\n if (typeof onTimeAdd === 'function') {\n onTimeAdd({ invalidOpeningTimes: updatedInvalidOpeningTimes, dayId: id, time });\n }\n\n setNewOpeningTimes((prevOpeningTimes) =>\n (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n return { ...openingTime, times: [...openingTime.times, time] };\n }\n return openingTime;\n }),\n );\n },\n [newOpeningTimes, onTimeAdd],\n );\n\n const handleUpdateInvalidIds = useCallback(\n (openingTimeId: string, invalidTimeIds: string[]) => {\n setInvalidOpeningTimes((prevState) => {\n const updatedInvalidOpeningTimes = prevState.map((invalidOpeningTime) => {\n if (invalidOpeningTime.openingTimeId === openingTimeId) {\n return {\n openingTimeId,\n invalidTimeIds,\n };\n }\n return invalidOpeningTime;\n });\n\n if (\n !updatedInvalidOpeningTimes.some(\n ({ openingTimeId: updatedInvalidOpeningId }) =>\n updatedInvalidOpeningId === openingTimeId,\n ) &&\n invalidTimeIds.length > 0\n ) {\n updatedInvalidOpeningTimes.push({ openingTimeId, invalidTimeIds });\n }\n\n return updatedInvalidOpeningTimes.filter(\n (updatedInvalidOpeningTime) =>\n updatedInvalidOpeningTime.invalidTimeIds.length !== 0,\n );\n });\n },\n [],\n );\n\n const handleRemove = useCallback(\n (id: string) => {\n setNewOpeningTimes((prevOpeningTimes) =>\n (prevOpeningTimes ?? []).map((openingTime) => {\n const newTimes = openingTime.times.filter((time) => time.id !== id);\n\n return {...openingTime, times: newTimes};\n }),\n );\n\n if (typeof onTimeRemove === 'function') {\n onTimeRemove(id);\n }\n },\n [onTimeRemove],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!newOpeningTimes) {\n return items;\n }\n\n newOpeningTimes.forEach(({ times, id, weekdayId, isDisabled }) => {\n const weekday = weekdays.find((weekDay) => weekDay.id === weekdayId)?.name;\n\n if (!weekday) {\n return;\n }\n\n items.push(\n <StyledOpeningTimesWrapper key={`openingTimes__${id}`}>\n {editMode ? (\n <Checkbox isChecked={!isDisabled} onChange={() => handleCheckBoxChange(id)}>\n {weekday}\n </Checkbox>\n ) : (\n <StyledOpeningTimesWeekDay>{weekday}</StyledOpeningTimesWeekDay>\n )}\n <OpeningInputs\n closedText={closedText}\n currentDayId={currentDayId}\n id={id}\n times={times}\n isDisabled={isDisabled}\n onInvalid={handleUpdateInvalidIds}\n onChange={(newTime) => handleChange(newTime, id)}\n onRemove={handleRemove}\n onAdd={handleAdd}\n editMode={editMode}\n />\n </StyledOpeningTimesWrapper>,\n );\n });\n\n return items;\n }, [\n closedText,\n currentDayId,\n editMode,\n handleAdd,\n handleChange,\n handleCheckBoxChange,\n handleRemove,\n handleUpdateInvalidIds,\n newOpeningTimes,\n weekdays,\n ]);\n\n const size = useElementSize(ref);\n\n const hidePopup = useCallback(() => {\n setIsPopupOpen(false);\n popupRef.current?.hide();\n }, []);\n\n const showPopup = useCallback(() => {\n setIsPopupOpen(true);\n popupRef.current?.show();\n }, []);\n\n const displayedContent = useMemo(() => {\n if (!currentDayId || editMode) {\n return content;\n }\n\n const singleDay = newOpeningTimes?.find(({ id }) => id === currentDayId);\n\n if (!singleDay) {\n return content;\n }\n\n const { id, times, weekdayId } = singleDay;\n\n const weekday = weekdays.find((weekDay) => weekDay.id === weekdayId)?.name;\n\n return (\n <StyledOpeningTimesWrapper\n key={`currentDay__${currentDayId}`}\n style={size && { width: size.width }}\n onMouseEnter={showPopup}\n onMouseLeave={hidePopup}\n onClick={() => (isPopupOpen ? hidePopup() : showPopup())}\n >\n <Popup\n onShow={() => setIsPopupOpen(true)}\n onHide={() => setIsPopupOpen(false)}\n ref={popupRef}\n content={\n <StyledOpeningTimesTooltipContent key=\"opening-time-tooltip\">\n {content}\n </StyledOpeningTimesTooltipContent>\n }\n >\n <StyledOpeningTimesWeekDay>{weekday}</StyledOpeningTimesWeekDay>\n </Popup>\n <OpeningInputs\n closedText={closedText}\n currentDayId={currentDayId}\n onInvalid={handleUpdateInvalidIds}\n id={id}\n times={times}\n editMode={editMode}\n />\n </StyledOpeningTimesWrapper>\n );\n }, [\n currentDayId,\n editMode,\n newOpeningTimes,\n weekdays,\n size,\n showPopup,\n hidePopup,\n content,\n closedText,\n handleUpdateInvalidIds,\n isPopupOpen,\n ]);\n\n const shouldShowHint = useMemo(\n () => invalidOpeningTimes.length > 0,\n [invalidOpeningTimes.length],\n );\n\n return useMemo(\n () => (\n <StyledOpeningTimes ref={ref}>\n {shouldShowHint && hintText && hintTextPosition === HintTextPosition.Top && (\n <HintText text={hintText} />\n )}\n {displayedContent}\n {shouldShowHint && hintText && hintTextPosition === HintTextPosition.Bottom && (\n <HintText text={hintText} />\n )}\n </StyledOpeningTimes>\n ),\n [displayedContent, hintText, hintTextPosition, shouldShowHint],\n );\n};\n\nOpeningTimes.displayName = 'OpeningTimes';\n\nexport default OpeningTimes;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OpeningTimes.js","names":["Checkbox","Popup","useElementSize","React","useCallback","useEffect","useMemo","useRef","useState","HintTextPosition","HintText","OpeningInputs","StyledOpeningTimes","StyledOpeningTimesTooltipContent","StyledOpeningTimesWeekDay","StyledOpeningTimesWrapper","OpeningTimes","_ref","closedText","currentDayId","editMode","hintText","hintTextPosition","Bottom","openingTimes","weekdays","onChange","onTimeAdd","onTimeRemove","shouldNotValidate","newOpeningTimes","setNewOpeningTimes","invalidOpeningTimes","setInvalidOpeningTimes","isPopupOpen","setIsPopupOpen","ref","popupRef","validateTime","newTime","dayId","start","end","dayTimes","find","day","id","times","every","time","handleCheckBoxChange","prevOpeningTimes","updatedOpeningTimes","map","openingTime","isDisabled","enabledDays","filter","item","handleChange","isValid","newTimes","handleAdd","handleUpdateInvalidIds","openingTimeId","invalidTimeIds","prevState","updatedInvalidOpeningTimes","invalidOpeningTime","some","_ref2","updatedInvalidOpeningId","length","push","updatedInvalidOpeningTime","handleRemove","content","items","forEach","_ref3","weekdayId","weekday","weekDay","name","createElement","key","isChecked","onInvalid","onRemove","onAdd","size","hidePopup","current","hide","showPopup","show","displayedContent","singleDay","_ref4","style","width","onMouseEnter","onMouseLeave","onClick","onShow","onHide","shouldShowHint","Top","text","displayName"],"sources":["../../../../src/components/opening-times/OpeningTimes.tsx"],"sourcesContent":["import { Checkbox, Popup, useElementSize, type PopupRef } from '@chayns-components/core';\nimport React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactElement,\n} from 'react';\nimport {\n HintTextPosition,\n type OnChange,\n type OnTimeAdd,\n type OpeningTime,\n type Time,\n type Weekday,\n} from '../../types/openingTimes';\nimport HintText from './hint-text/HintText';\nimport OpeningInputs from './opening-inputs/OpeningInputs';\nimport {\n StyledOpeningTimes,\n StyledOpeningTimesTooltipContent,\n StyledOpeningTimesWeekDay,\n StyledOpeningTimesWrapper,\n} from './OpeningTimes.styles';\n\nexport type OpeningTimesProps = {\n /**\n * The text that should be displayed when a day is closed.\n */\n closedText?: string;\n /**\n * If set just the current day is displayed and the whole week in a tooltip.\n */\n currentDayId?: OpeningTime['id'];\n /**\n * Whether the opening times can be edited.\n */\n editMode?: boolean;\n /**\n * The text that should be displayed if times are colliding.\n */\n hintText?: string;\n /**\n * The position of the hint text.\n */\n hintTextPosition?: HintTextPosition;\n /**\n * Function to be executed when a time is changed or a day is enabled/disabled.\n * @param openingTimes\n */\n onChange?: ({ time, enabledDays }: OnChange) => void;\n /**\n * Function to be executed when a time is added.\n */\n onTimeAdd?: ({ time, dayId }: OnTimeAdd) => void;\n /**\n * Function to be executed when a time is removed.\n */\n onTimeRemove?: (id: string) => void;\n /**\n * Function to be executed when Validation is changed.\n */\n onValidationStateChange?: (\n invalidOpeningTimes: { openingTimeId: string; invalidTimeIds: string[] }[],\n ) => void;\n\n /**\n * The opening times corresponding to its weekday.\n */\n openingTimes: OpeningTime[];\n /**\n * The weekdays that should be displayed.\n */\n weekdays: Weekday[];\n /**\n * When set to true, events are triggered without validation.\n */\n shouldNotValidate?: boolean;\n};\n\nconst OpeningTimes: FC<OpeningTimesProps> = ({\n closedText = 'closed',\n currentDayId,\n editMode = false,\n hintText,\n hintTextPosition = HintTextPosition.Bottom,\n openingTimes,\n weekdays,\n onChange,\n onTimeAdd,\n onTimeRemove,\n shouldNotValidate = false,\n}) => {\n const [newOpeningTimes, setNewOpeningTimes] = useState<OpeningTime[]>();\n const [invalidOpeningTimes, setInvalidOpeningTimes] = useState<\n { openingTimeId: string; invalidTimeIds: string[] }[]\n >([]);\n const [isPopupOpen, setIsPopupOpen] = useState(false);\n\n const ref = useRef<HTMLDivElement>(null);\n const popupRef = useRef<PopupRef>(null);\n\n useEffect(() => {\n setNewOpeningTimes(openingTimes);\n }, [openingTimes]);\n\n const validateTime = useCallback(\n (newTime: Time, dayId: string): boolean => {\n if (newTime.start === newTime.end) {\n return false;\n }\n const dayTimes = newOpeningTimes?.find((day) => day.id === dayId)?.times || [];\n\n return dayTimes.every(\n (time) =>\n time.id === newTime.id ||\n newTime.end <= time.start ||\n newTime.start >= time.end,\n );\n },\n [newOpeningTimes],\n );\n\n const handleCheckBoxChange = useCallback(\n (id: string) => {\n setNewOpeningTimes((prevOpeningTimes) => {\n const updatedOpeningTimes = (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n return { ...openingTime, isDisabled: !openingTime.isDisabled };\n }\n return openingTime;\n });\n\n if (typeof onChange === 'function') {\n onChange({\n enabledDays: updatedOpeningTimes\n .filter((item) => !item.isDisabled)\n .map((item) => item.id),\n });\n }\n\n return updatedOpeningTimes;\n });\n },\n [onChange],\n );\n\n const handleChange = useCallback(\n (newTime: Time, id: string) => {\n const isValid = shouldNotValidate || validateTime(newTime, id);\n if (!isValid) {\n return;\n }\n\n setNewOpeningTimes((prevOpeningTimes) => {\n const updatedOpeningTimes = (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n const newTimes = openingTime.times.map((time) => {\n if (time.id === newTime.id) {\n return newTime;\n }\n return time;\n });\n return { ...openingTime, times: newTimes };\n }\n return openingTime;\n });\n\n if (isValid && typeof onChange === 'function') {\n onChange({ time: newTime });\n }\n\n return updatedOpeningTimes;\n });\n },\n [onChange, shouldNotValidate, validateTime],\n );\n\n const handleAdd = useCallback(\n (time: Time, id: string) => {\n const isValid = shouldNotValidate || validateTime(time, id);\n\n if (isValid && typeof onTimeAdd === 'function') {\n onTimeAdd({ time, dayId: id });\n }\n\n setNewOpeningTimes((prevOpeningTimes) =>\n (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n return { ...openingTime, times: [...openingTime.times, time] };\n }\n return openingTime;\n }),\n );\n },\n [onTimeAdd, shouldNotValidate, validateTime],\n );\n\n const handleUpdateInvalidIds = useCallback(\n (openingTimeId: string, invalidTimeIds: string[]) => {\n setInvalidOpeningTimes((prevState) => {\n const updatedInvalidOpeningTimes = prevState.map((invalidOpeningTime) => {\n if (invalidOpeningTime.openingTimeId === openingTimeId) {\n return {\n openingTimeId,\n invalidTimeIds,\n };\n }\n return invalidOpeningTime;\n });\n\n if (\n !updatedInvalidOpeningTimes.some(\n ({ openingTimeId: updatedInvalidOpeningId }) =>\n updatedInvalidOpeningId === openingTimeId,\n ) &&\n invalidTimeIds.length > 0\n ) {\n updatedInvalidOpeningTimes.push({ openingTimeId, invalidTimeIds });\n }\n\n return updatedInvalidOpeningTimes.filter(\n (updatedInvalidOpeningTime) =>\n updatedInvalidOpeningTime.invalidTimeIds.length !== 0,\n );\n });\n },\n [],\n );\n\n const handleRemove = useCallback(\n (id: string) => {\n setNewOpeningTimes((prevOpeningTimes) =>\n (prevOpeningTimes ?? []).map((openingTime) => {\n const newTimes = openingTime.times.filter((time) => time.id !== id);\n\n return { ...openingTime, times: newTimes };\n }),\n );\n\n if (typeof onTimeRemove === 'function') {\n onTimeRemove(id);\n }\n },\n [onTimeRemove],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!newOpeningTimes) {\n return items;\n }\n\n newOpeningTimes.forEach(({ times, id, weekdayId, isDisabled }) => {\n const weekday = weekdays.find((weekDay) => weekDay.id === weekdayId)?.name;\n\n if (!weekday) {\n return;\n }\n\n items.push(\n <StyledOpeningTimesWrapper key={`openingTimes__${id}`}>\n {editMode ? (\n <Checkbox isChecked={!isDisabled} onChange={() => handleCheckBoxChange(id)}>\n {weekday}\n </Checkbox>\n ) : (\n <StyledOpeningTimesWeekDay>{weekday}</StyledOpeningTimesWeekDay>\n )}\n <OpeningInputs\n closedText={closedText}\n currentDayId={currentDayId}\n id={id}\n times={times}\n isDisabled={isDisabled}\n onInvalid={handleUpdateInvalidIds}\n onChange={(newTime) => handleChange(newTime, id)}\n onRemove={handleRemove}\n onAdd={handleAdd}\n editMode={editMode}\n />\n </StyledOpeningTimesWrapper>,\n );\n });\n\n return items;\n }, [\n closedText,\n currentDayId,\n editMode,\n handleAdd,\n handleChange,\n handleCheckBoxChange,\n handleRemove,\n handleUpdateInvalidIds,\n newOpeningTimes,\n weekdays,\n ]);\n\n const size = useElementSize(ref);\n\n const hidePopup = useCallback(() => {\n setIsPopupOpen(false);\n popupRef.current?.hide();\n }, []);\n\n const showPopup = useCallback(() => {\n setIsPopupOpen(true);\n popupRef.current?.show();\n }, []);\n\n const displayedContent = useMemo(() => {\n if (!currentDayId || editMode) {\n return content;\n }\n\n const singleDay = newOpeningTimes?.find(({ id }) => id === currentDayId);\n\n if (!singleDay) {\n return content;\n }\n\n const { id, times, weekdayId } = singleDay;\n\n const weekday = weekdays.find((weekDay) => weekDay.id === weekdayId)?.name;\n\n return (\n <StyledOpeningTimesWrapper\n key={`currentDay__${currentDayId}`}\n style={size && { width: size.width }}\n onMouseEnter={showPopup}\n onMouseLeave={hidePopup}\n onClick={() => (isPopupOpen ? hidePopup() : showPopup())}\n >\n <Popup\n onShow={() => setIsPopupOpen(true)}\n onHide={() => setIsPopupOpen(false)}\n ref={popupRef}\n content={\n <StyledOpeningTimesTooltipContent key=\"opening-time-tooltip\">\n {content}\n </StyledOpeningTimesTooltipContent>\n }\n >\n <StyledOpeningTimesWeekDay>{weekday}</StyledOpeningTimesWeekDay>\n </Popup>\n <OpeningInputs\n closedText={closedText}\n currentDayId={currentDayId}\n onInvalid={handleUpdateInvalidIds}\n id={id}\n times={times}\n editMode={editMode}\n />\n </StyledOpeningTimesWrapper>\n );\n }, [\n currentDayId,\n editMode,\n newOpeningTimes,\n weekdays,\n size,\n showPopup,\n hidePopup,\n content,\n closedText,\n handleUpdateInvalidIds,\n isPopupOpen,\n ]);\n\n const shouldShowHint = useMemo(\n () => invalidOpeningTimes.length > 0,\n [invalidOpeningTimes.length],\n );\n\n return useMemo(\n () => (\n <StyledOpeningTimes ref={ref}>\n {shouldShowHint && hintText && hintTextPosition === HintTextPosition.Top && (\n <HintText text={hintText} />\n )}\n {displayedContent}\n {shouldShowHint && hintText && hintTextPosition === HintTextPosition.Bottom && (\n <HintText text={hintText} />\n )}\n </StyledOpeningTimes>\n ),\n [displayedContent, hintText, hintTextPosition, shouldShowHint],\n );\n};\n\nOpeningTimes.displayName = 'OpeningTimes';\n\nexport default OpeningTimes;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"openingTimes.js","names":["OpeningTimesButtonType","HintTextPosition"],"sources":["../../../src/types/openingTimes.ts"],"sourcesContent":["export interface Weekday {\n name: string;\n id: number;\n}\n\nexport interface Time {\n id: string;\n start: string;\n end: string;\n}\n\nexport interface OpeningTime {\n weekdayId: Weekday['id'];\n id: string;\n isDisabled?: boolean;\n times: Time[];\n}\n\nexport interface OnTimeAdd {\n dayId: OpeningTime['id'];\n time: Time;\n invalidOpeningTimes: { openingTimeId: string; invalidTimeIds: string[] }[]\n}\n\nexport interface OnChange {\n enabledDays?: OpeningTime['id'][];\n time?: Time;\n}\n\nexport enum OpeningTimesButtonType {\n NONE,\n ADD,\n REMOVE,\n}\n\nexport enum HintTextPosition {\n Top,\n Bottom,\n}\n"],"mappings":"AA6BA,WAAYA,sBAAsB,0BAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;AAMlC,WAAYC,gBAAgB,0BAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"openingTimes.js","names":["OpeningTimesButtonType","HintTextPosition"],"sources":["../../../src/types/openingTimes.ts"],"sourcesContent":["export interface Weekday {\n name: string;\n id: number;\n}\n\nexport interface Time {\n id: string;\n start: string;\n end: string;\n}\n\nexport interface OpeningTime {\n weekdayId: Weekday['id'];\n id: string;\n isDisabled?: boolean;\n times: Time[];\n}\n\nexport interface OnTimeAdd {\n dayId: OpeningTime['id'];\n time: Time;\n}\n\nexport interface OnChange {\n enabledDays?: OpeningTime['id'][];\n time?: Time;\n}\n\nexport enum OpeningTimesButtonType {\n NONE,\n ADD,\n REMOVE,\n}\n\nexport enum HintTextPosition {\n Top,\n Bottom,\n}\n"],"mappings":"AA4BA,WAAYA,sBAAsB,0BAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAtBA,sBAAsB,CAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;AAMlC,WAAYC,gBAAgB,0BAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA","ignoreList":[]}
@@ -29,7 +29,7 @@ export type OpeningTimesProps = {
29
29
  /**
30
30
  * Function to be executed when a time is added.
31
31
  */
32
- onTimeAdd?: ({ time, dayId, invalidOpeningTimes }: OnTimeAdd) => void;
32
+ onTimeAdd?: ({ time, dayId }: OnTimeAdd) => void;
33
33
  /**
34
34
  * Function to be executed when a time is removed.
35
35
  */
@@ -49,6 +49,10 @@ export type OpeningTimesProps = {
49
49
  * The weekdays that should be displayed.
50
50
  */
51
51
  weekdays: Weekday[];
52
+ /**
53
+ * When set to true, events are triggered without validation.
54
+ */
55
+ shouldNotValidate?: boolean;
52
56
  };
53
57
  declare const OpeningTimes: FC<OpeningTimesProps>;
54
58
  export default OpeningTimes;
@@ -16,10 +16,6 @@ export interface OpeningTime {
16
16
  export interface OnTimeAdd {
17
17
  dayId: OpeningTime['id'];
18
18
  time: Time;
19
- invalidOpeningTimes: {
20
- openingTimeId: string;
21
- invalidTimeIds: string[];
22
- }[];
23
19
  }
24
20
  export interface OnChange {
25
21
  enabledDays?: OpeningTime['id'][];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/date",
3
- "version": "5.0.0-beta.869",
3
+ "version": "5.0.0-beta.870",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -83,5 +83,5 @@
83
83
  "publishConfig": {
84
84
  "access": "public"
85
85
  },
86
- "gitHead": "3df329643210c5cad39d37b4d5c30d825ce038d3"
86
+ "gitHead": "717773d66e4e5e43f65c2434308f70e910fb439d"
87
87
  }