Add modal state provider, replace usage except methods (#1833)
* Add modal state provider, replace usage except methods * Replace easy spots * Fix sticky spots * Replace final usages * Memorize context objects * Add more warnings
This commit is contained in:
parent
5eadadffbf
commit
f18b15241a
70 changed files with 634 additions and 498 deletions
|
@ -46,6 +46,7 @@ import Clipboard from '@react-native-clipboard/clipboard'
|
|||
import {makeProfileLink} from 'lib/routes/links'
|
||||
import {AccountDropdownBtn} from 'view/com/util/AccountDropdownBtn'
|
||||
import {logger} from '#/logger'
|
||||
import {useModalControls} from '#/state/modals'
|
||||
import {
|
||||
useSetMinimalShellMode,
|
||||
useColorMode,
|
||||
|
@ -82,6 +83,7 @@ export const SettingsScreen = withAuthRequired(
|
|||
const [debugHeaderEnabled, toggleDebugHeader] = useDebugHeaderSetting(
|
||||
store.agent,
|
||||
)
|
||||
const {openModal} = useModalControls()
|
||||
|
||||
const primaryBg = useCustomPalette<ViewStyle>({
|
||||
light: {backgroundColor: colors.blue0},
|
||||
|
@ -117,7 +119,7 @@ export const SettingsScreen = withAuthRequired(
|
|||
|
||||
const onPressChangeHandle = React.useCallback(() => {
|
||||
track('Settings:ChangeHandleButtonClicked')
|
||||
store.shell.openModal({
|
||||
openModal({
|
||||
name: 'change-handle',
|
||||
onChanged() {
|
||||
setIsSwitching(true)
|
||||
|
@ -135,12 +137,12 @@ export const SettingsScreen = withAuthRequired(
|
|||
)
|
||||
},
|
||||
})
|
||||
}, [track, store, setIsSwitching])
|
||||
}, [track, store, openModal, setIsSwitching])
|
||||
|
||||
const onPressInviteCodes = React.useCallback(() => {
|
||||
track('Settings:InvitecodesButtonClicked')
|
||||
store.shell.openModal({name: 'invite-codes'})
|
||||
}, [track, store])
|
||||
openModal({name: 'invite-codes'})
|
||||
}, [track, openModal])
|
||||
|
||||
const onPressLanguageSettings = React.useCallback(() => {
|
||||
navigation.navigate('LanguageSettings')
|
||||
|
@ -152,8 +154,8 @@ export const SettingsScreen = withAuthRequired(
|
|||
}, [track, store])
|
||||
|
||||
const onPressDeleteAccount = React.useCallback(() => {
|
||||
store.shell.openModal({name: 'delete-account'})
|
||||
}, [store])
|
||||
openModal({name: 'delete-account'})
|
||||
}, [openModal])
|
||||
|
||||
const onPressResetPreferences = React.useCallback(async () => {
|
||||
await store.preferences.reset()
|
||||
|
@ -229,8 +231,7 @@ export const SettingsScreen = withAuthRequired(
|
|||
<Text type="lg" style={pal.text}>
|
||||
{store.session.currentSession?.email}{' '}
|
||||
</Text>
|
||||
<Link
|
||||
onPress={() => store.shell.openModal({name: 'change-email'})}>
|
||||
<Link onPress={() => openModal({name: 'change-email'})}>
|
||||
<Text type="lg" style={pal.link}>
|
||||
Change
|
||||
</Text>
|
||||
|
@ -240,10 +241,7 @@ export const SettingsScreen = withAuthRequired(
|
|||
<Text type="lg-medium" style={pal.text}>
|
||||
Birthday:{' '}
|
||||
</Text>
|
||||
<Link
|
||||
onPress={() =>
|
||||
store.shell.openModal({name: 'birth-date-settings'})
|
||||
}>
|
||||
<Link onPress={() => openModal({name: 'birth-date-settings'})}>
|
||||
<Text type="lg" style={pal.link}>
|
||||
Show
|
||||
</Text>
|
||||
|
@ -649,6 +647,7 @@ const EmailConfirmationNotice = observer(
|
|||
const palInverted = usePalette('inverted')
|
||||
const store = useStores()
|
||||
const {isMobile} = useWebMediaQueries()
|
||||
const {openModal} = useModalControls()
|
||||
|
||||
if (!store.session.emailNeedsConfirmation) {
|
||||
return null
|
||||
|
@ -684,7 +683,7 @@ const EmailConfirmationNotice = observer(
|
|||
accessibilityRole="button"
|
||||
accessibilityLabel="Verify my email"
|
||||
accessibilityHint=""
|
||||
onPress={() => store.shell.openModal({name: 'verify-email'})}>
|
||||
onPress={() => openModal({name: 'verify-email'})}>
|
||||
<FontAwesomeIcon
|
||||
icon="envelope"
|
||||
color={palInverted.colors.text}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue