@tecsinapse/react-core 1.12.10 → 1.13.0

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.13.0](https://github.com/tecsinapse/design-system/compare/@tecsinapse/react-core@1.12.10...@tecsinapse/react-core@1.13.0) (2022-02-09)
7
+
8
+ **Note:** Version bump only for package @tecsinapse/react-core
9
+
10
+
11
+
12
+
13
+
6
14
  ## [1.12.10](https://github.com/tecsinapse/design-system/compare/@tecsinapse/react-core@1.12.9...@tecsinapse/react-core@1.12.10) (2022-01-19)
7
15
 
8
16
  **Note:** Version bump only for package @tecsinapse/react-core
@@ -62,7 +62,7 @@ const MonthWeek = ({
62
62
  if ((0, _dateFns.compareAsc)(date, lowest) === -1) {
63
63
  newValue = {
64
64
  lowest: date,
65
- highest: lowest
65
+ highest: undefined
66
66
  };
67
67
  } else if ((0, _dateFns.compareAsc)(date, lowest) === 0) {
68
68
  newValue = undefined;
@@ -76,20 +76,15 @@ const MonthWeek = ({
76
76
  if ((0, _dateFns.compareAsc)(date, lowest) === -1) {
77
77
  newValue = {
78
78
  lowest: date,
79
- highest: highest
80
- };
81
- } else if ((0, _dateFns.compareAsc)(date, lowest) === 0) {
82
- newValue = {
83
- lowest: highest,
84
79
  highest: undefined
85
80
  };
81
+ } else if ((0, _dateFns.compareAsc)(date, lowest) === 0) {
82
+ newValue = undefined;
86
83
  } else {
87
84
  if ((0, _dateFns.compareAsc)(date, highest) === -1) {
88
- const lowestDiff = Math.abs((0, _dateFns.differenceInDays)(date, lowest));
89
- const highestDiff = Math.abs((0, _dateFns.differenceInDays)(date, highest));
90
85
  newValue = {
91
- lowest: lowestDiff < highestDiff ? date : lowest,
92
- highest: highestDiff <= lowestDiff ? date : highest
86
+ lowest: lowest,
87
+ highest: date
93
88
  };
94
89
  } else if ((0, _dateFns.compareAsc)(date, highest) === 0) {
95
90
  newValue = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/molecules/Calendar/components/MonthWeek.tsx"],"names":["MonthWeek","week","referenceDate","type","value","TextComponent","onChange","checkIfIsBetween","React","useCallback","date","_value","lowest","highest","checkIfIsSelected","handlePressCell","newValue","undefined","lowestDiff","Math","abs","highestDiff","map","index","isSelected","isBetween","isRangeStart","isRangeEnd","colorTone","getMonth","getDate","memo"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { compareAsc as compare, differenceInDays, isSameDay } from 'date-fns';\nimport { Cell, Selected, Week } from '../styled';\nimport { Value, DateRange, SelectionType } from '../Calendar';\nimport { TextProps } from '@tecsinapse/react-core';\n\ninterface IMonthWeek<T extends SelectionType> {\n TextComponent: React.FC<TextProps>;\n /** any as workaround for TS type mismatching */\n onChange?: (value?: any) => void | never;\n type?: T;\n value?: Value<T>;\n week: Date[];\n referenceDate: Date;\n}\n\nconst MonthWeek = <T extends SelectionType>({\n week,\n referenceDate,\n type,\n value,\n TextComponent,\n onChange,\n}: IMonthWeek<T>) => {\n const checkIfIsBetween = React.useCallback(\n (date: Date, _value?: Value<T>) => {\n if (type !== 'range' || !_value) return false;\n else {\n const { lowest, highest } = _value as DateRange;\n if (!highest) return false;\n return compare(lowest, date) <= 0 && compare(highest, date) >= 0;\n }\n },\n [type]\n );\n\n const checkIfIsSelected = React.useCallback(\n (date: Date, _value?: Value<T>) => {\n if (!_value) return false;\n else if (type === 'range' && _value) {\n const { lowest, highest } = _value as DateRange;\n return (\n isSameDay(lowest, date) ||\n (highest ? isSameDay(highest, date) : false)\n );\n } else {\n return isSameDay(_value as Date, date);\n }\n },\n [type]\n );\n\n const handlePressCell = React.useCallback(\n (date: Date, _value?: Value<T>) => () => {\n if (type === 'day') {\n onChange?.(date as never);\n } else if (!_value) {\n onChange?.({ lowest: date } as never);\n } else {\n let newValue;\n const { lowest, highest } = _value as DateRange;\n\n if (!highest) {\n if (compare(date, lowest) === -1) {\n newValue = { lowest: date, highest: lowest };\n } else if (compare(date, lowest) === 0) {\n newValue = undefined;\n } else {\n newValue = { lowest: lowest, highest: date };\n }\n } else {\n if (compare(date, lowest) === -1) {\n newValue = { lowest: date, highest: highest };\n } else if (compare(date, lowest) === 0) {\n newValue = { lowest: highest, highest: undefined };\n } else {\n if (compare(date, highest) === -1) {\n const lowestDiff = Math.abs(differenceInDays(date, lowest));\n const highestDiff = Math.abs(differenceInDays(date, highest));\n newValue = {\n lowest: lowestDiff < highestDiff ? date : lowest,\n highest: highestDiff <= lowestDiff ? date : highest,\n };\n } else if (compare(date, highest) === 0) {\n newValue = { lowest: lowest, highest: undefined };\n } else {\n newValue = { lowest: lowest, highest: date };\n }\n }\n }\n\n onChange?.(newValue as never);\n }\n },\n [onChange, type]\n );\n\n return (\n <Week>\n {week.map((date, index) => {\n const isSelected = checkIfIsSelected(date, value);\n const isBetween = checkIfIsBetween(date, value);\n\n let isRangeStart, isRangeEnd;\n\n if (type === 'range' && value) {\n const { lowest, highest } = value as DateRange;\n isRangeStart = highest && isSameDay(lowest, date);\n isRangeEnd = !!highest && isSameDay(highest, date);\n } else {\n isRangeStart = false;\n isRangeEnd = false;\n }\n\n const colorTone = isSelected\n ? 'xlight'\n : date.getMonth() === referenceDate.getMonth()\n ? 'xdark'\n : 'light';\n\n return (\n <Cell\n key={date.getDate()}\n selected={isSelected}\n highlighted={isBetween}\n isLineEnd={index === 6}\n isLineStart={index === 0}\n isRangeStart={isRangeStart}\n isRangeEnd={isRangeEnd}\n onPress={handlePressCell(date, value)}\n >\n <Selected selected={isSelected} pointerEvents={'none'}>\n <TextComponent colorVariant={'secondary'} colorTone={colorTone}>\n {date.getDate()}\n </TextComponent>\n </Selected>\n </Cell>\n );\n })}\n </Week>\n );\n};\n\nexport default React.memo(MonthWeek);\n"],"file":"MonthWeek.js"}
1
+ {"version":3,"sources":["../../../../../src/components/molecules/Calendar/components/MonthWeek.tsx"],"names":["MonthWeek","week","referenceDate","type","value","TextComponent","onChange","checkIfIsBetween","React","useCallback","date","_value","lowest","highest","checkIfIsSelected","handlePressCell","newValue","undefined","map","index","isSelected","isBetween","isRangeStart","isRangeEnd","colorTone","getMonth","getDate","memo"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { compareAsc as compare, isSameDay } from 'date-fns';\nimport { Cell, Selected, Week } from '../styled';\nimport { Value, DateRange, SelectionType } from '../Calendar';\nimport { TextProps } from '@tecsinapse/react-core';\n\ninterface IMonthWeek<T extends SelectionType> {\n TextComponent: React.FC<TextProps>;\n /** any as workaround for TS type mismatching */\n onChange?: (value?: any) => void | never;\n type?: T;\n value?: Value<T>;\n week: Date[];\n referenceDate: Date;\n}\n\nconst MonthWeek = <T extends SelectionType>({\n week,\n referenceDate,\n type,\n value,\n TextComponent,\n onChange,\n}: IMonthWeek<T>) => {\n const checkIfIsBetween = React.useCallback(\n (date: Date, _value?: Value<T>) => {\n if (type !== 'range' || !_value) return false;\n else {\n const { lowest, highest } = _value as DateRange;\n if (!highest) return false;\n return compare(lowest, date) <= 0 && compare(highest, date) >= 0;\n }\n },\n [type]\n );\n\n const checkIfIsSelected = React.useCallback(\n (date: Date, _value?: Value<T>) => {\n if (!_value) return false;\n else if (type === 'range' && _value) {\n const { lowest, highest } = _value as DateRange;\n return (\n isSameDay(lowest, date) ||\n (highest ? isSameDay(highest, date) : false)\n );\n } else {\n return isSameDay(_value as Date, date);\n }\n },\n [type]\n );\n\n const handlePressCell = React.useCallback(\n (date: Date, _value?: Value<T>) => () => {\n if (type === 'day') {\n onChange?.(date as never);\n } else if (!_value) {\n onChange?.({ lowest: date } as never);\n } else {\n let newValue;\n const { lowest, highest } = _value as DateRange;\n\n if (!highest) {\n if (compare(date, lowest) === -1) {\n newValue = { lowest: date, highest: undefined };\n } else if (compare(date, lowest) === 0) {\n newValue = undefined;\n } else {\n newValue = { lowest: lowest, highest: date };\n }\n } else {\n if (compare(date, lowest) === -1) {\n newValue = { lowest: date, highest: undefined };\n } else if (compare(date, lowest) === 0) {\n newValue = undefined;\n } else {\n if (compare(date, highest) === -1) {\n newValue = { lowest: lowest, highest: date };\n } else if (compare(date, highest) === 0) {\n newValue = { lowest: lowest, highest: undefined };\n } else {\n newValue = { lowest: lowest, highest: date };\n }\n }\n }\n\n onChange?.(newValue as never);\n }\n },\n [onChange, type]\n );\n\n return (\n <Week>\n {week.map((date, index) => {\n const isSelected = checkIfIsSelected(date, value);\n const isBetween = checkIfIsBetween(date, value);\n\n let isRangeStart, isRangeEnd;\n\n if (type === 'range' && value) {\n const { lowest, highest } = value as DateRange;\n isRangeStart = highest && isSameDay(lowest, date);\n isRangeEnd = !!highest && isSameDay(highest, date);\n } else {\n isRangeStart = false;\n isRangeEnd = false;\n }\n\n const colorTone = isSelected\n ? 'xlight'\n : date.getMonth() === referenceDate.getMonth()\n ? 'xdark'\n : 'light';\n\n return (\n <Cell\n key={date.getDate()}\n selected={isSelected}\n highlighted={isBetween}\n isLineEnd={index === 6}\n isLineStart={index === 0}\n isRangeStart={isRangeStart}\n isRangeEnd={isRangeEnd}\n onPress={handlePressCell(date, value)}\n >\n <Selected selected={isSelected} pointerEvents={'none'}>\n <TextComponent colorVariant={'secondary'} colorTone={colorTone}>\n {date.getDate()}\n </TextComponent>\n </Selected>\n </Cell>\n );\n })}\n </Week>\n );\n};\n\nexport default React.memo(MonthWeek);\n"],"file":"MonthWeek.js"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tecsinapse/react-core",
3
3
  "description": "TecSinapse hybrid React components",
4
- "version": "1.12.10",
4
+ "version": "1.13.0",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -31,5 +31,5 @@
31
31
  "react-native": ">=0.64.0",
32
32
  "react-native-vector-icons": ">=8.1.0"
33
33
  },
34
- "gitHead": "5a75d80ba78335d9dba890b4b75c6bc76954c380"
34
+ "gitHead": "d5d2193bf8716615751e28b7009da59520e8080c"
35
35
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { compareAsc as compare, differenceInDays, isSameDay } from 'date-fns';
2
+ import { compareAsc as compare, isSameDay } from 'date-fns';
3
3
  import { Cell, Selected, Week } from '../styled';
4
4
  import { Value, DateRange, SelectionType } from '../Calendar';
5
5
  import { TextProps } from '@tecsinapse/react-core';
@@ -62,7 +62,7 @@ const MonthWeek = <T extends SelectionType>({
62
62
 
63
63
  if (!highest) {
64
64
  if (compare(date, lowest) === -1) {
65
- newValue = { lowest: date, highest: lowest };
65
+ newValue = { lowest: date, highest: undefined };
66
66
  } else if (compare(date, lowest) === 0) {
67
67
  newValue = undefined;
68
68
  } else {
@@ -70,17 +70,12 @@ const MonthWeek = <T extends SelectionType>({
70
70
  }
71
71
  } else {
72
72
  if (compare(date, lowest) === -1) {
73
- newValue = { lowest: date, highest: highest };
73
+ newValue = { lowest: date, highest: undefined };
74
74
  } else if (compare(date, lowest) === 0) {
75
- newValue = { lowest: highest, highest: undefined };
75
+ newValue = undefined;
76
76
  } else {
77
77
  if (compare(date, highest) === -1) {
78
- const lowestDiff = Math.abs(differenceInDays(date, lowest));
79
- const highestDiff = Math.abs(differenceInDays(date, highest));
80
- newValue = {
81
- lowest: lowestDiff < highestDiff ? date : lowest,
82
- highest: highestDiff <= lowestDiff ? date : highest,
83
- };
78
+ newValue = { lowest: lowest, highest: date };
84
79
  } else if (compare(date, highest) === 0) {
85
80
  newValue = { lowest: lowest, highest: undefined };
86
81
  } else {