@chayns-components/date 5.0.0-beta.461 → 5.0.0-beta.468

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.
@@ -1,6 +1,14 @@
1
1
  import { FC } from 'react';
2
2
  import type { OnChange, OnTimeAdd, OpeningTime, Weekday } from '../../types/openingTimes';
3
3
  export type OpeningTimesProps = {
4
+ /**
5
+ * The text that should be displayed when a day is closed.
6
+ */
7
+ closedText?: string;
8
+ /**
9
+ * Whether the opening times can be edited.
10
+ */
11
+ editMode?: boolean;
4
12
  /**
5
13
  * Function to be executed when a time is changed or a day is enabled/disabled.
6
14
  * @param openingTimes
@@ -1,9 +1,11 @@
1
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
2
1
  import { Checkbox } from '@chayns-components/core';
2
+ import React, { useCallback, useEffect, useMemo, useState } from 'react';
3
3
  import OpeningInputs from './opening-inputs/OpeningInputs';
4
- import { StyledOpeningTimes, StyledOpeningTimesWrapper } from './OpeningTimes.styles';
4
+ import { StyledOpeningTimes, StyledOpeningTimesWeekDay, StyledOpeningTimesWrapper } from './OpeningTimes.styles';
5
5
  const OpeningTimes = _ref => {
6
6
  let {
7
+ closedText = 'closed',
8
+ editMode = false,
7
9
  openingTimes,
8
10
  weekdays,
9
11
  onChange,
@@ -105,20 +107,22 @@ const OpeningTimes = _ref => {
105
107
  }
106
108
  items.push( /*#__PURE__*/React.createElement(StyledOpeningTimesWrapper, {
107
109
  key: `openingTimes__${id}`
108
- }, /*#__PURE__*/React.createElement(Checkbox, {
110
+ }, editMode ? /*#__PURE__*/React.createElement(Checkbox, {
109
111
  isChecked: !isDisabled,
110
112
  onChange: () => handleCheckBoxChange(id)
111
- }, weekday), /*#__PURE__*/React.createElement(OpeningInputs, {
113
+ }, weekday) : /*#__PURE__*/React.createElement(StyledOpeningTimesWeekDay, null, weekday), /*#__PURE__*/React.createElement(OpeningInputs, {
114
+ closedText: closedText,
112
115
  id: id,
113
116
  times: times,
114
117
  isDisabled: isDisabled,
115
118
  onChange: newTime => handleChange(newTime, id),
116
119
  onRemove: handleRemove,
117
- onAdd: handleAdd
120
+ onAdd: handleAdd,
121
+ editMode: editMode
118
122
  })));
119
123
  });
120
124
  return items;
121
- }, [handleAdd, handleChange, handleCheckBoxChange, handleRemove, newOpeningTimes, weekdays]);
125
+ }, [closedText, editMode, handleAdd, handleChange, handleCheckBoxChange, handleRemove, newOpeningTimes, weekdays]);
122
126
  return useMemo(() => /*#__PURE__*/React.createElement(StyledOpeningTimes, null, content), [content]);
123
127
  };
124
128
  OpeningTimes.displayName = 'OpeningTimes';
@@ -1 +1 @@
1
- {"version":3,"file":"OpeningTimes.js","names":["React","useCallback","useEffect","useMemo","useState","Checkbox","OpeningInputs","StyledOpeningTimes","StyledOpeningTimesWrapper","OpeningTimes","_ref","openingTimes","weekdays","onChange","onTimeAdd","onTimeRemove","newOpeningTimes","setNewOpeningTimes","handleCheckBoxChange","id","prevOpeningTimes","updatedOpeningTimes","map","openingTime","isDisabled","enabledDays","filter","item","handleChange","newTime","newTimes","times","time","handleAdd","dayId","handleRemove","content","items","forEach","_ref2","weekdayId","weekday","find","weekDay","name","push","createElement","key","isChecked","onRemove","onAdd","displayName"],"sources":["../../../src/components/opening-times/OpeningTimes.tsx"],"sourcesContent":["import React, { FC, useCallback, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport type { OnChange, OnTimeAdd, OpeningTime, Time, Weekday } from '../../types/openingTimes';\nimport { Checkbox } from '@chayns-components/core';\nimport OpeningInputs from './opening-inputs/OpeningInputs';\nimport { StyledOpeningTimes, StyledOpeningTimesWrapper } from './OpeningTimes.styles';\n\nexport type OpeningTimesProps = {\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 * 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 openingTimes,\n weekdays,\n onChange,\n onTimeAdd,\n onTimeRemove,\n}) => {\n const [newOpeningTimes, setNewOpeningTimes] = useState<OpeningTime[]>();\n\n useEffect(() => {\n setNewOpeningTimes(openingTimes);\n }, [openingTimes]);\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({ dayId: id, time });\n }\n },\n [onTimeAdd],\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 <Checkbox isChecked={!isDisabled} onChange={() => handleCheckBoxChange(id)}>\n {weekday}\n </Checkbox>\n <OpeningInputs\n id={id}\n times={times}\n isDisabled={isDisabled}\n onChange={(newTime) => handleChange(newTime, id)}\n onRemove={handleRemove}\n onAdd={handleAdd}\n />\n </StyledOpeningTimesWrapper>,\n );\n });\n\n return items;\n }, [handleAdd, handleChange, handleCheckBoxChange, handleRemove, newOpeningTimes, weekdays]);\n\n return useMemo(() => <StyledOpeningTimes>{content}</StyledOpeningTimes>, [content]);\n};\n\nOpeningTimes.displayName = 'OpeningTimes';\n\nexport default OpeningTimes;\n"],"mappings":"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"}
1
+ {"version":3,"file":"OpeningTimes.js","names":["Checkbox","React","useCallback","useEffect","useMemo","useState","OpeningInputs","StyledOpeningTimes","StyledOpeningTimesWeekDay","StyledOpeningTimesWrapper","OpeningTimes","_ref","closedText","editMode","openingTimes","weekdays","onChange","onTimeAdd","onTimeRemove","newOpeningTimes","setNewOpeningTimes","handleCheckBoxChange","id","prevOpeningTimes","updatedOpeningTimes","map","openingTime","isDisabled","enabledDays","filter","item","handleChange","newTime","newTimes","times","time","handleAdd","dayId","handleRemove","content","items","forEach","_ref2","weekdayId","weekday","find","weekDay","name","push","createElement","key","isChecked","onRemove","onAdd","displayName"],"sources":["../../../src/components/opening-times/OpeningTimes.tsx"],"sourcesContent":["import { Checkbox } from '@chayns-components/core';\nimport React, { FC, useCallback, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport type { OnChange, OnTimeAdd, OpeningTime, Time, Weekday } from '../../types/openingTimes';\nimport OpeningInputs from './opening-inputs/OpeningInputs';\nimport {\n StyledOpeningTimes,\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 * Whether the opening times can be edited.\n */\n editMode?: boolean;\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 * 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 editMode = false,\n openingTimes,\n weekdays,\n onChange,\n onTimeAdd,\n onTimeRemove,\n}) => {\n const [newOpeningTimes, setNewOpeningTimes] = useState<OpeningTime[]>();\n\n useEffect(() => {\n setNewOpeningTimes(openingTimes);\n }, [openingTimes]);\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({ dayId: id, time });\n }\n },\n [onTimeAdd],\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 id={id}\n times={times}\n isDisabled={isDisabled}\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 editMode,\n handleAdd,\n handleChange,\n handleCheckBoxChange,\n handleRemove,\n newOpeningTimes,\n weekdays,\n ]);\n\n return useMemo(() => <StyledOpeningTimes>{content}</StyledOpeningTimes>, [content]);\n};\n\nOpeningTimes.displayName = 'OpeningTimes';\n\nexport default OpeningTimes;\n"],"mappings":"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"}
@@ -5,4 +5,7 @@ type StyledSliderButtonProps = WithTheme<{
5
5
  }>;
6
6
  export declare const StyledOpeningTimes: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, StyledSliderButtonProps>>;
7
7
  export declare const StyledOpeningTimesWrapper: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
8
+ export declare const StyledOpeningTimesWeekDay: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
9
+ theme: import("@chayns-components/core/lib/components/color-scheme-provider/ColorSchemeProvider").Theme;
10
+ }>>;
8
11
  export {};
@@ -9,4 +9,12 @@ export const StyledOpeningTimesWrapper = styled.div`
9
9
  align-items: baseline;
10
10
  justify-content: space-between;
11
11
  `;
12
+ export const StyledOpeningTimesWeekDay = styled.div`
13
+ color: ${_ref => {
14
+ let {
15
+ theme
16
+ } = _ref;
17
+ return theme.text;
18
+ }};
19
+ `;
12
20
  //# sourceMappingURL=OpeningTimes.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpeningTimes.styles.js","names":["styled","StyledOpeningTimes","div","StyledOpeningTimesWrapper"],"sources":["../../../src/components/opening-times/OpeningTimes.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport styled from 'styled-components';\n\ntype StyledSliderButtonProps = WithTheme<{ $isDisabled?: boolean }>;\n\nexport const StyledOpeningTimes = styled.div<StyledSliderButtonProps>`\n display: flex;\n flex-direction: column;\n gap: 8px;\n`;\n\nexport const StyledOpeningTimesWrapper = styled.div`\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n`;\n"],"mappings":"AACA,OAAOA,MAAM,MAAM,mBAAmB;AAItC,OAAO,MAAMC,kBAAkB,GAAGD,MAAM,CAACE,GAA6B;AACtE;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMC,yBAAyB,GAAGH,MAAM,CAACE,GAAI;AACpD;AACA;AACA;AACA,CAAC"}
1
+ {"version":3,"file":"OpeningTimes.styles.js","names":["styled","StyledOpeningTimes","div","StyledOpeningTimesWrapper","StyledOpeningTimesWeekDay","_ref","theme","text"],"sources":["../../../src/components/opening-times/OpeningTimes.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport styled from 'styled-components';\n\ntype StyledSliderButtonProps = WithTheme<{ $isDisabled?: boolean }>;\n\nexport const StyledOpeningTimes = styled.div<StyledSliderButtonProps>`\n display: flex;\n flex-direction: column;\n gap: 8px;\n`;\n\nexport const StyledOpeningTimesWrapper = styled.div`\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n`;\n\ntype StyledOpeningTimesWeekDayProps = WithTheme<unknown>;\n\nexport const StyledOpeningTimesWeekDay = styled.div<StyledOpeningTimesWeekDayProps>`\n color: ${({ theme }: StyledOpeningTimesWeekDayProps) => theme.text};\n`;\n"],"mappings":"AACA,OAAOA,MAAM,MAAM,mBAAmB;AAItC,OAAO,MAAMC,kBAAkB,GAAGD,MAAM,CAACE,GAA6B;AACtE;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMC,yBAAyB,GAAGH,MAAM,CAACE,GAAI;AACpD;AACA;AACA;AACA,CAAC;AAID,OAAO,MAAME,yBAAyB,GAAGJ,MAAM,CAACE,GAAoC;AACpF,aAAaG,IAAA;EAAA,IAAC;IAAEC;EAAsC,CAAC,GAAAD,IAAA;EAAA,OAAKC,KAAK,CAACC,IAAI;AAAA,CAAC;AACvE,CAAC"}
@@ -7,6 +7,8 @@ export type OpeningInputsProps = {
7
7
  onAdd: (time: Time, id: string) => void;
8
8
  onRemove: (id: Time['id']) => void;
9
9
  id: string;
10
+ editMode: boolean;
11
+ closedText: string;
10
12
  };
11
13
  declare const OpeningInputs: FC<OpeningInputsProps>;
12
14
  export default OpeningInputs;
@@ -3,7 +3,7 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react';
3
3
  import { v4 as uuidV4 } from 'uuid';
4
4
  import { OpeningTimesButtonType } from '../../../types/openingTimes';
5
5
  import OpeningInput from './opening-input/OpeningInput';
6
- import { StyledOpeningInputs } from './OpeningInputs.styles';
6
+ import { StyledOpeningInputPreview, StyledOpeningInputs } from './OpeningInputs.styles';
7
7
  const OpeningInputs = _ref => {
8
8
  let {
9
9
  times,
@@ -11,7 +11,9 @@ const OpeningInputs = _ref => {
11
11
  onRemove,
12
12
  onAdd,
13
13
  id,
14
- onChange
14
+ onChange,
15
+ editMode,
16
+ closedText
15
17
  } = _ref;
16
18
  const [newTimes, setNewTimes] = useState();
17
19
  useEffect(() => {
@@ -53,6 +55,11 @@ const OpeningInputs = _ref => {
53
55
  start,
54
56
  id: timeId
55
57
  } = _ref2;
58
+ if (!editMode) {
59
+ const text = isDisabled ? closedText : `${start} - ${end}`;
60
+ items.push( /*#__PURE__*/React.createElement(StyledOpeningInputPreview, null, text));
61
+ return;
62
+ }
56
63
  if (index > 1) {
57
64
  return;
58
65
  }
@@ -75,7 +82,7 @@ const OpeningInputs = _ref => {
75
82
  }));
76
83
  });
77
84
  return items;
78
- }, [handleAdd, handleChange, handleRemove, id, isDisabled, newTimes, times.length]);
85
+ }, [closedText, editMode, handleAdd, handleChange, handleRemove, id, isDisabled, newTimes, times.length]);
79
86
  return useMemo(() => /*#__PURE__*/React.createElement(StyledOpeningInputs, null, /*#__PURE__*/React.createElement(AnimatePresence, {
80
87
  initial: false
81
88
  }, content)), [content]);
@@ -1 +1 @@
1
- {"version":3,"file":"OpeningInputs.js","names":["AnimatePresence","React","useCallback","useEffect","useMemo","useState","v4","uuidV4","OpeningTimesButtonType","OpeningInput","StyledOpeningInputs","OpeningInputs","_ref","times","isDisabled","onRemove","onAdd","id","onChange","newTimes","setNewTimes","handleAdd","defaultTime","start","end","prevState","handleRemove","timeId","filter","time","handleChange","newTime","updatedTimes","map","content","items","forEach","_ref2","index","buttonType","NONE","length","ADD","REMOVE","push","createElement","key","initial","displayName"],"sources":["../../../../src/components/opening-times/opening-inputs/OpeningInputs.tsx"],"sourcesContent":["import { AnimatePresence } from 'framer-motion';\nimport React, { FC, useCallback, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\nimport { OpeningTimesButtonType, type Time } from '../../../types/openingTimes';\nimport OpeningInput from './opening-input/OpeningInput';\nimport { StyledOpeningInputs } from './OpeningInputs.styles';\n\nexport type OpeningInputsProps = {\n times: Time[];\n isDisabled?: boolean;\n onChange: (time: Time) => void;\n onAdd: (time: Time, id: string) => void;\n onRemove: (id: Time['id']) => void;\n id: string;\n};\n\nconst OpeningInputs: FC<OpeningInputsProps> = ({\n times,\n isDisabled,\n onRemove,\n onAdd,\n id,\n onChange,\n}) => {\n const [newTimes, setNewTimes] = useState<Time[]>();\n\n useEffect(() => {\n setNewTimes(times);\n }, [times]);\n\n const handleAdd = useCallback(() => {\n const defaultTime: Time = { start: '08:00', end: '18:00', id: uuidV4() };\n\n setNewTimes((prevState) => (prevState ? [...prevState, defaultTime] : [defaultTime]));\n\n onAdd(defaultTime, id);\n }, [id, onAdd]);\n\n const handleRemove = useCallback(\n (timeId: string) => {\n setNewTimes((prevState) => (prevState ?? []).filter((time) => time.id !== timeId));\n\n onRemove(timeId);\n },\n [onRemove],\n );\n\n const handleChange = useCallback(\n (newTime: Time) => {\n setNewTimes((prevState) => {\n const updatedTimes = (prevState ?? []).map((time) => {\n if (time.id === newTime.id) {\n return newTime;\n }\n return time;\n });\n\n onChange(newTime);\n\n return updatedTimes;\n });\n },\n [onChange],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!newTimes) {\n return items;\n }\n\n newTimes.forEach(({ end, start, id: timeId }, index) => {\n if (index > 1) {\n return;\n }\n\n let buttonType = OpeningTimesButtonType.NONE;\n\n if (index === 0 && times.length === 1 && !isDisabled) {\n buttonType = OpeningTimesButtonType.ADD;\n } else if (index === 1 && !isDisabled) {\n buttonType = OpeningTimesButtonType.REMOVE;\n }\n\n items.push(\n <OpeningInput\n key={`opening-times-input__${id}.${timeId}`}\n start={start}\n id={timeId}\n end={end}\n isDisabled={isDisabled}\n buttonType={buttonType}\n onAdd={handleAdd}\n onChange={(time) => handleChange(time)}\n onRemove={() => handleRemove(timeId)}\n />,\n );\n });\n\n return items;\n }, [handleAdd, handleChange, handleRemove, id, isDisabled, newTimes, times.length]);\n\n return useMemo(\n () => (\n <StyledOpeningInputs>\n <AnimatePresence initial={false}>{content}</AnimatePresence>\n </StyledOpeningInputs>\n ),\n [content],\n );\n};\n\nOpeningInputs.displayName = 'OpeningInputs';\n\nexport default OpeningInputs;\n"],"mappings":"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"}
1
+ {"version":3,"file":"OpeningInputs.js","names":["AnimatePresence","React","useCallback","useEffect","useMemo","useState","v4","uuidV4","OpeningTimesButtonType","OpeningInput","StyledOpeningInputPreview","StyledOpeningInputs","OpeningInputs","_ref","times","isDisabled","onRemove","onAdd","id","onChange","editMode","closedText","newTimes","setNewTimes","handleAdd","defaultTime","start","end","prevState","handleRemove","timeId","filter","time","handleChange","newTime","updatedTimes","map","content","items","forEach","_ref2","index","text","push","createElement","buttonType","NONE","length","ADD","REMOVE","key","initial","displayName"],"sources":["../../../../src/components/opening-times/opening-inputs/OpeningInputs.tsx"],"sourcesContent":["import { AnimatePresence } from 'framer-motion';\nimport React, { FC, useCallback, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\nimport { OpeningTimesButtonType, type Time } from '../../../types/openingTimes';\nimport OpeningInput from './opening-input/OpeningInput';\nimport { StyledOpeningInputPreview, StyledOpeningInputs } from './OpeningInputs.styles';\n\nexport type OpeningInputsProps = {\n times: Time[];\n isDisabled?: boolean;\n onChange: (time: Time) => void;\n onAdd: (time: Time, id: string) => void;\n onRemove: (id: Time['id']) => void;\n id: string;\n editMode: boolean;\n closedText: string;\n};\n\nconst OpeningInputs: FC<OpeningInputsProps> = ({\n times,\n isDisabled,\n onRemove,\n onAdd,\n id,\n onChange,\n editMode,\n closedText,\n}) => {\n const [newTimes, setNewTimes] = useState<Time[]>();\n\n useEffect(() => {\n setNewTimes(times);\n }, [times]);\n\n const handleAdd = useCallback(() => {\n const defaultTime: Time = { start: '08:00', end: '18:00', id: uuidV4() };\n\n setNewTimes((prevState) => (prevState ? [...prevState, defaultTime] : [defaultTime]));\n\n onAdd(defaultTime, id);\n }, [id, onAdd]);\n\n const handleRemove = useCallback(\n (timeId: string) => {\n setNewTimes((prevState) => (prevState ?? []).filter((time) => time.id !== timeId));\n\n onRemove(timeId);\n },\n [onRemove],\n );\n\n const handleChange = useCallback(\n (newTime: Time) => {\n setNewTimes((prevState) => {\n const updatedTimes = (prevState ?? []).map((time) => {\n if (time.id === newTime.id) {\n return newTime;\n }\n return time;\n });\n\n onChange(newTime);\n\n return updatedTimes;\n });\n },\n [onChange],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!newTimes) {\n return items;\n }\n\n newTimes.forEach(({ end, start, id: timeId }, index) => {\n if (!editMode) {\n const text = isDisabled ? closedText : `${start} - ${end}`;\n\n items.push(<StyledOpeningInputPreview>{text}</StyledOpeningInputPreview>);\n\n return;\n }\n\n if (index > 1) {\n return;\n }\n\n let buttonType = OpeningTimesButtonType.NONE;\n\n if (index === 0 && times.length === 1 && !isDisabled) {\n buttonType = OpeningTimesButtonType.ADD;\n } else if (index === 1 && !isDisabled) {\n buttonType = OpeningTimesButtonType.REMOVE;\n }\n\n items.push(\n <OpeningInput\n key={`opening-times-input__${id}.${timeId}`}\n start={start}\n id={timeId}\n end={end}\n isDisabled={isDisabled}\n buttonType={buttonType}\n onAdd={handleAdd}\n onChange={(time) => handleChange(time)}\n onRemove={() => handleRemove(timeId)}\n />,\n );\n });\n\n return items;\n }, [\n closedText,\n editMode,\n handleAdd,\n handleChange,\n handleRemove,\n id,\n isDisabled,\n newTimes,\n times.length,\n ]);\n\n return useMemo(\n () => (\n <StyledOpeningInputs>\n <AnimatePresence initial={false}>{content}</AnimatePresence>\n </StyledOpeningInputs>\n ),\n [content],\n );\n};\n\nOpeningInputs.displayName = 'OpeningInputs';\n\nexport default OpeningInputs;\n"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  export declare const StyledOpeningInputs: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
3
+ export declare const StyledOpeningInputPreview: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
@@ -3,4 +3,5 @@ export const StyledOpeningInputs = styled.div`
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  `;
6
+ export const StyledOpeningInputPreview = styled.div``;
6
7
  //# sourceMappingURL=OpeningInputs.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpeningInputs.styles.js","names":["styled","StyledOpeningInputs","div"],"sources":["../../../../src/components/opening-times/opening-inputs/OpeningInputs.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledOpeningInputs = styled.div`\n display: flex;\n flex-direction: column;\n`;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,mBAAmB,GAAGD,MAAM,CAACE,GAAI;AAC9C;AACA;AACA,CAAC"}
1
+ {"version":3,"file":"OpeningInputs.styles.js","names":["styled","StyledOpeningInputs","div","StyledOpeningInputPreview"],"sources":["../../../../src/components/opening-times/opening-inputs/OpeningInputs.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledOpeningInputs = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const StyledOpeningInputPreview = styled.div``;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,mBAAmB,GAAGD,MAAM,CAACE,GAAI;AAC9C;AACA;AACA,CAAC;AAED,OAAO,MAAMC,yBAAyB,GAAGH,MAAM,CAACE,GAAI,EAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/date",
3
- "version": "5.0.0-beta.461",
3
+ "version": "5.0.0-beta.468",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -57,8 +57,9 @@
57
57
  "typescript": "^5.3.3"
58
58
  },
59
59
  "dependencies": {
60
- "@chayns-components/core": "^5.0.0-beta.461",
61
- "date-fns": "^2.30.0"
60
+ "@chayns-components/core": "^5.0.0-beta.468",
61
+ "date-fns": "^2.30.0",
62
+ "uuid": "^9.0.1"
62
63
  },
63
64
  "peerDependencies": {
64
65
  "chayns-api": ">=1.0.50",
@@ -70,5 +71,5 @@
70
71
  "publishConfig": {
71
72
  "access": "public"
72
73
  },
73
- "gitHead": "a6094509dd09802c0d42f6902968556dc42b2760"
74
+ "gitHead": "decd1b4f580c2401d79d1a580689f5e36aa96fcb"
74
75
  }