fix: 🐛 Store childs personalIdNumbers in settings
This commit is contained in:
parent
86dfb4fb8d
commit
cc3fd8670c
|
@ -26,6 +26,9 @@ const reporter: Reporter | undefined = __DEV__
|
||||||
if (__DEV__) {
|
if (__DEV__) {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||||
const DevMenu = require('react-native-dev-menu')
|
const DevMenu = require('react-native-dev-menu')
|
||||||
|
DevMenu.addItem('Clear AsyncStorage from all contents', () =>
|
||||||
|
AsyncStorage.clear().then(() => logAsyncStorage())
|
||||||
|
)
|
||||||
DevMenu.addItem('Log AsyncStorage contents', () => logAsyncStorage())
|
DevMenu.addItem('Log AsyncStorage contents', () => logAsyncStorage())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ import { NativeStackNavigationOptions } from 'react-native-screens/native-stack'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
import { defaultStackStyling } from '../design/navigationThemes'
|
import { defaultStackStyling } from '../design/navigationThemes'
|
||||||
import usePersonalStorage from '../hooks/usePersonalStorage'
|
import usePersonalStorage from '../hooks/usePersonalStorage'
|
||||||
|
import useSettingsStorage from '../hooks/useSettingsStorage'
|
||||||
import { Layout as LayoutStyle, Sizing, Typography } from '../styles'
|
import { Layout as LayoutStyle, Sizing, Typography } from '../styles'
|
||||||
import { studentName } from '../utils/peopleHelpers'
|
import { studentName } from '../utils/peopleHelpers'
|
||||||
import { useSMS } from '../utils/SMS'
|
import { useSMS } from '../utils/SMS'
|
||||||
|
@ -70,12 +71,11 @@ const Absence = () => {
|
||||||
const route = useRoute<AbsenceRouteProps>()
|
const route = useRoute<AbsenceRouteProps>()
|
||||||
const { sendSMS } = useSMS()
|
const { sendSMS } = useSMS()
|
||||||
const { child } = route.params
|
const { child } = route.params
|
||||||
const [personalIdFromStorage, setPersonalIdInStorage] = usePersonalStorage(
|
|
||||||
user,
|
|
||||||
`@childssn.${child.id}`,
|
|
||||||
''
|
|
||||||
)
|
|
||||||
const [personalIdentityNumber, setPersonalIdentityNumber] = React.useState('')
|
const [personalIdentityNumber, setPersonalIdentityNumber] = React.useState('')
|
||||||
|
const [personalIdsFromStorage, setPersonalIdInStorage] = useSettingsStorage(
|
||||||
|
'childPersonalIdentityNumber'
|
||||||
|
)
|
||||||
|
const personalIdKey = `@childPersonalIdNumber.${child.id}`
|
||||||
const minumumDate = moment().hours(8).minute(0)
|
const minumumDate = moment().hours(8).minute(0)
|
||||||
const maximumDate = moment().hours(17).minute(0)
|
const maximumDate = moment().hours(17).minute(0)
|
||||||
const styles = useStyleSheet(themedStyles)
|
const styles = useStyleSheet(themedStyles)
|
||||||
|
@ -96,15 +96,19 @@ const Absence = () => {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
setPersonalIdInStorage(values.personalIdentityNumber)
|
const toStore = {
|
||||||
setPersonalIdentityNumber(values.personalIdentityNumber)
|
...personalIdsFromStorage,
|
||||||
|
...{ [personalIdKey]: personalIdNumber },
|
||||||
|
}
|
||||||
|
setPersonalIdInStorage(toStore)
|
||||||
},
|
},
|
||||||
[sendSMS, setPersonalIdInStorage]
|
[personalIdKey, personalIdsFromStorage, sendSMS, setPersonalIdInStorage]
|
||||||
)
|
)
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
|
const personalIdFromStorage = personalIdsFromStorage[personalIdKey] || ''
|
||||||
setPersonalIdentityNumber(personalIdFromStorage || '')
|
setPersonalIdentityNumber(personalIdFromStorage || '')
|
||||||
}, [child, personalIdFromStorage, user])
|
}, [child, personalIdKey, personalIdsFromStorage, user])
|
||||||
|
|
||||||
const initialValues: AbsenceFormValues = {
|
const initialValues: AbsenceFormValues = {
|
||||||
displayStartTimePicker: false,
|
displayStartTimePicker: false,
|
||||||
|
|
|
@ -2,6 +2,8 @@ import { useCallback } from 'react'
|
||||||
import { proxy, subscribe, useSnapshot } from 'valtio'
|
import { proxy, subscribe, useSnapshot } from 'valtio'
|
||||||
import AppStorage from '../services/appStorage'
|
import AppStorage from '../services/appStorage'
|
||||||
|
|
||||||
|
export type ChildPersonalNumbers = Record<string, string>
|
||||||
|
|
||||||
export const settingsState = proxy({
|
export const settingsState = proxy({
|
||||||
hydrated: false,
|
hydrated: false,
|
||||||
settings: {
|
settings: {
|
||||||
|
@ -12,6 +14,7 @@ export const settingsState = proxy({
|
||||||
currentSchoolPlatform: 'stockholm-skolplattformen' as
|
currentSchoolPlatform: 'stockholm-skolplattformen' as
|
||||||
| 'stockholm-skolplattformen'
|
| 'stockholm-skolplattformen'
|
||||||
| 'goteborg-hjarntorget',
|
| 'goteborg-hjarntorget',
|
||||||
|
childPersonalIdentityNumber: {} as ChildPersonalNumbers,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue