react-native-paper-dates 0.24.0 → 0.24.1

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.
Files changed (116) hide show
  1. package/lib/commonjs/Date/AnimatedCrossView.js +2 -2
  2. package/lib/commonjs/Date/AnimatedCrossView.js.map +1 -1
  3. package/lib/commonjs/Date/AutoSizer.js +24 -11
  4. package/lib/commonjs/Date/AutoSizer.js.map +1 -1
  5. package/lib/commonjs/Date/Calendar.js +5 -3
  6. package/lib/commonjs/Date/Calendar.js.map +1 -1
  7. package/lib/commonjs/Date/CalendarEdit.js +70 -61
  8. package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
  9. package/lib/commonjs/Date/CalendarHeader.js +30 -15
  10. package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
  11. package/lib/commonjs/Date/DatePickerModal.js +5 -11
  12. package/lib/commonjs/Date/DatePickerModal.js.map +1 -1
  13. package/lib/commonjs/Date/DatePickerModalContent.js +48 -34
  14. package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
  15. package/lib/commonjs/Date/DatePickerModalContentHeader.js +12 -5
  16. package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
  17. package/lib/commonjs/Date/DatePickerModalHeader.js +40 -40
  18. package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
  19. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +22 -4
  20. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
  21. package/lib/commonjs/Date/Month.js +44 -30
  22. package/lib/commonjs/Date/Month.js.map +1 -1
  23. package/lib/commonjs/Date/Swiper.js +31 -21
  24. package/lib/commonjs/Date/Swiper.js.map +1 -1
  25. package/lib/commonjs/Date/Swiper.native.js +37 -21
  26. package/lib/commonjs/Date/Swiper.native.js.map +1 -1
  27. package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
  28. package/lib/commonjs/Date/YearPicker.js +3 -1
  29. package/lib/commonjs/Date/YearPicker.js.map +1 -1
  30. package/lib/commonjs/Date/weekdayColumns.js +60 -0
  31. package/lib/commonjs/Date/weekdayColumns.js.map +1 -0
  32. package/lib/commonjs/shared/styles.js +3 -0
  33. package/lib/commonjs/shared/styles.js.map +1 -1
  34. package/lib/commonjs/shared/utils.js +9 -0
  35. package/lib/commonjs/shared/utils.js.map +1 -1
  36. package/lib/module/Date/AnimatedCrossView.js +2 -2
  37. package/lib/module/Date/AnimatedCrossView.js.map +1 -1
  38. package/lib/module/Date/AutoSizer.js +25 -12
  39. package/lib/module/Date/AutoSizer.js.map +1 -1
  40. package/lib/module/Date/Calendar.js +5 -3
  41. package/lib/module/Date/Calendar.js.map +1 -1
  42. package/lib/module/Date/CalendarEdit.js +70 -61
  43. package/lib/module/Date/CalendarEdit.js.map +1 -1
  44. package/lib/module/Date/CalendarHeader.js +31 -16
  45. package/lib/module/Date/CalendarHeader.js.map +1 -1
  46. package/lib/module/Date/DatePickerModal.js +7 -13
  47. package/lib/module/Date/DatePickerModal.js.map +1 -1
  48. package/lib/module/Date/DatePickerModalContent.js +48 -34
  49. package/lib/module/Date/DatePickerModalContent.js.map +1 -1
  50. package/lib/module/Date/DatePickerModalContentHeader.js +12 -5
  51. package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
  52. package/lib/module/Date/DatePickerModalHeader.js +43 -43
  53. package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
  54. package/lib/module/Date/DatePickerModalHeaderBackground.js +24 -6
  55. package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
  56. package/lib/module/Date/Month.js +46 -32
  57. package/lib/module/Date/Month.js.map +1 -1
  58. package/lib/module/Date/Swiper.js +32 -22
  59. package/lib/module/Date/Swiper.js.map +1 -1
  60. package/lib/module/Date/Swiper.native.js +38 -22
  61. package/lib/module/Date/Swiper.native.js.map +1 -1
  62. package/lib/module/Date/SwiperUtils.js.map +1 -1
  63. package/lib/module/Date/YearPicker.js +4 -2
  64. package/lib/module/Date/YearPicker.js.map +1 -1
  65. package/lib/module/Date/weekdayColumns.js +51 -0
  66. package/lib/module/Date/weekdayColumns.js.map +1 -0
  67. package/lib/module/shared/styles.js +3 -0
  68. package/lib/module/shared/styles.js.map +1 -1
  69. package/lib/module/shared/utils.js +8 -0
  70. package/lib/module/shared/utils.js.map +1 -1
  71. package/lib/typescript/Date/AnimatedCrossView.d.ts.map +1 -1
  72. package/lib/typescript/Date/AutoSizer.d.ts.map +1 -1
  73. package/lib/typescript/Date/Calendar.d.ts.map +1 -1
  74. package/lib/typescript/Date/CalendarEdit.d.ts +3 -1
  75. package/lib/typescript/Date/CalendarEdit.d.ts.map +1 -1
  76. package/lib/typescript/Date/CalendarHeader.d.ts +5 -1
  77. package/lib/typescript/Date/CalendarHeader.d.ts.map +1 -1
  78. package/lib/typescript/Date/DatePickerModal.d.ts.map +1 -1
  79. package/lib/typescript/Date/DatePickerModalContent.d.ts.map +1 -1
  80. package/lib/typescript/Date/DatePickerModalContentHeader.d.ts +2 -0
  81. package/lib/typescript/Date/DatePickerModalContentHeader.d.ts.map +1 -1
  82. package/lib/typescript/Date/DatePickerModalHeader.d.ts +2 -0
  83. package/lib/typescript/Date/DatePickerModalHeader.d.ts.map +1 -1
  84. package/lib/typescript/Date/DatePickerModalHeaderBackground.d.ts +3 -1
  85. package/lib/typescript/Date/DatePickerModalHeaderBackground.d.ts.map +1 -1
  86. package/lib/typescript/Date/Month.d.ts.map +1 -1
  87. package/lib/typescript/Date/Swiper.d.ts.map +1 -1
  88. package/lib/typescript/Date/Swiper.native.d.ts.map +1 -1
  89. package/lib/typescript/Date/SwiperUtils.d.ts +1 -0
  90. package/lib/typescript/Date/SwiperUtils.d.ts.map +1 -1
  91. package/lib/typescript/Date/YearPicker.d.ts.map +1 -1
  92. package/lib/typescript/Date/weekdayColumns.d.ts +9 -0
  93. package/lib/typescript/Date/weekdayColumns.d.ts.map +1 -0
  94. package/lib/typescript/shared/styles.d.ts +3 -0
  95. package/lib/typescript/shared/styles.d.ts.map +1 -1
  96. package/lib/typescript/shared/utils.d.ts +1 -0
  97. package/lib/typescript/shared/utils.d.ts.map +1 -1
  98. package/package.json +1 -1
  99. package/src/Date/AnimatedCrossView.tsx +2 -1
  100. package/src/Date/AutoSizer.tsx +33 -9
  101. package/src/Date/Calendar.tsx +5 -4
  102. package/src/Date/CalendarEdit.tsx +60 -51
  103. package/src/Date/CalendarHeader.tsx +38 -6
  104. package/src/Date/DatePickerModal.tsx +5 -13
  105. package/src/Date/DatePickerModalContent.tsx +55 -40
  106. package/src/Date/DatePickerModalContentHeader.tsx +14 -3
  107. package/src/Date/DatePickerModalHeader.tsx +47 -50
  108. package/src/Date/DatePickerModalHeaderBackground.tsx +30 -8
  109. package/src/Date/Month.tsx +73 -44
  110. package/src/Date/Swiper.native.tsx +70 -43
  111. package/src/Date/Swiper.tsx +44 -19
  112. package/src/Date/SwiperUtils.ts +1 -0
  113. package/src/Date/YearPicker.tsx +14 -2
  114. package/src/Date/weekdayColumns.ts +75 -0
  115. package/src/shared/styles.tsx +3 -0
  116. package/src/shared/utils.ts +6 -0
@@ -0,0 +1,75 @@
1
+ import { I18nManager, type DimensionValue, type ViewStyle } from 'react-native'
2
+ import { showWeekDay, type DisableWeekDaysType } from './dateUtils'
3
+
4
+ const compactTextButtonPadding = 8
5
+ const iconButtonPadding = 8
6
+ const iconButtonSize = 24 + 2 * iconButtonPadding
7
+ const letterHalfWidth = 4
8
+
9
+ export function alignIconToFirstWeekday(
10
+ disableWeekDays?: DisableWeekDaysType
11
+ ): ViewStyle {
12
+ return alignToFirstColumn(
13
+ disableWeekDays,
14
+ letterHalfWidth + iconButtonPadding
15
+ )
16
+ }
17
+
18
+ export function alignTextToFirstWeekday(
19
+ disableWeekDays?: DisableWeekDaysType
20
+ ): ViewStyle {
21
+ return alignToFirstColumn(disableWeekDays, letterHalfWidth)
22
+ }
23
+
24
+ export function alignTextToLastWeekday(
25
+ disableWeekDays?: DisableWeekDaysType
26
+ ): ViewStyle {
27
+ return alignToLastColumn(
28
+ disableWeekDays,
29
+ letterHalfWidth + compactTextButtonPadding
30
+ )
31
+ }
32
+
33
+ function alignToFirstColumn(
34
+ disableWeekDays: DisableWeekDaysType | undefined,
35
+ nudge: number
36
+ ): ViewStyle {
37
+ return {
38
+ marginStart: columnCentreInset(disableWeekDays),
39
+ transform: [{ translateX: I18nManager.isRTL ? nudge : -nudge }],
40
+ }
41
+ }
42
+
43
+ function alignToLastColumn(
44
+ disableWeekDays: DisableWeekDaysType | undefined,
45
+ nudge: number
46
+ ): ViewStyle {
47
+ return {
48
+ marginEnd: columnCentreInset(disableWeekDays),
49
+ transform: [{ translateX: I18nManager.isRTL ? -nudge : nudge }],
50
+ }
51
+ }
52
+
53
+ export function centerIconOnLastWeekday(
54
+ disableWeekDays?: DisableWeekDaysType
55
+ ): ViewStyle {
56
+ return alignToLastColumn(disableWeekDays, iconButtonSize / 2)
57
+ }
58
+
59
+ function columnCentreInset(
60
+ disableWeekDays: DisableWeekDaysType | undefined
61
+ ): DimensionValue {
62
+ const visibleColumns = [0, 1, 2, 3, 4, 5, 6].filter((dayIndex) =>
63
+ showWeekDay(dayIndex, disableWeekDays)
64
+ ).length
65
+ return `${50 / (visibleColumns || 7)}%`
66
+ }
67
+
68
+ export function weekdaySpan(disableWeekDays?: DisableWeekDaysType): ViewStyle {
69
+ const inset = columnCentreInset(disableWeekDays)
70
+ return { marginStart: inset, marginEnd: inset }
71
+ }
72
+
73
+ export const weekdaySpanOvershoot: ViewStyle = {
74
+ marginHorizontal: -letterHalfWidth,
75
+ }
@@ -4,6 +4,9 @@ export const sharedStyles = StyleSheet.create({
4
4
  flexDirectionRow: {
5
5
  flexDirection: 'row',
6
6
  },
7
+ minHeightZero: {
8
+ minHeight: 0,
9
+ },
7
10
  opacity0: {
8
11
  opacity: 0,
9
12
  },
@@ -1,4 +1,5 @@
1
1
  import { useRef } from 'react'
2
+ import { useWindowDimensions } from 'react-native'
2
3
  import { DefaultTheme, MD3DarkTheme, useTheme } from 'react-native-paper'
3
4
  import Color from 'color'
4
5
 
@@ -24,6 +25,11 @@ export function useLatest<T>(value: T) {
24
25
  return ref
25
26
  }
26
27
 
28
+ export function useIsLargeScreen() {
29
+ const { width, height } = useWindowDimensions()
30
+ return width > 650 && height > 650
31
+ }
32
+
27
33
  export function useHeaderBackgroundColor() {
28
34
  const theme = useTheme()
29
35
  return theme.colors.elevation.level3