@chayns-components/devalue-slider 5.0.0-beta.748 → 5.0.0-beta.753

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.
@@ -21,9 +21,10 @@ const Timer = ({
21
21
  start: devalueTime,
22
22
  end: new Date()
23
23
  }));
24
- const minutesShowValue = (0, _react.useMemo)(() => (distance.minutes || 0).toString(), [distance.minutes]);
25
- const secondsShowValue = (0, _react.useMemo)(() => (distance.seconds || 0).toString(), [distance.seconds]);
24
+ const minutesShowValue = (0, _react.useMemo)(() => Math.max(distance.minutes ?? 0, 0).toString(), [distance.minutes]);
25
+ const secondsShowValue = (0, _react.useMemo)(() => Math.max(distance.seconds ?? 0, 0).toString(), [distance.seconds]);
26
26
  (0, _react.useEffect)(() => {
27
+ refDate.current = new Date();
27
28
  const interval = setInterval(() => {
28
29
  refDate.current = new Date();
29
30
  setDistance((0, _dateFns.intervalToDuration)({
@@ -54,7 +55,7 @@ const Timer = ({
54
55
  text = 'Vor ##MINUTES## Min. ##SECONDS## Sek. (##TIME## Uhr)';
55
56
  }
56
57
  return text.replace('##MINUTES##', minutesShowValue).replace('##SECONDS##', secondsShowValue).replace('##TIME##', (0, _dateFns.format)(devalueTime, 'HH:mm'));
57
- }, [distance, minutesShowValue, secondsShowValue, devalueTime]);
58
+ }, [minutesShowValue, secondsShowValue, devalueTime]);
58
59
  return /*#__PURE__*/_react.default.createElement(_Timer.Container, {
59
60
  $baseFontSize: 17,
60
61
  $borderSize: 2,
@@ -1 +1 @@
1
- {"version":3,"file":"Timer.js","names":["_dateFns","require","_react","_interopRequireWildcard","_chaynsApi","_locale","_Timer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Timer","devalueTime","color","textColor","refDate","useRef","Date","distance","setDistance","useState","intervalToDuration","start","end","minutesShowValue","useMemo","minutes","toString","secondsShowValue","seconds","useEffect","interval","setInterval","current","clearInterval","handlePointerDownCapture","useCallback","vibrate","pattern","iOSFeedbackVibration","label","text","differenceInHours","distanceLabel","formatDistanceToNow","addSuffix","locale","de","charAt","toUpperCase","slice","differenceInMinutes","replace","format","createElement","Container","$baseFontSize","$borderSize","$height","$color","$textColor","$backgroundColor","onPointerDownCapture","_default","exports"],"sources":["../../../../src/components/timer/Timer.tsx"],"sourcesContent":["import {\n differenceInHours,\n differenceInMinutes,\n format,\n formatDistanceToNow,\n intervalToDuration,\n} from 'date-fns';\nimport React, { FunctionComponent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { vibrate } from 'chayns-api';\n\nimport { de } from 'date-fns/locale';\nimport { Container } from './Timer.styles';\n\nexport type TimerProps = {\n color: string;\n devalueTime: Date;\n textColor?: string;\n};\n\nconst Timer: FunctionComponent<TimerProps> = ({ devalueTime, color, textColor = 'white' }) => {\n const refDate = useRef(new Date());\n const [distance, setDistance] = useState(\n intervalToDuration({\n start: devalueTime,\n end: new Date(),\n }),\n );\n const minutesShowValue = useMemo(() => (distance.minutes || 0).toString(), [distance.minutes]);\n const secondsShowValue = useMemo(() => (distance.seconds || 0).toString(), [distance.seconds]);\n\n useEffect(() => {\n const interval = setInterval(() => {\n refDate.current = new Date();\n setDistance(\n intervalToDuration({\n start: devalueTime,\n end: refDate.current,\n }),\n );\n }, 500);\n return () => clearInterval(interval);\n }, [devalueTime]);\n\n const handlePointerDownCapture = useCallback(() => {\n void vibrate({ pattern: [50], iOSFeedbackVibration: 7 });\n }, []);\n\n const label = useMemo(() => {\n let text = 'Vor ##SECONDS## Sek. (##TIME## Uhr)';\n if (differenceInHours(refDate.current, devalueTime) > 0) {\n const distanceLabel =\n formatDistanceToNow(devalueTime, {\n addSuffix: true,\n locale: de,\n })\n .charAt(0)\n .toUpperCase() +\n formatDistanceToNow(devalueTime, { addSuffix: true, locale: de }).slice(1);\n text = `${distanceLabel} (##TIME## Uhr)`;\n } else if (differenceInMinutes(refDate.current, devalueTime) > 0) {\n text = 'Vor ##MINUTES## Min. ##SECONDS## Sek. (##TIME## Uhr)';\n }\n\n return text\n .replace('##MINUTES##', minutesShowValue)\n .replace('##SECONDS##', secondsShowValue)\n .replace('##TIME##', format(devalueTime, 'HH:mm'));\n }, [distance, minutesShowValue, secondsShowValue, devalueTime]);\n\n return (\n <Container\n $baseFontSize={17}\n $borderSize={2}\n $height={50}\n $color={color}\n $textColor={textColor}\n $backgroundColor={color}\n onPointerDownCapture={handlePointerDownCapture}\n >\n {label}\n </Container>\n );\n};\n\nexport default Timer;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Timer.js","names":["_dateFns","require","_react","_interopRequireWildcard","_chaynsApi","_locale","_Timer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Timer","devalueTime","color","textColor","refDate","useRef","Date","distance","setDistance","useState","intervalToDuration","start","end","minutesShowValue","useMemo","Math","max","minutes","toString","secondsShowValue","seconds","useEffect","current","interval","setInterval","clearInterval","handlePointerDownCapture","useCallback","vibrate","pattern","iOSFeedbackVibration","label","text","differenceInHours","distanceLabel","formatDistanceToNow","addSuffix","locale","de","charAt","toUpperCase","slice","differenceInMinutes","replace","format","createElement","Container","$baseFontSize","$borderSize","$height","$color","$textColor","$backgroundColor","onPointerDownCapture","_default","exports"],"sources":["../../../../src/components/timer/Timer.tsx"],"sourcesContent":["import {\n differenceInHours,\n differenceInMinutes,\n format,\n formatDistanceToNow,\n intervalToDuration,\n} from 'date-fns';\nimport React, { FunctionComponent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { vibrate } from 'chayns-api';\n\nimport { de } from 'date-fns/locale';\nimport { Container } from './Timer.styles';\n\nexport type TimerProps = {\n color: string;\n devalueTime: Date;\n textColor?: string;\n};\n\nconst Timer: FunctionComponent<TimerProps> = ({ devalueTime, color, textColor = 'white' }) => {\n const refDate = useRef(new Date());\n const [distance, setDistance] = useState(\n intervalToDuration({\n start: devalueTime,\n end: new Date(),\n }),\n );\n const minutesShowValue = useMemo(\n () => Math.max(distance.minutes ?? 0, 0).toString(),\n [distance.minutes],\n );\n const secondsShowValue = useMemo(\n () => Math.max(distance.seconds ?? 0, 0).toString(),\n [distance.seconds],\n );\n\n useEffect(() => {\n refDate.current = new Date();\n const interval = setInterval(() => {\n refDate.current = new Date();\n setDistance(\n intervalToDuration({\n start: devalueTime,\n end: refDate.current,\n }),\n );\n }, 500);\n return () => clearInterval(interval);\n }, [devalueTime]);\n\n const handlePointerDownCapture = useCallback(() => {\n void vibrate({ pattern: [50], iOSFeedbackVibration: 7 });\n }, []);\n\n const label = useMemo(() => {\n let text = 'Vor ##SECONDS## Sek. (##TIME## Uhr)';\n if (differenceInHours(refDate.current, devalueTime) > 0) {\n const distanceLabel =\n formatDistanceToNow(devalueTime, {\n addSuffix: true,\n locale: de,\n })\n .charAt(0)\n .toUpperCase() +\n formatDistanceToNow(devalueTime, { addSuffix: true, locale: de }).slice(1);\n text = `${distanceLabel} (##TIME## Uhr)`;\n } else if (differenceInMinutes(refDate.current, devalueTime) > 0) {\n text = 'Vor ##MINUTES## Min. ##SECONDS## Sek. (##TIME## Uhr)';\n }\n\n return text\n .replace('##MINUTES##', minutesShowValue)\n .replace('##SECONDS##', secondsShowValue)\n .replace('##TIME##', format(devalueTime, 'HH:mm'));\n }, [minutesShowValue, secondsShowValue, devalueTime]);\n\n return (\n <Container\n $baseFontSize={17}\n $borderSize={2}\n $height={50}\n $color={color}\n $textColor={textColor}\n $backgroundColor={color}\n onPointerDownCapture={handlePointerDownCapture}\n >\n {label}\n </Container>\n );\n};\n\nexport default Timer;\n"],"mappings":"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","ignoreList":[]}
@@ -14,9 +14,10 @@ const Timer = _ref => {
14
14
  start: devalueTime,
15
15
  end: new Date()
16
16
  }));
17
- const minutesShowValue = useMemo(() => (distance.minutes || 0).toString(), [distance.minutes]);
18
- const secondsShowValue = useMemo(() => (distance.seconds || 0).toString(), [distance.seconds]);
17
+ const minutesShowValue = useMemo(() => Math.max(distance.minutes ?? 0, 0).toString(), [distance.minutes]);
18
+ const secondsShowValue = useMemo(() => Math.max(distance.seconds ?? 0, 0).toString(), [distance.seconds]);
19
19
  useEffect(() => {
20
+ refDate.current = new Date();
20
21
  const interval = setInterval(() => {
21
22
  refDate.current = new Date();
22
23
  setDistance(intervalToDuration({
@@ -47,7 +48,7 @@ const Timer = _ref => {
47
48
  text = 'Vor ##MINUTES## Min. ##SECONDS## Sek. (##TIME## Uhr)';
48
49
  }
49
50
  return text.replace('##MINUTES##', minutesShowValue).replace('##SECONDS##', secondsShowValue).replace('##TIME##', format(devalueTime, 'HH:mm'));
50
- }, [distance, minutesShowValue, secondsShowValue, devalueTime]);
51
+ }, [minutesShowValue, secondsShowValue, devalueTime]);
51
52
  return /*#__PURE__*/React.createElement(Container, {
52
53
  $baseFontSize: 17,
53
54
  $borderSize: 2,
@@ -1 +1 @@
1
- {"version":3,"file":"Timer.js","names":["differenceInHours","differenceInMinutes","format","formatDistanceToNow","intervalToDuration","React","useCallback","useEffect","useMemo","useRef","useState","vibrate","de","Container","Timer","_ref","devalueTime","color","textColor","refDate","Date","distance","setDistance","start","end","minutesShowValue","minutes","toString","secondsShowValue","seconds","interval","setInterval","current","clearInterval","handlePointerDownCapture","pattern","iOSFeedbackVibration","label","text","distanceLabel","addSuffix","locale","charAt","toUpperCase","slice","replace","createElement","$baseFontSize","$borderSize","$height","$color","$textColor","$backgroundColor","onPointerDownCapture"],"sources":["../../../../src/components/timer/Timer.tsx"],"sourcesContent":["import {\n differenceInHours,\n differenceInMinutes,\n format,\n formatDistanceToNow,\n intervalToDuration,\n} from 'date-fns';\nimport React, { FunctionComponent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { vibrate } from 'chayns-api';\n\nimport { de } from 'date-fns/locale';\nimport { Container } from './Timer.styles';\n\nexport type TimerProps = {\n color: string;\n devalueTime: Date;\n textColor?: string;\n};\n\nconst Timer: FunctionComponent<TimerProps> = ({ devalueTime, color, textColor = 'white' }) => {\n const refDate = useRef(new Date());\n const [distance, setDistance] = useState(\n intervalToDuration({\n start: devalueTime,\n end: new Date(),\n }),\n );\n const minutesShowValue = useMemo(() => (distance.minutes || 0).toString(), [distance.minutes]);\n const secondsShowValue = useMemo(() => (distance.seconds || 0).toString(), [distance.seconds]);\n\n useEffect(() => {\n const interval = setInterval(() => {\n refDate.current = new Date();\n setDistance(\n intervalToDuration({\n start: devalueTime,\n end: refDate.current,\n }),\n );\n }, 500);\n return () => clearInterval(interval);\n }, [devalueTime]);\n\n const handlePointerDownCapture = useCallback(() => {\n void vibrate({ pattern: [50], iOSFeedbackVibration: 7 });\n }, []);\n\n const label = useMemo(() => {\n let text = 'Vor ##SECONDS## Sek. (##TIME## Uhr)';\n if (differenceInHours(refDate.current, devalueTime) > 0) {\n const distanceLabel =\n formatDistanceToNow(devalueTime, {\n addSuffix: true,\n locale: de,\n })\n .charAt(0)\n .toUpperCase() +\n formatDistanceToNow(devalueTime, { addSuffix: true, locale: de }).slice(1);\n text = `${distanceLabel} (##TIME## Uhr)`;\n } else if (differenceInMinutes(refDate.current, devalueTime) > 0) {\n text = 'Vor ##MINUTES## Min. ##SECONDS## Sek. (##TIME## Uhr)';\n }\n\n return text\n .replace('##MINUTES##', minutesShowValue)\n .replace('##SECONDS##', secondsShowValue)\n .replace('##TIME##', format(devalueTime, 'HH:mm'));\n }, [distance, minutesShowValue, secondsShowValue, devalueTime]);\n\n return (\n <Container\n $baseFontSize={17}\n $borderSize={2}\n $height={50}\n $color={color}\n $textColor={textColor}\n $backgroundColor={color}\n onPointerDownCapture={handlePointerDownCapture}\n >\n {label}\n </Container>\n );\n};\n\nexport default Timer;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Timer.js","names":["differenceInHours","differenceInMinutes","format","formatDistanceToNow","intervalToDuration","React","useCallback","useEffect","useMemo","useRef","useState","vibrate","de","Container","Timer","_ref","devalueTime","color","textColor","refDate","Date","distance","setDistance","start","end","minutesShowValue","Math","max","minutes","toString","secondsShowValue","seconds","current","interval","setInterval","clearInterval","handlePointerDownCapture","pattern","iOSFeedbackVibration","label","text","distanceLabel","addSuffix","locale","charAt","toUpperCase","slice","replace","createElement","$baseFontSize","$borderSize","$height","$color","$textColor","$backgroundColor","onPointerDownCapture"],"sources":["../../../../src/components/timer/Timer.tsx"],"sourcesContent":["import {\n differenceInHours,\n differenceInMinutes,\n format,\n formatDistanceToNow,\n intervalToDuration,\n} from 'date-fns';\nimport React, { FunctionComponent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { vibrate } from 'chayns-api';\n\nimport { de } from 'date-fns/locale';\nimport { Container } from './Timer.styles';\n\nexport type TimerProps = {\n color: string;\n devalueTime: Date;\n textColor?: string;\n};\n\nconst Timer: FunctionComponent<TimerProps> = ({ devalueTime, color, textColor = 'white' }) => {\n const refDate = useRef(new Date());\n const [distance, setDistance] = useState(\n intervalToDuration({\n start: devalueTime,\n end: new Date(),\n }),\n );\n const minutesShowValue = useMemo(\n () => Math.max(distance.minutes ?? 0, 0).toString(),\n [distance.minutes],\n );\n const secondsShowValue = useMemo(\n () => Math.max(distance.seconds ?? 0, 0).toString(),\n [distance.seconds],\n );\n\n useEffect(() => {\n refDate.current = new Date();\n const interval = setInterval(() => {\n refDate.current = new Date();\n setDistance(\n intervalToDuration({\n start: devalueTime,\n end: refDate.current,\n }),\n );\n }, 500);\n return () => clearInterval(interval);\n }, [devalueTime]);\n\n const handlePointerDownCapture = useCallback(() => {\n void vibrate({ pattern: [50], iOSFeedbackVibration: 7 });\n }, []);\n\n const label = useMemo(() => {\n let text = 'Vor ##SECONDS## Sek. (##TIME## Uhr)';\n if (differenceInHours(refDate.current, devalueTime) > 0) {\n const distanceLabel =\n formatDistanceToNow(devalueTime, {\n addSuffix: true,\n locale: de,\n })\n .charAt(0)\n .toUpperCase() +\n formatDistanceToNow(devalueTime, { addSuffix: true, locale: de }).slice(1);\n text = `${distanceLabel} (##TIME## Uhr)`;\n } else if (differenceInMinutes(refDate.current, devalueTime) > 0) {\n text = 'Vor ##MINUTES## Min. ##SECONDS## Sek. (##TIME## Uhr)';\n }\n\n return text\n .replace('##MINUTES##', minutesShowValue)\n .replace('##SECONDS##', secondsShowValue)\n .replace('##TIME##', format(devalueTime, 'HH:mm'));\n }, [minutesShowValue, secondsShowValue, devalueTime]);\n\n return (\n <Container\n $baseFontSize={17}\n $borderSize={2}\n $height={50}\n $color={color}\n $textColor={textColor}\n $backgroundColor={color}\n onPointerDownCapture={handlePointerDownCapture}\n >\n {label}\n </Container>\n );\n};\n\nexport default Timer;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/devalue-slider",
3
- "version": "5.0.0-beta.748",
3
+ "version": "5.0.0-beta.753",
4
4
  "description": "A slider to devalue something.",
5
5
  "siteEffects": false,
6
6
  "browserslist": [
@@ -49,7 +49,7 @@
49
49
  "url": "https://github.com/TobitSoftware/chayns-components/issues"
50
50
  },
51
51
  "dependencies": {
52
- "@chayns-components/core": "^5.0.0-beta.748",
52
+ "@chayns-components/core": "^5.0.0-beta.750",
53
53
  "@react-hook/size": "^2.1.2",
54
54
  "date-fns": "^3.6.0"
55
55
  },
@@ -80,5 +80,5 @@
80
80
  "publishConfig": {
81
81
  "access": "public"
82
82
  },
83
- "gitHead": "6781c8233c309004e0ff239d9278137494f32bf5"
83
+ "gitHead": "d093b93d3f7c59cecb3d09a9ccefa81bae5a1f75"
84
84
  }