Skip to content

Commit

Permalink
Merge pull request #1071 from dis-moi/feat/triggerWelcomeBulle
Browse files Browse the repository at this point in the history
feat(onboarding): trigger welcome bulle
  • Loading branch information
gregoirelacoste authored Jul 13, 2021
2 parents 0eff3e0 + d6aa712 commit 600a6fc
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 24 deletions.
28 changes: 28 additions & 0 deletions src/app/profiles/App/OnBoarding/LazyOnBoarding.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import React, { Suspense } from 'react';
import { TriggerWelcomeBulle } from './withConnect';

const OnBoarding = React.lazy(() =>
import(
/* webpackChunkName: "OnBoarding" */ 'app/profiles/App/OnBoarding/OnBoarding'
)
);

interface LazyOnBoarding {
isOnBoarding: boolean;
triggerWelcomeBulle: TriggerWelcomeBulle;
}

const LazyOnBoarding = ({
isOnBoarding,
triggerWelcomeBulle
}: LazyOnBoarding) => {
if (!isOnBoarding) return null;

return (
<Suspense fallback={<>Chargement...</>}>
<OnBoarding triggerWelcomeBulle={triggerWelcomeBulle} />
</Suspense>
);
};

export default LazyOnBoarding;
12 changes: 10 additions & 2 deletions src/app/profiles/App/OnBoarding/OnBoarding.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,22 @@ import Loader, { ProgressBar } from './components/Loader';
import Evolution from './components/Evolution';
import Modal from './components/Modal';
import { Step1, Step2, Step3 } from './Steps';
import { TriggerWelcomeBulle } from './withConnect';

export type CloseFunction = () => void;

const OnBoarding = () => {
interface OnBoarding {
triggerWelcomeBulle: TriggerWelcomeBulle;
}

const OnBoarding = ({ triggerWelcomeBulle }: OnBoarding) => {
const [currentStep, setStep] = useState(0);
const [open, setOpen] = useState(true);

const close = () => setOpen(false);
const close = () => {
setOpen(false);
triggerWelcomeBulle();
};
const next = () => setStep(currentStep + 1);
const prev = () => setStep(currentStep - 1);
if (!open) return null;
Expand Down
25 changes: 3 additions & 22 deletions src/app/profiles/App/OnBoarding/index.tsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,4 @@
import React, { Suspense } from 'react';
import LazyOnBoarding from './LazyOnBoarding';
import withConnect from './withConnect';

const OnBoarding = React.lazy(() =>
import(
/* webpackChunkName: "OnBoarding" */ 'app/profiles/App/OnBoarding/OnBoarding'
)
);

const REDIRECTED_PATH = 'pk_campaign=installed';
export const isOnboarding = () =>
window.location.search.includes(REDIRECTED_PATH);

const LazyOnBoarding = () => {
if (!isOnboarding()) return null;

return (
<Suspense fallback={<>Chargement...</>}>
<OnBoarding />
</Suspense>
);
};

export default LazyOnBoarding;
export default withConnect(LazyOnBoarding);
16 changes: 16 additions & 0 deletions src/app/profiles/App/OnBoarding/withConnect.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { connect } from 'react-redux';
import { push } from 'connected-react-router';
import { ProfilesState } from '../../store/reducers';

const SEARCH_PATH = '?pk_campaign=installed';

const mapStateToProps = (state: ProfilesState) => ({
isOnBoarding: state.router.location.search === SEARCH_PATH
});

export type TriggerWelcomeBulle = () => void;
const mapDispatchToProps = {
triggerWelcomeBulle: () => push(SEARCH_PATH + '-contributors-list')
};

export default connect(mapStateToProps, mapDispatchToProps);

0 comments on commit 600a6fc

Please sign in to comment.