Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
HanMoeHtet committed Nov 15, 2021
1 parent 2682e43 commit 7b42942
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 63 deletions.
26 changes: 26 additions & 0 deletions src/composables/Page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import * as React from 'react';
import { endLoading, startLoading } from '../services/nprogress';
import { usePage } from './usePage';

interface PageProps {}

const Page: React.FC<PageProps> = ({ children }) => {
const { onLoad } = usePage();

const render = React.useMemo(() => {
return <>{children}</>;
}, [children]);

React.useEffect(() => {
onLoad(render);
}, [onLoad, render]);

React.useEffect(() => {
endLoading();
return () => startLoading();
}, []);

return render;
};

export default Page;
23 changes: 5 additions & 18 deletions src/pages/About.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
import * as React from 'react';
import { Link } from 'react-router-dom';
import { ModalContext } from '../composables/ModalProvider';
import { usePage } from '../composables/usePage';
import { endLoading, startLoading } from '../services/nprogress';
import Page from '../composables/Page';

interface AboutProps {}

const About: React.FC<AboutProps> = () => {
const { onLoad } = usePage();
const { isOpen, updateIsOpen } = React.useContext(ModalContext);

const toggleModal = React.useCallback(() => {
updateIsOpen(!isOpen);
}, [isOpen, updateIsOpen]);

const render = React.useMemo(() => {
return (
return (
<Page>
<div>
<Link to="/">Home</Link>
<Link to="/contact">Contact</Link>
Expand All @@ -28,19 +26,8 @@ const About: React.FC<AboutProps> = () => {
Toggle Modal
</button>
</div>
);
}, [toggleModal]);

React.useEffect(() => {
onLoad(render);
}, [onLoad, render]);

React.useEffect(() => {
endLoading();
return () => startLoading();
}, []);

return render;
</Page>
);
};

export default About;
33 changes: 6 additions & 27 deletions src/pages/Contact.tsx
Original file line number Diff line number Diff line change
@@ -1,48 +1,27 @@
import * as React from 'react';
import { Link } from 'react-router-dom';
import { ModalContext } from '../composables/ModalProvider';
import { usePage } from '../composables/usePage';
import { endLoading, startLoading } from '../services/nprogress';
import Page from '../composables/Page';

interface ContactProps {}

const Contact: React.FC<ContactProps> = () => {
const { onLoad } = usePage();
const { isOpen, updateIsOpen } = React.useContext(ModalContext);

const toggleModal = React.useCallback(() => {
console.log(isOpen);
updateIsOpen(!isOpen);
}, [isOpen, updateIsOpen]);

const render = React.useMemo(() => {
return (
return (
<Page>
<div>
<Link to="/">Home</Link>
<Link to="/about">About</Link>
<h1>Contact</h1>
<button
onClick={() => {
toggleModal();
console.log('hello');
}}
>
Toggle Modal
</button>
<button onClick={toggleModal}>Toggle Modal</button>
</div>
);
}, [toggleModal]);

React.useEffect(() => {
onLoad(render);
}, [onLoad, render]);

React.useEffect(() => {
endLoading();
return () => startLoading();
}, []);

return render;
</Page>
);
};

export default Contact;
23 changes: 5 additions & 18 deletions src/pages/Home.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
import * as React from 'react';
import { Link } from 'react-router-dom';
import { ModalContext } from '../composables/ModalProvider';
import { usePage } from '../composables/usePage';
import { endLoading, startLoading } from '../services/nprogress';
import Page from '../composables/Page';

interface HomeProps {}

const Home: React.FC<HomeProps> = () => {
const { onLoad } = usePage();
const { isOpen, updateIsOpen } = React.useContext(ModalContext);

const toggleModal = React.useCallback(() => {
updateIsOpen(!isOpen);
}, [isOpen, updateIsOpen]);

const render = React.useMemo(() => {
return (
return (
<Page>
<div>
<Link to="/about">About</Link>
<Link to="/contact">Contact</Link>
Expand All @@ -28,19 +26,8 @@ const Home: React.FC<HomeProps> = () => {
Toggle Modal
</button>
</div>
);
}, [toggleModal]);

React.useEffect(() => {
onLoad(render);
}, [onLoad, render]);

React.useEffect(() => {
endLoading();
return () => startLoading();
}, []);

return render;
</Page>
);
};

export default Home;

0 comments on commit 7b42942

Please sign in to comment.