soapbox/src/actions/onboarding.ts

41 wiersze
1.1 KiB
TypeScript
Czysty Zwykły widok Historia

2022-05-02 20:55:52 +00:00
const ONBOARDING_START = 'ONBOARDING_START';
const ONBOARDING_END = 'ONBOARDING_END';
2022-04-12 13:51:28 +00:00
2022-05-02 20:55:52 +00:00
const ONBOARDING_LOCAL_STORAGE_KEY = 'soapbox:onboarding';
2022-04-12 13:51:28 +00:00
2022-05-02 20:55:52 +00:00
type OnboardingStartAction = {
type: typeof ONBOARDING_START;
2022-05-02 20:55:52 +00:00
}
type OnboardingEndAction = {
type: typeof ONBOARDING_END;
2022-05-02 20:55:52 +00:00
}
export type OnboardingActions = OnboardingStartAction | OnboardingEndAction
const checkOnboardingStatus = () => (dispatch: React.Dispatch<OnboardingActions>) => {
const needsOnboarding = localStorage.getItem(ONBOARDING_LOCAL_STORAGE_KEY) === '1';
if (needsOnboarding) {
dispatch({ type: ONBOARDING_START });
}
};
const startOnboarding = () => (dispatch: React.Dispatch<OnboardingActions>) => {
localStorage.setItem(ONBOARDING_LOCAL_STORAGE_KEY, '1');
dispatch({ type: ONBOARDING_START });
};
const endOnboarding = () => (dispatch: React.Dispatch<OnboardingActions>) => {
localStorage.removeItem(ONBOARDING_LOCAL_STORAGE_KEY);
dispatch({ type: ONBOARDING_END });
2022-04-12 13:51:28 +00:00
};
export {
2022-05-02 20:55:52 +00:00
ONBOARDING_END,
ONBOARDING_START,
checkOnboardingStatus,
2022-04-12 13:51:28 +00:00
endOnboarding,
2022-05-02 20:55:52 +00:00
startOnboarding,
2022-04-12 13:51:28 +00:00
};