all repos — caroster @ 9266a128ea9415a64c55fdc8e98990f815e0be66

[Octree] Group carpool to your event https://caroster.io

feat: 🚸 Enable to skip tour
Simon Mulquin simon@octree.ch
Fri, 11 Mar 2022 12:22:26 +0000
commit

9266a128ea9415a64c55fdc8e98990f815e0be66

parent

3cce17ca690426c1c205c1239652172d5e83e9fb

M frontend/containers/EventBar/index.tsxfrontend/containers/EventBar/index.tsx

@@ -73,7 +73,10 @@ },

{divider: true}, { label: t('menu.tour'), - onClick: onTourRestart, + onClick: () => { + setAnchorEl(null); + onTourRestart(); + }, id: 'TourTab', }, ];

@@ -92,7 +95,10 @@ },

{divider: true}, { label: t('menu.tour'), - onClick: onTourRestart, + onClick: () => { + setAnchorEl(null); + onTourRestart(); + }, id: 'TourTab', }, ];

@@ -120,7 +126,11 @@ >

<Toolbar> <div className={classes.name}> <Link href={settings?.['about_link'] || ''}> - <img className={classes.logo} src="/assets/Logo_in_beta.svg" alt="Logo" /> + <img + className={classes.logo} + src="/assets/Logo_in_beta.svg" + alt="Logo" + /> </Link> <Typography variant="h6" noWrap id="MenuHeaderTitle"> {event.name}
M frontend/containers/WelcomeDialog/index.tsxfrontend/containers/WelcomeDialog/index.tsx

@@ -19,7 +19,7 @@

const onStartTour = () => setTour({showWelcome: false, run: true, step: 0, prev: -1}); - const onCancel = () => setTour({showWelcome: false}); + const onCancel = () => setTour({showWelcome: false}); return ( <Dialog open={showWelcome} fullWidth maxWidth="xs">
M frontend/hooks/useTour.tsfrontend/hooks/useTour.ts

@@ -65,17 +65,6 @@ {content: t`tour.user.step4`, target: '.tour_event_share'},

].map(currentStep => ({...currentStep, ...STEP_SETTINGS})); }, [isCreator]); - // Init tour - useEffect(() => { - if (!isReady) return; - let hasOnboarded = profile?.onboardingUser || onboardingUser; - if (isCreator) - hasOnboarded = profile?.onboardingCreator || onboardingCreator; - const hasSteps = steps.length > 0; - const showWelcome = hasSteps && !hasOnboarded; - setTour({showWelcome}); - }, [steps, isCreator, onboardingCreator, onboardingUser, profile, isReady]); - // On step change : wait for the UI a little and run it useEffect(() => { let timer;
M frontend/stores/useTourStore.tsfrontend/stores/useTourStore.ts

@@ -6,19 +6,29 @@ isCreator: boolean | null;

run: boolean; step: number; prev: number; -} +}; type State = Tour & { setTour: (tour: Partial<Tour>) => void; }; +const ONBOARDING_STORAGE_KEY = 'showWelcome'; +let persistedShowWelcome = null; +if(typeof localStorage !== 'undefined') + persistedShowWelcome = JSON.parse(localStorage.getItem(ONBOARDING_STORAGE_KEY)); + const useTourStore = create<State>(set => ({ - showWelcome: false, + showWelcome: typeof persistedShowWelcome === 'boolean' ? persistedShowWelcome : true, isCreator: null, run: false, step: -1, prev: -1, - setTour: tour => set(s => ({...s, ...tour})), + setTour: tour => { + if (typeof tour.showWelcome != 'undefined') { + localStorage.setItem('showWelcome', String(tour.showWelcome)); + } + set(s => ({...s, ...tour})); + }, })); export default useTourStore;