@chayns-components/date 5.0.0-beta.863 → 5.0.0-beta.866
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.
|
@@ -84,6 +84,23 @@ const OpeningTimes = ({
|
|
|
84
84
|
});
|
|
85
85
|
}, [onChange]);
|
|
86
86
|
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') {
|
|
98
|
+
onTimeAdd({
|
|
99
|
+
invalidOpeningTimes: updatedInvalidOpeningTimes,
|
|
100
|
+
dayId: id,
|
|
101
|
+
time
|
|
102
|
+
});
|
|
103
|
+
}
|
|
87
104
|
setNewOpeningTimes(prevOpeningTimes => (prevOpeningTimes ?? []).map(openingTime => {
|
|
88
105
|
if (openingTime.id === id) {
|
|
89
106
|
return {
|
|
@@ -93,14 +110,7 @@ const OpeningTimes = ({
|
|
|
93
110
|
}
|
|
94
111
|
return openingTime;
|
|
95
112
|
}));
|
|
96
|
-
|
|
97
|
-
onTimeAdd({
|
|
98
|
-
invalidOpeningTimes,
|
|
99
|
-
dayId: id,
|
|
100
|
-
time
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}, [invalidOpeningTimes, onTimeAdd]);
|
|
113
|
+
}, [newOpeningTimes, onTimeAdd]);
|
|
104
114
|
const handleUpdateInvalidIds = (0, _react.useCallback)((openingTimeId, invalidTimeIds) => {
|
|
105
115
|
setInvalidOpeningTimes(prevState => {
|
|
106
116
|
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","dayId","handleUpdateInvalidIds","openingTimeId","invalidTimeIds","prevState","updatedInvalidOpeningTimes","invalidOpeningTime","some","updatedInvalidOpeningId","length","push","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 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 if (typeof onTimeAdd === 'function') {\n onTimeAdd({ invalidOpeningTimes, dayId: id, time });\n }\n },\n [invalidOpeningTimes, 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","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":[]}
|
|
@@ -76,6 +76,23 @@ const OpeningTimes = _ref => {
|
|
|
76
76
|
});
|
|
77
77
|
}, [onChange]);
|
|
78
78
|
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') {
|
|
90
|
+
onTimeAdd({
|
|
91
|
+
invalidOpeningTimes: updatedInvalidOpeningTimes,
|
|
92
|
+
dayId: id,
|
|
93
|
+
time
|
|
94
|
+
});
|
|
95
|
+
}
|
|
79
96
|
setNewOpeningTimes(prevOpeningTimes => (prevOpeningTimes ?? []).map(openingTime => {
|
|
80
97
|
if (openingTime.id === id) {
|
|
81
98
|
return {
|
|
@@ -85,14 +102,7 @@ const OpeningTimes = _ref => {
|
|
|
85
102
|
}
|
|
86
103
|
return openingTime;
|
|
87
104
|
}));
|
|
88
|
-
|
|
89
|
-
onTimeAdd({
|
|
90
|
-
invalidOpeningTimes,
|
|
91
|
-
dayId: id,
|
|
92
|
-
time
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
}, [invalidOpeningTimes, onTimeAdd]);
|
|
105
|
+
}, [newOpeningTimes, onTimeAdd]);
|
|
96
106
|
const handleUpdateInvalidIds = useCallback((openingTimeId, invalidTimeIds) => {
|
|
97
107
|
setInvalidOpeningTimes(prevState => {
|
|
98
108
|
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","dayId","handleUpdateInvalidIds","openingTimeId","invalidTimeIds","prevState","updatedInvalidOpeningTimes","invalidOpeningTime","some","_ref2","updatedInvalidOpeningId","length","push","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 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 if (typeof onTimeAdd === 'function') {\n onTimeAdd({ invalidOpeningTimes, dayId: id, time });\n }\n },\n [invalidOpeningTimes, 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","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":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chayns-components/date",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.866",
|
|
4
4
|
"description": "A set of beautiful React components for developing your own applications with chayns.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"browserslist": [
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"typescript": "^5.6.3"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@chayns-components/core": "^5.0.0-beta.
|
|
72
|
+
"@chayns-components/core": "^5.0.0-beta.866",
|
|
73
73
|
"date-fns": "^3.6.0",
|
|
74
74
|
"uuid": "^10.0.0"
|
|
75
75
|
},
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"publishConfig": {
|
|
84
84
|
"access": "public"
|
|
85
85
|
},
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "15a8b63d6fba67dbce431668094f11476be6b141"
|
|
87
87
|
}
|