Skip to content

Commit

Permalink
feat: adding fully registered dialog
Browse files Browse the repository at this point in the history
  • Loading branch information
maximeroucher committed Jun 5, 2024
1 parent 0674bdf commit e78096c
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 1 deletion.
8 changes: 8 additions & 0 deletions src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ import { getDaysLeft } from "../utils/dateFormat";
import { WarningDialog } from "../components/custom/WarningDialog";
import { toast } from "../components/ui/use-toast";
import { StatusDialog } from "../components/custom/StatusDialog";
import { Button } from "../components/ui/button";
import { RegisteringCompleteDialog } from "../components/home/RegisteringCompleteDialog";

const Home = () => {
const { isTokenQueried, token } = useAuth();
Expand Down Expand Up @@ -99,6 +101,12 @@ const Home = () => {
}}
/>
)}
{team?.validation_progress === 100 && (
<RegisteringCompleteDialog
isOpened={isEndDialogOpened}
setIsOpened={setIsEndDialogOpened}
/>
)}
{isFetched && me === undefined && isOpened && user && (
<>
<CreateParticipant
Expand Down
1 change: 1 addition & 0 deletions src/components/custom/ParticipantField.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ export function ParticipantField<T extends ValueType>({
toast({
title: "Erreur",
description: "Impossible de télécharger le fichier",
variant: "destructive",
});
setIsFileLoading(false);
return;
Expand Down
2 changes: 1 addition & 1 deletion src/components/custom/StatusDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ interface StatusDialogProps {
isOpened: boolean;
setIsOpened: (value: boolean) => void;
title: string;
description: string;
description: string | JSX.Element;
width?: string;
callback: () => void;
status?: keyof typeof DialogStatus;
Expand Down
81 changes: 81 additions & 0 deletions src/components/home/RegisteringCompleteDialog.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import { useDocument } from "@/src/hooks/useDocument";
import { useInformation } from "@/src/hooks/useInformation";
import { useState } from "react";
import { StatusDialog } from "../custom/StatusDialog";
import { toast } from "../ui/use-toast";
import { useRouter } from "next/navigation";
import { LoadingButton } from "../custom/LoadingButton";

interface RegisteringCompleteDialogProps {
isOpened: boolean;
setIsOpened: (value: boolean) => void;
}

export const RegisteringCompleteDialog = ({
isOpened,
setIsOpened,
}: RegisteringCompleteDialogProps) => {
const [isFileLoading, setIsFileLoading] = useState(false);
const { information } = useInformation();
const { refetch, setDocumentId } = useDocument();
const router = useRouter();

function downloadRaidInformation(documentId: string) {
setIsFileLoading(true);
setDocumentId(documentId);
refetch().then((response) => {
const data = response.data;
if (!data) {
toast({
title: "Erreur",
description: "Impossible de télécharger le fichier",
variant: "destructive"
});
setIsFileLoading(false);
return;
}
const extension = data.type.split("/")[1];
const name = `Réglement_du_raid.${extension}`;
const url = window.URL.createObjectURL(new Blob([data]));
const link = document.createElement("a");
link.href = url;
link.setAttribute("download", name);
document.body.appendChild(link);
setIsFileLoading(false);
link.click();
});
}
return (
information && (
<StatusDialog
isOpened={isOpened}
setIsOpened={setIsOpened}
title="Inscription complète"
description={
<div className="space-y-2">
<div>Votre inscription est complète.</div>
<div>
Vous trouverez toutes les informations nécessaires dans le
document à télécharger ci-dessous.
</div>
<div>Bonne préparation et à très bientôt !</div>
<LoadingButton
className="w-full mt-6"
variant="outline"
onClick={(_) =>
downloadRaidInformation(information.raid_information_id!)
}
isLoading={isFileLoading}
label="Télécharger le document"
/>
</div>
}
status="SUCCESS"
callback={() => {
setIsOpened(false);
router.replace("/");
}}
/>
)
);
};

0 comments on commit e78096c

Please sign in to comment.