Skip to content

Commit

Permalink
fix: 🐛 Store childs personalIdNumbers in settings
Browse files Browse the repository at this point in the history
  • Loading branch information
whyer committed Dec 7, 2021
1 parent 86dfb4f commit cc3fd86
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 9 deletions.
3 changes: 3 additions & 0 deletions apps/skolplattformen-app/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ const reporter: Reporter | undefined = __DEV__
if (__DEV__) {
// eslint-disable-next-line @typescript-eslint/no-var-requires
const DevMenu = require('react-native-dev-menu')
DevMenu.addItem('Clear AsyncStorage from all contents', () =>
AsyncStorage.clear().then(() => logAsyncStorage())
)
DevMenu.addItem('Log AsyncStorage contents', () => logAsyncStorage())
}

Expand Down
22 changes: 13 additions & 9 deletions apps/skolplattformen-app/components/absence.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import { NativeStackNavigationOptions } from 'react-native-screens/native-stack'
import * as Yup from 'yup'
import { defaultStackStyling } from '../design/navigationThemes'
import usePersonalStorage from '../hooks/usePersonalStorage'
import useSettingsStorage from '../hooks/useSettingsStorage'
import { Layout as LayoutStyle, Sizing, Typography } from '../styles'
import { studentName } from '../utils/peopleHelpers'
import { useSMS } from '../utils/SMS'
Expand Down Expand Up @@ -70,12 +71,11 @@ const Absence = () => {
const route = useRoute<AbsenceRouteProps>()
const { sendSMS } = useSMS()
const { child } = route.params
const [personalIdFromStorage, setPersonalIdInStorage] = usePersonalStorage(
user,
`@childssn.${child.id}`,
''
)
const [personalIdentityNumber, setPersonalIdentityNumber] = React.useState('')
const [personalIdsFromStorage, setPersonalIdInStorage] = useSettingsStorage(
'childPersonalIdentityNumber'
)
const personalIdKey = `@childPersonalIdNumber.${child.id}`
const minumumDate = moment().hours(8).minute(0)
const maximumDate = moment().hours(17).minute(0)
const styles = useStyleSheet(themedStyles)
Expand All @@ -96,15 +96,19 @@ const Absence = () => {
)
}

setPersonalIdInStorage(values.personalIdentityNumber)
setPersonalIdentityNumber(values.personalIdentityNumber)
const toStore = {
...personalIdsFromStorage,
...{ [personalIdKey]: personalIdNumber },
}
setPersonalIdInStorage(toStore)
},
[sendSMS, setPersonalIdInStorage]
[personalIdKey, personalIdsFromStorage, sendSMS, setPersonalIdInStorage]
)

React.useEffect(() => {
const personalIdFromStorage = personalIdsFromStorage[personalIdKey] || ''
setPersonalIdentityNumber(personalIdFromStorage || '')
}, [child, personalIdFromStorage, user])
}, [child, personalIdKey, personalIdsFromStorage, user])

const initialValues: AbsenceFormValues = {
displayStartTimePicker: false,
Expand Down
3 changes: 3 additions & 0 deletions apps/skolplattformen-app/hooks/useSettingsStorage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import { useCallback } from 'react'
import { proxy, subscribe, useSnapshot } from 'valtio'
import AppStorage from '../services/appStorage'

export type ChildPersonalNumbers = Record<string, string>

export const settingsState = proxy({
hydrated: false,
settings: {
Expand All @@ -12,6 +14,7 @@ export const settingsState = proxy({
currentSchoolPlatform: 'stockholm-skolplattformen' as
| 'stockholm-skolplattformen'
| 'goteborg-hjarntorget',
childPersonalIdentityNumber: {} as ChildPersonalNumbers,
},
})

Expand Down

0 comments on commit cc3fd86

Please sign in to comment.