@@ -65,7 +65,11 @@ export function usePregnancySetup({
6565 const [ setupError , setSetupError ] = useState < string | null > ( null ) ;
6666
6767 const applyDefaultDateInputs = useCallback (
68- ( normalizedToday : Date , configured : boolean , currentPregnancyDay ?: number ) => {
68+ (
69+ normalizedToday : Date ,
70+ configured : boolean ,
71+ currentPregnancyDay ?: number ,
72+ ) => {
6973 if ( configured && currentPregnancyDay !== undefined ) {
7074 const derivedDayZero = addDays ( normalizedToday , - currentPregnancyDay ) ;
7175 setDueDateInput ( addDays ( derivedDayZero , FULL_TERM_DAYS ) ) ;
@@ -84,9 +88,7 @@ export function usePregnancySetup({
8488 setDueDateInput ( addDays ( normalizedToday , DAYS_FROM_LMP_TO_DUE ) ) ;
8589 setLastPeriodInput ( addDays ( normalizedToday , - DEFAULT_LMP_DAYS_AGO ) ) ;
8690 setConceptionDateInput ( normalizedToday ) ;
87- setPositiveTestDateInput (
88- addDays ( normalizedToday , DEFAULT_LMP_DAYS_AGO ) ,
89- ) ;
91+ setPositiveTestDateInput ( addDays ( normalizedToday , DEFAULT_LMP_DAYS_AGO ) ) ;
9092 } ,
9193 [ ] ,
9294 ) ;
@@ -147,56 +149,62 @@ export function usePregnancySetup({
147149 return clampPregnancyValue ( parsed , 0 , MAX_DAY_IN_WEEK_INPUT ) ;
148150 } , [ daysInput ] ) ;
149151
150- const onDateChange = useCallback ( ( event : DateTimePickerEvent , selectedDate ?: Date ) => {
151- if ( Platform . OS === "android" ) {
152- setShowDatePicker ( false ) ;
153- }
152+ const onDateChange = useCallback (
153+ ( event : DateTimePickerEvent , selectedDate ?: Date ) => {
154+ if ( Platform . OS === "android" ) {
155+ setShowDatePicker ( false ) ;
156+ }
154157
155- if ( event . type === "set" && selectedDate ) {
156- if ( activeDateField === "dueDate" ) setDueDateInput ( selectedDate ) ;
157- if ( activeDateField === "lastPeriod" ) setLastPeriodInput ( selectedDate ) ;
158- if ( activeDateField === "conceptionDate" )
159- setConceptionDateInput ( selectedDate ) ;
160- if ( activeDateField === "positiveTestDate" )
161- setPositiveTestDateInput ( selectedDate ) ;
162- }
163- } , [ activeDateField ] ) ;
158+ if ( event . type === "set" && selectedDate ) {
159+ if ( activeDateField === "dueDate" ) setDueDateInput ( selectedDate ) ;
160+ if ( activeDateField === "lastPeriod" ) setLastPeriodInput ( selectedDate ) ;
161+ if ( activeDateField === "conceptionDate" )
162+ setConceptionDateInput ( selectedDate ) ;
163+ if ( activeDateField === "positiveTestDate" )
164+ setPositiveTestDateInput ( selectedDate ) ;
165+ }
166+ } ,
167+ [ activeDateField ] ,
168+ ) ;
164169
165- const openDatePicker = useCallback ( ( field ?: DateFieldKey ) => {
166- const targetField = field ?? activeDateField ;
167- if ( ! targetField ) return ;
168- setActiveDateField ( targetField ) ;
169- const dateForField =
170- targetField === "dueDate"
171- ? dueDateInput
172- : targetField === "lastPeriod"
173- ? lastPeriodInput
174- : targetField === "conceptionDate"
175- ? conceptionDateInput
176- : positiveTestDateInput ;
170+ const openDatePicker = useCallback (
171+ ( field ?: DateFieldKey ) => {
172+ const targetField = field ?? activeDateField ;
173+ if ( ! targetField ) return ;
174+ setActiveDateField ( targetField ) ;
175+ const dateForField =
176+ targetField === "dueDate"
177+ ? dueDateInput
178+ : targetField === "lastPeriod"
179+ ? lastPeriodInput
180+ : targetField === "conceptionDate"
181+ ? conceptionDateInput
182+ : positiveTestDateInput ;
177183
178- if ( Platform . OS === "android" ) {
179- DateTimePickerAndroid . open ( {
180- value : dateForField ,
181- mode : "date" ,
182- minimumDate : targetField === "dueDate" ? dueDateMin : undefined ,
183- maximumDate : targetField === "dueDate" ? dueDateMax : today ,
184- onChange : onDateChange ,
185- } ) ;
186- return ;
187- }
188- setShowDatePicker ( ( prev ) => ! prev ) ;
189- } , [
190- activeDateField ,
191- conceptionDateInput ,
192- dueDateInput ,
193- dueDateMax ,
194- dueDateMin ,
195- lastPeriodInput ,
196- onDateChange ,
197- positiveTestDateInput ,
198- today ,
199- ] ) ;
184+ if ( Platform . OS === "android" ) {
185+ DateTimePickerAndroid . open ( {
186+ value : dateForField ,
187+ mode : "date" ,
188+ minimumDate : targetField === "dueDate" ? dueDateMin : undefined ,
189+ maximumDate : targetField === "dueDate" ? dueDateMax : today ,
190+ onChange : onDateChange ,
191+ } ) ;
192+ return ;
193+ }
194+ setShowDatePicker ( ( prev ) => ! prev ) ;
195+ } ,
196+ [
197+ activeDateField ,
198+ conceptionDateInput ,
199+ dueDateInput ,
200+ dueDateMax ,
201+ dueDateMin ,
202+ lastPeriodInput ,
203+ onDateChange ,
204+ positiveTestDateInput ,
205+ today ,
206+ ] ,
207+ ) ;
200208
201209 const handleSaveSetup = useCallback ( async ( ) => {
202210 if ( ! setupMethod ) {
0 commit comments