diff --git a/src/components/VolunteerBoard/Board.tsx b/src/components/VolunteerBoard/Board.tsx new file mode 100644 index 0000000..9f5251b --- /dev/null +++ b/src/components/VolunteerBoard/Board.tsx @@ -0,0 +1,15 @@ +import { FC, memo } from "react" +import DayWishes from "./DayWishes/DayWishes" +import DayWishesFormModal from "./DayWishesForm/DayWishesFormModal" +import DDayInformations from "./DDayInformations/DDaysInformations" +import withUserConnected from "../../utils/withUserConnected" + +const Board: FC = (): JSX.Element => ( +
+ + + +
+) + +export default memo(withUserConnected(Board)) diff --git a/src/pages/Board/Board.tsx b/src/pages/Board/Board.tsx index e6b7587..710af0b 100644 --- a/src/pages/Board/Board.tsx +++ b/src/pages/Board/Board.tsx @@ -5,10 +5,8 @@ import { useSelector } from "react-redux" import { AppThunk } from "../../store" import { fetchVolunteerDayWishesSetIfNeed } from "../../store/volunteerDayWishesSet" import { selectUserJwtToken } from "../../store/auth" -import DDayInformations from "../../components/VolunteerBoard/DDayInformations/DDaysInformations" -import DayWishes from "../../components/VolunteerBoard/DayWishes/DayWishes" -import DayWishesFormModal from "../../components/VolunteerBoard/DayWishesForm/DayWishesFormModal" import Page from "../../components/Page/Page" +import Board from "../../components/VolunteerBoard/Board" export type Props = RouteComponentProps @@ -19,9 +17,7 @@ const BoardPage: FC = (): JSX.Element => { if (jwtToken) { return ( - - - + ) } diff --git a/src/utils/withUserConnected.tsx b/src/utils/withUserConnected.tsx new file mode 100644 index 0000000..c05d5e7 --- /dev/null +++ b/src/utils/withUserConnected.tsx @@ -0,0 +1,12 @@ +import React from "react" +import { useSelector } from "react-redux" +import { isUserConnected } from "../store/auth" + +function withUserConnected(Component: React.ComponentType) { + return (props: T): JSX.Element | null => { + const connected = useSelector(isUserConnected) + return connected ? : null + } +} + +export default withUserConnected