@@ -184,6 +184,7 @@
|
|||||||
"react-keyed-flatten-children": "^5.0.0",
|
"react-keyed-flatten-children": "^5.0.0",
|
||||||
"react-native": "0.81.4",
|
"react-native": "0.81.4",
|
||||||
"react-native-compressor": "^1.12.0",
|
"react-native-compressor": "^1.12.0",
|
||||||
|
"react-native-date-picker": "^5.0.13",
|
||||||
"react-native-device-attest": "^0.1.6",
|
"react-native-device-attest": "^0.1.6",
|
||||||
"react-native-drawer-layout": "^4.1.8",
|
"react-native-drawer-layout": "^4.1.8",
|
||||||
"react-native-edge-to-edge": "^1.6.0",
|
"react-native-edge-to-edge": "^1.6.0",
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
diff --git a/node_modules/react-native-date-picker/ios/RNDatePicker.h b/node_modules/react-native-date-picker/ios/RNDatePicker.h
|
||||||
|
index 480746e..470dc3a 100644
|
||||||
|
--- a/node_modules/react-native-date-picker/ios/RNDatePicker.h
|
||||||
|
+++ b/node_modules/react-native-date-picker/ios/RNDatePicker.h
|
||||||
|
@@ -15,6 +15,7 @@ NS_ASSUME_NONNULL_END
|
||||||
|
#else
|
||||||
|
#import "DatePicker.h"
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
+#include <string>
|
||||||
|
|
||||||
|
@interface RNDatePicker : DatePicker
|
||||||
|
|
||||||
|
@@ -22,4 +23,3 @@ NS_ASSUME_NONNULL_END
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif
|
||||||
|
-
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
import {useCallback, useImperativeHandle, useState} from 'react'
|
import {useCallback, useImperativeHandle, useState} from 'react'
|
||||||
import {Keyboard} from 'react-native'
|
import {Keyboard} from 'react-native'
|
||||||
|
import DatePicker from 'react-native-date-picker'
|
||||||
import {useLingui} from '@lingui/react'
|
import {useLingui} from '@lingui/react'
|
||||||
|
|
||||||
import {useTheme} from '#/alf'
|
import {useTheme} from '#/alf'
|
||||||
@@ -66,6 +67,32 @@ export function DateField({
|
|||||||
isInvalid={isInvalid}
|
isInvalid={isInvalid}
|
||||||
accessibilityHint={accessibilityHint}
|
accessibilityHint={accessibilityHint}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
{open && (
|
||||||
|
// Android implementation of DatePicker currently does not change default button colors according to theme and only takes hex values for buttonColor
|
||||||
|
// Can remove the buttonColor setting if/when this PR is merged: https://github.com/henninghall/react-native-date-picker/pull/871
|
||||||
|
<DatePicker
|
||||||
|
modal
|
||||||
|
open
|
||||||
|
timeZoneOffsetInMinutes={0}
|
||||||
|
theme={t.scheme}
|
||||||
|
// @ts-ignore TODO
|
||||||
|
buttonColor={t.name === 'light' ? '#000000' : '#ffffff'}
|
||||||
|
date={new Date(value)}
|
||||||
|
onConfirm={onChangeInternal}
|
||||||
|
onCancel={onCancel}
|
||||||
|
mode="date"
|
||||||
|
locale={i18n.locale}
|
||||||
|
is24hourSource="locale"
|
||||||
|
testID={`${testID}-datepicker`}
|
||||||
|
aria-label={label}
|
||||||
|
accessibilityLabel={label}
|
||||||
|
accessibilityHint={accessibilityHint}
|
||||||
|
maximumDate={
|
||||||
|
maximumDate ? new Date(toSimpleDateString(maximumDate)) : undefined
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import {useCallback, useImperativeHandle} from 'react'
|
import {useCallback, useImperativeHandle} from 'react'
|
||||||
import {Keyboard, View} from 'react-native'
|
import {Keyboard, View} from 'react-native'
|
||||||
|
import DatePicker from 'react-native-date-picker'
|
||||||
import {msg, Trans} from '@lingui/macro'
|
import {msg, Trans} from '@lingui/macro'
|
||||||
import {useLingui} from '@lingui/react'
|
import {useLingui} from '@lingui/react'
|
||||||
|
|
||||||
@@ -79,7 +80,25 @@ export function DateField({
|
|||||||
<Dialog.Handle />
|
<Dialog.Handle />
|
||||||
<Dialog.ScrollableInner label={label}>
|
<Dialog.ScrollableInner label={label}>
|
||||||
<View style={a.gap_lg}>
|
<View style={a.gap_lg}>
|
||||||
<View style={[a.relative, a.w_full, a.align_center]} />
|
<View style={[a.relative, a.w_full, a.align_center]}>
|
||||||
|
<DatePicker
|
||||||
|
timeZoneOffsetInMinutes={0}
|
||||||
|
theme={t.scheme}
|
||||||
|
date={new Date(toSimpleDateString(value))}
|
||||||
|
onDateChange={onChangeInternal}
|
||||||
|
mode="date"
|
||||||
|
locale={i18n.locale}
|
||||||
|
testID={`${testID}-datepicker`}
|
||||||
|
aria-label={label}
|
||||||
|
accessibilityLabel={label}
|
||||||
|
accessibilityHint={accessibilityHint}
|
||||||
|
maximumDate={
|
||||||
|
maximumDate
|
||||||
|
? new Date(toSimpleDateString(maximumDate))
|
||||||
|
: undefined
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
<Button
|
<Button
|
||||||
label={_(msg`Done`)}
|
label={_(msg`Done`)}
|
||||||
onPress={() => control.close()}
|
onPress={() => control.close()}
|
||||||
|
|||||||
@@ -16732,6 +16732,11 @@ react-native-compressor@^1.12.0:
|
|||||||
resolved "https://registry.yarnpkg.com/react-native-compressor/-/react-native-compressor-1.12.0.tgz#4c387f100ec6d98adbee10c22496d0e42397d8bf"
|
resolved "https://registry.yarnpkg.com/react-native-compressor/-/react-native-compressor-1.12.0.tgz#4c387f100ec6d98adbee10c22496d0e42397d8bf"
|
||||||
integrity sha512-NMAYpXnTLwx/KecwlLF+9Dnrn/tKV5UVfta8Lk9eROsb05JYnUoKLprRzSSpHcyLjIdQAVaTtx2lPYsappMezw==
|
integrity sha512-NMAYpXnTLwx/KecwlLF+9Dnrn/tKV5UVfta8Lk9eROsb05JYnUoKLprRzSSpHcyLjIdQAVaTtx2lPYsappMezw==
|
||||||
|
|
||||||
|
react-native-date-picker@^5.0.13:
|
||||||
|
version "5.0.13"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-date-picker/-/react-native-date-picker-5.0.13.tgz#fe05f58652aaeee9e67f73cf7436c32a623ff3a4"
|
||||||
|
integrity sha512-qCLUODZVsJetO5zuoXjw1D39K527XWqBG8sOfhWdHyPzf13h8RXR1/RSKd1N0fdRDi5GdyizYmB0lPAK12/hbw==
|
||||||
|
|
||||||
react-native-device-attest@^0.1.6:
|
react-native-device-attest@^0.1.6:
|
||||||
version "0.1.6"
|
version "0.1.6"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-device-attest/-/react-native-device-attest-0.1.6.tgz#51796a92d9199b1d231d4aa62d557019753b30c3"
|
resolved "https://registry.yarnpkg.com/react-native-device-attest/-/react-native-device-attest-0.1.6.tgz#51796a92d9199b1d231d4aa62d557019753b30c3"
|
||||||
|
|||||||
Reference in New Issue
Block a user