State layer cleanup: move alt-text-required into preferences and fix a bug in reminders (#1845)
* Move alt-text-required into preferences * Fix bug: reminders now using new onboarding state
This commit is contained in:
parent
5843e212c0
commit
5eadadffbf
8 changed files with 21 additions and 29 deletions
|
@ -1,48 +0,0 @@
|
|||
import React from 'react'
|
||||
import * as persisted from '#/state/persisted'
|
||||
|
||||
type StateContext = persisted.Schema['requireAltTextEnabled']
|
||||
type SetContext = (v: persisted.Schema['requireAltTextEnabled']) => void
|
||||
|
||||
const stateContext = React.createContext<StateContext>(
|
||||
persisted.defaults.requireAltTextEnabled,
|
||||
)
|
||||
const setContext = React.createContext<SetContext>(
|
||||
(_: persisted.Schema['requireAltTextEnabled']) => {},
|
||||
)
|
||||
|
||||
export function Provider({children}: React.PropsWithChildren<{}>) {
|
||||
const [state, setState] = React.useState(
|
||||
persisted.get('requireAltTextEnabled'),
|
||||
)
|
||||
|
||||
const setStateWrapped = React.useCallback(
|
||||
(requireAltTextEnabled: persisted.Schema['requireAltTextEnabled']) => {
|
||||
setState(requireAltTextEnabled)
|
||||
persisted.write('requireAltTextEnabled', requireAltTextEnabled)
|
||||
},
|
||||
[setState],
|
||||
)
|
||||
|
||||
React.useEffect(() => {
|
||||
return persisted.onUpdate(() => {
|
||||
setState(persisted.get('requireAltTextEnabled'))
|
||||
})
|
||||
}, [setStateWrapped])
|
||||
|
||||
return (
|
||||
<stateContext.Provider value={state}>
|
||||
<setContext.Provider value={setStateWrapped}>
|
||||
{children}
|
||||
</setContext.Provider>
|
||||
</stateContext.Provider>
|
||||
)
|
||||
}
|
||||
|
||||
export function useRequireAltTextEnabled() {
|
||||
return React.useContext(stateContext)
|
||||
}
|
||||
|
||||
export function useSetRequireAltTextEnabled() {
|
||||
return React.useContext(setContext)
|
||||
}
|
|
@ -3,7 +3,6 @@ import {Provider as DrawerOpenProvider} from './drawer-open'
|
|||
import {Provider as DrawerSwipableProvider} from './drawer-swipe-disabled'
|
||||
import {Provider as MinimalModeProvider} from './minimal-mode'
|
||||
import {Provider as ColorModeProvider} from './color-mode'
|
||||
import {Provider as AltTextRequiredProvider} from './alt-text-required'
|
||||
import {Provider as OnboardingProvider} from './onboarding'
|
||||
|
||||
export {useIsDrawerOpen, useSetDrawerOpen} from './drawer-open'
|
||||
|
@ -13,10 +12,6 @@ export {
|
|||
} from './drawer-swipe-disabled'
|
||||
export {useMinimalShellMode, useSetMinimalShellMode} from './minimal-mode'
|
||||
export {useColorMode, useSetColorMode} from './color-mode'
|
||||
export {
|
||||
useRequireAltTextEnabled,
|
||||
useSetRequireAltTextEnabled,
|
||||
} from './alt-text-required'
|
||||
export {useOnboardingState, useOnboardingDispatch} from './onboarding'
|
||||
|
||||
export function Provider({children}: React.PropsWithChildren<{}>) {
|
||||
|
@ -25,9 +20,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
|
|||
<DrawerSwipableProvider>
|
||||
<MinimalModeProvider>
|
||||
<ColorModeProvider>
|
||||
<OnboardingProvider>
|
||||
<AltTextRequiredProvider>{children}</AltTextRequiredProvider>
|
||||
</OnboardingProvider>
|
||||
<OnboardingProvider>{children}</OnboardingProvider>
|
||||
</ColorModeProvider>
|
||||
</MinimalModeProvider>
|
||||
</DrawerSwipableProvider>
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
import {OnboardingModel} from '../models/discovery/onboarding'
|
||||
import {SessionModel} from '../models/session'
|
||||
|
||||
export function shouldRequestEmailConfirmation(
|
||||
_session: SessionModel,
|
||||
_onboarding: OnboardingModel,
|
||||
) {
|
||||
export function shouldRequestEmailConfirmation(_session: SessionModel) {
|
||||
return false
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
import * as persisted from '#/state/persisted'
|
||||
import {OnboardingModel} from '../models/discovery/onboarding'
|
||||
import {SessionModel} from '../models/session'
|
||||
import {toHashCode} from 'lib/strings/helpers'
|
||||
import {isOnboardingActive} from './onboarding'
|
||||
|
||||
export function shouldRequestEmailConfirmation(
|
||||
session: SessionModel,
|
||||
onboarding: OnboardingModel,
|
||||
) {
|
||||
export function shouldRequestEmailConfirmation(session: SessionModel) {
|
||||
const sess = session.currentSession
|
||||
if (!sess) {
|
||||
return false
|
||||
|
@ -14,7 +11,7 @@ export function shouldRequestEmailConfirmation(
|
|||
if (sess.emailConfirmed) {
|
||||
return false
|
||||
}
|
||||
if (onboarding.isActive) {
|
||||
if (isOnboardingActive()) {
|
||||
return false
|
||||
}
|
||||
// only prompt once
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue