import AddIcon from "@mui/icons-material/Add"; import ConfirmationNumberIcon from "@mui/icons-material/ConfirmationNumber"; import { Button, IconButton, Tooltip, Typography } from "@mui/material"; import React from "react"; import { Family, FamilyApi } from "../api/FamilyApi"; import { CreateFamilyDialog } from "../dialogs/CreateFamilyDialog"; import { JoinFamilyDialog } from "../dialogs/JoinFamilyDialog"; import { AsyncWidget } from "../widgets/AsyncWidget"; export function FamiliesListRoute(): React.ReactElement { const loadKey = React.useRef(1); const [families, setFamilies] = React.useState(null); const [createFamily, setCreateFamily] = React.useState(false); const [joinFamily, setJoinFamily] = React.useState(false); const load = async () => { setFamilies(await FamilyApi.GetList()); }; const reload = () => { loadKey.current += 1; }; const onRequestCreateFamily = async () => { setCreateFamily(true); }; const onRequestJoinFamily = async () => { setJoinFamily(true); }; return ( ( <> {families!!.length === 0 ? ( ) : ( )} {/** Create family dialog anchor */} setCreateFamily(false)} onCreated={() => { setCreateFamily(false); reload(); }} /> {/** Join family dialog anchor */} setJoinFamily(false)} onJoined={() => { setJoinFamily(false); reload(); }} /> )} /> ); } function NoFamilyWidget(p: { onRequestCreateFamily: () => void; onRequestJoinFamily: () => void; }): React.ReactElement { return (
Vous n'appartenez à aucune famille !
); } function NoFamilyButton(p: { label: string; onClick: () => void; }): React.ReactElement { return ( ); } function HasFamilysWidget(p: { families: Family[]; onRequestCreateFamily: () => void; onRequestJoinFamily: () => void; }): React.ReactElement { return (
Mes familles
TODO list of families
); }