@planningcenter/chat-react-native 3.23.0-rc.1 → 3.23.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.
|
@@ -11,6 +11,7 @@ export function AgeCheckSelectBirthdateModal(props) {
|
|
|
11
11
|
return <AndroidBirthdatePicker {...props}/>;
|
|
12
12
|
return <Text>Birthdate selection is not supported on this platform.</Text>;
|
|
13
13
|
}
|
|
14
|
+
const MINIMUM_BIRTHDATE = new Date(1900, 0, 1);
|
|
14
15
|
function IOSBirthdateModal({ onChange, onDismiss, onRequestClose, onSubmit, value, visible, }) {
|
|
15
16
|
const styles = useStyles();
|
|
16
17
|
const today = React.useMemo(() => new Date(), []);
|
|
@@ -38,7 +39,7 @@ function IOSBirthdateModal({ onChange, onDismiss, onRequestClose, onSubmit, valu
|
|
|
38
39
|
Birthdate
|
|
39
40
|
</Text>
|
|
40
41
|
<View style={styles.pickerContainer}>
|
|
41
|
-
<DateTimePicker timeZoneName="UTC" accessibilityLabelledBy="birthdateLabel" testID="age-check-date-picker" mode="date" display="spinner" value={selected} maximumDate={today} onChange={handleChange}/>
|
|
42
|
+
<DateTimePicker timeZoneName="UTC" accessibilityLabelledBy="birthdateLabel" testID="age-check-date-picker" mode="date" display="spinner" value={selected} minimumDate={MINIMUM_BIRTHDATE} maximumDate={today} onChange={handleChange}/>
|
|
42
43
|
</View>
|
|
43
44
|
</View>
|
|
44
45
|
</View>
|
|
@@ -56,7 +57,7 @@ function AndroidBirthdatePicker({ onRequestClose, onSubmit, value, visible, }) {
|
|
|
56
57
|
}
|
|
57
58
|
onRequestClose();
|
|
58
59
|
};
|
|
59
|
-
return (<DateTimePicker timeZoneName="UTC" testID="age-check-date-picker-android" mode="date" display="spinner" value={selected} maximumDate={today} onChange={handleAndroidDateChange}/>);
|
|
60
|
+
return (<DateTimePicker timeZoneName="UTC" testID="age-check-date-picker-android" mode="date" display="spinner" value={selected} minimumDate={MINIMUM_BIRTHDATE} maximumDate={today} onChange={handleAndroidDateChange}/>);
|
|
60
61
|
}
|
|
61
62
|
const useStyles = () => {
|
|
62
63
|
const { colors } = useTheme();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"age_check_select_birthdate_modal.js","sourceRoot":"","sources":["../../../../src/screens/age_check/components/age_check_select_birthdate_modal.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react'\nimport { Modal, Platform, StyleSheet, View } from 'react-native'\nimport DateTimePicker, { DateTimePickerEvent } from '@react-native-community/datetimepicker'\nimport FormSheet from '../../../components/primitive/form_sheet'\nimport { Text } from '../../../components/display/text'\nimport { useTheme } from '../../../hooks'\n\nexport type AgeCheckSelectBirthdateProps = {\n onChange: (date: Date) => void\n onDismiss?: () => void\n onRequestClose: () => void\n onSubmit: (date: Date) => void\n value?: Date | null\n visible?: boolean\n}\n\nexport function AgeCheckSelectBirthdateModal(props: AgeCheckSelectBirthdateProps) {\n if (Platform.OS === 'ios') return <IOSBirthdateModal {...props} />\n if (Platform.OS === 'android') return <AndroidBirthdatePicker {...props} />\n\n return <Text>Birthdate selection is not supported on this platform.</Text>\n}\n\nfunction IOSBirthdateModal({\n onChange,\n onDismiss,\n onRequestClose,\n onSubmit,\n value,\n visible,\n}: AgeCheckSelectBirthdateProps) {\n const styles = useStyles()\n const today = React.useMemo(() => new Date(), [])\n const selected = value || today\n\n const handleChange = (_event: DateTimePickerEvent, date?: Date) => {\n if (date) onChange(date)\n }\n\n const handleSave = () => {\n onSubmit(selected)\n onRequestClose()\n }\n\n return (\n <Modal\n visible={visible}\n animationType=\"slide\"\n presentationStyle=\"pageSheet\"\n onRequestClose={onRequestClose}\n onDismiss={onDismiss}\n >\n <FormSheet.Root style={styles.formSheet} contentStyle={styles.formSheetContent}>\n <FormSheet.Header>\n <FormSheet.HeaderTitle>Your birthdate</FormSheet.HeaderTitle>\n <FormSheet.HeaderActions>\n <FormSheet.HeaderTextButton onPress={onRequestClose}>Cancel</FormSheet.HeaderTextButton>\n <FormSheet.HeaderButton title=\"Save\" onPress={handleSave} />\n </FormSheet.HeaderActions>\n </FormSheet.Header>\n <View style={styles.content}>\n <View style={styles.card}>\n <Text nativeID=\"birthdateLabel\" variant=\"tertiary\" style={styles.label}>\n Birthdate\n </Text>\n <View style={styles.pickerContainer}>\n <DateTimePicker\n timeZoneName=\"UTC\"\n accessibilityLabelledBy=\"birthdateLabel\"\n testID=\"age-check-date-picker\"\n mode=\"date\"\n display=\"spinner\"\n value={selected}\n maximumDate={today}\n onChange={handleChange}\n />\n </View>\n </View>\n </View>\n </FormSheet.Root>\n </Modal>\n )\n}\n\nfunction AndroidBirthdatePicker({\n onRequestClose,\n onSubmit,\n value,\n visible,\n}: AgeCheckSelectBirthdateProps) {\n if (!visible) return null\n\n const today = new Date()\n const selected = value || today\n\n const handleAndroidDateChange = (event: DateTimePickerEvent, selectedDate?: Date) => {\n if (event.type === 'set' && selectedDate) {\n onSubmit(selectedDate)\n }\n onRequestClose()\n }\n\n return (\n <DateTimePicker\n timeZoneName=\"UTC\"\n testID=\"age-check-date-picker-android\"\n mode=\"date\"\n display=\"spinner\"\n value={selected}\n maximumDate={today}\n onChange={handleAndroidDateChange}\n />\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n return StyleSheet.create({\n formSheet: {\n backgroundColor: colors.surfaceColor080,\n },\n formSheetContent: {\n flex: 1,\n },\n content: {\n flex: 1,\n backgroundColor: colors.surfaceColor080,\n padding: 16,\n justifyContent: 'flex-start',\n },\n card: {\n backgroundColor: colors.surfaceColor100,\n borderRadius: 8,\n padding: 16,\n },\n label: {\n marginBottom: 8,\n textTransform: 'uppercase',\n },\n pickerContainer: {\n backgroundColor: colors.surfaceColor100,\n borderRadius: 8,\n },\n })\n}\n"]}
|
|
1
|
+
{"version":3,"file":"age_check_select_birthdate_modal.js","sourceRoot":"","sources":["../../../../src/screens/age_check/components/age_check_select_birthdate_modal.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react'\nimport { Modal, Platform, StyleSheet, View } from 'react-native'\nimport DateTimePicker, { DateTimePickerEvent } from '@react-native-community/datetimepicker'\nimport FormSheet from '../../../components/primitive/form_sheet'\nimport { Text } from '../../../components/display/text'\nimport { useTheme } from '../../../hooks'\n\nexport type AgeCheckSelectBirthdateProps = {\n onChange: (date: Date) => void\n onDismiss?: () => void\n onRequestClose: () => void\n onSubmit: (date: Date) => void\n value?: Date | null\n visible?: boolean\n}\n\nexport function AgeCheckSelectBirthdateModal(props: AgeCheckSelectBirthdateProps) {\n if (Platform.OS === 'ios') return <IOSBirthdateModal {...props} />\n if (Platform.OS === 'android') return <AndroidBirthdatePicker {...props} />\n\n return <Text>Birthdate selection is not supported on this platform.</Text>\n}\n\nconst MINIMUM_BIRTHDATE = new Date(1900, 0, 1)\n\nfunction IOSBirthdateModal({\n onChange,\n onDismiss,\n onRequestClose,\n onSubmit,\n value,\n visible,\n}: AgeCheckSelectBirthdateProps) {\n const styles = useStyles()\n const today = React.useMemo(() => new Date(), [])\n const selected = value || today\n\n const handleChange = (_event: DateTimePickerEvent, date?: Date) => {\n if (date) onChange(date)\n }\n\n const handleSave = () => {\n onSubmit(selected)\n onRequestClose()\n }\n\n return (\n <Modal\n visible={visible}\n animationType=\"slide\"\n presentationStyle=\"pageSheet\"\n onRequestClose={onRequestClose}\n onDismiss={onDismiss}\n >\n <FormSheet.Root style={styles.formSheet} contentStyle={styles.formSheetContent}>\n <FormSheet.Header>\n <FormSheet.HeaderTitle>Your birthdate</FormSheet.HeaderTitle>\n <FormSheet.HeaderActions>\n <FormSheet.HeaderTextButton onPress={onRequestClose}>Cancel</FormSheet.HeaderTextButton>\n <FormSheet.HeaderButton title=\"Save\" onPress={handleSave} />\n </FormSheet.HeaderActions>\n </FormSheet.Header>\n <View style={styles.content}>\n <View style={styles.card}>\n <Text nativeID=\"birthdateLabel\" variant=\"tertiary\" style={styles.label}>\n Birthdate\n </Text>\n <View style={styles.pickerContainer}>\n <DateTimePicker\n timeZoneName=\"UTC\"\n accessibilityLabelledBy=\"birthdateLabel\"\n testID=\"age-check-date-picker\"\n mode=\"date\"\n display=\"spinner\"\n value={selected}\n minimumDate={MINIMUM_BIRTHDATE}\n maximumDate={today}\n onChange={handleChange}\n />\n </View>\n </View>\n </View>\n </FormSheet.Root>\n </Modal>\n )\n}\n\nfunction AndroidBirthdatePicker({\n onRequestClose,\n onSubmit,\n value,\n visible,\n}: AgeCheckSelectBirthdateProps) {\n if (!visible) return null\n\n const today = new Date()\n const selected = value || today\n\n const handleAndroidDateChange = (event: DateTimePickerEvent, selectedDate?: Date) => {\n if (event.type === 'set' && selectedDate) {\n onSubmit(selectedDate)\n }\n onRequestClose()\n }\n\n return (\n <DateTimePicker\n timeZoneName=\"UTC\"\n testID=\"age-check-date-picker-android\"\n mode=\"date\"\n display=\"spinner\"\n value={selected}\n minimumDate={MINIMUM_BIRTHDATE}\n maximumDate={today}\n onChange={handleAndroidDateChange}\n />\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n return StyleSheet.create({\n formSheet: {\n backgroundColor: colors.surfaceColor080,\n },\n formSheetContent: {\n flex: 1,\n },\n content: {\n flex: 1,\n backgroundColor: colors.surfaceColor080,\n padding: 16,\n justifyContent: 'flex-start',\n },\n card: {\n backgroundColor: colors.surfaceColor100,\n borderRadius: 8,\n padding: 16,\n },\n label: {\n marginBottom: 8,\n textTransform: 'uppercase',\n },\n pickerContainer: {\n backgroundColor: colors.surfaceColor100,\n borderRadius: 8,\n },\n })\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planningcenter/chat-react-native",
|
|
3
|
-
"version": "3.23.0
|
|
3
|
+
"version": "3.23.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"react-native-url-polyfill": "^2.0.0",
|
|
59
59
|
"typescript": "<5.6.0"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "781d6284a8e458dacb1b20c51af5351aeb675fa3"
|
|
62
62
|
}
|
|
@@ -21,6 +21,8 @@ export function AgeCheckSelectBirthdateModal(props: AgeCheckSelectBirthdateProps
|
|
|
21
21
|
return <Text>Birthdate selection is not supported on this platform.</Text>
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
const MINIMUM_BIRTHDATE = new Date(1900, 0, 1)
|
|
25
|
+
|
|
24
26
|
function IOSBirthdateModal({
|
|
25
27
|
onChange,
|
|
26
28
|
onDismiss,
|
|
@@ -71,6 +73,7 @@ function IOSBirthdateModal({
|
|
|
71
73
|
mode="date"
|
|
72
74
|
display="spinner"
|
|
73
75
|
value={selected}
|
|
76
|
+
minimumDate={MINIMUM_BIRTHDATE}
|
|
74
77
|
maximumDate={today}
|
|
75
78
|
onChange={handleChange}
|
|
76
79
|
/>
|
|
@@ -107,6 +110,7 @@ function AndroidBirthdatePicker({
|
|
|
107
110
|
mode="date"
|
|
108
111
|
display="spinner"
|
|
109
112
|
value={selected}
|
|
113
|
+
minimumDate={MINIMUM_BIRTHDATE}
|
|
110
114
|
maximumDate={today}
|
|
111
115
|
onChange={handleAndroidDateChange}
|
|
112
116
|
/>
|