From 7fa96b86e375fefd11e22288e125257130abd2b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9=20Landr=C3=A9?= <68849024+DevNono@users.noreply.github.com> Date: Thu, 3 Oct 2024 15:19:31 +0200 Subject: [PATCH] fix: update tickets based on settings (#396) * fix: update tickets based on settings * fix: pnpm lint --------- Co-authored-by: Antoine Dufils --- src/app/(dashboard)/admin/settings/page.tsx | 3 +++ .../(dashboard)/dashboard/account/page.tsx | 24 ++++++++++--------- src/modules/settings.ts | 2 ++ src/types.ts | 1 + 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/app/(dashboard)/admin/settings/page.tsx b/src/app/(dashboard)/admin/settings/page.tsx index ec0c44c3..9d9ae9e8 100644 --- a/src/app/(dashboard)/admin/settings/page.tsx +++ b/src/app/(dashboard)/admin/settings/page.tsx @@ -9,6 +9,7 @@ const Settings = () => { const loginAllowed = useAppSelector((state) => state.settings.login); const shopAllowed = useAppSelector((state) => state.settings.shop); const trombiAllowed = useAppSelector((state) => state.settings.trombi); + const ticketsAllowed = useAppSelector((state) => state.settings.tickets); const changeSetting = (setting: string, value: boolean) => { // TODO: add confirmation modal @@ -18,12 +19,14 @@ const Settings = () => { const changeLogin = (value: boolean) => changeSetting('login', value); const changeShop = (value: boolean) => changeSetting('shop', value); const changeTrombi = (value: boolean) => changeSetting('trombi', value); + const changeTickets = (value: boolean) => changeSetting('tickets', value); return (
+
); }; diff --git a/src/app/(dashboard)/dashboard/account/page.tsx b/src/app/(dashboard)/dashboard/account/page.tsx index 547bc42b..b5b6b59a 100644 --- a/src/app/(dashboard)/dashboard/account/page.tsx +++ b/src/app/(dashboard)/dashboard/account/page.tsx @@ -15,6 +15,7 @@ const Account = () => { const dispatch = useAppDispatch(); const user = useAppSelector((state) => state.login.user)!; const team = useAppSelector((state) => state.team.team); + const areTicketsAllowed = useAppSelector((state) => state.settings.tickets); const [firstname, setFirstname] = useState(user.firstname); const [lastname, setLastname] = useState(user.lastname); @@ -36,7 +37,8 @@ const Account = () => { useEffect(() => { setDisplayTicket( - (user.hasPaid && + (areTicketsAllowed && + user.hasPaid && ((user.type !== UserType.coach && user.type !== UserType.player) || (team && team.lockedAt))) as boolean, ); }, [team]); @@ -79,15 +81,15 @@ const Account = () => { } }; - // const downloadTicket = async () => { - // const response = await API.get(`tickets`); + const downloadTicket = async () => { + const response = await API.get(`tickets`); - // const data = window.URL.createObjectURL(response); - // const link = document.createElement('a'); - // link.href = data; - // link.download = 'Billet UTT Arena 2024.pdf'; - // link.click(); - // }; + const data = window.URL.createObjectURL(response); + const link = document.createElement('a'); + link.href = data; + link.download = 'Billet UTT Arena 2024.pdf'; + link.click(); + }; return (
@@ -153,7 +155,7 @@ const Account = () => {
- {/* {displayTicket && ( + {displayTicket && (
Mon billet @@ -162,7 +164,7 @@ const Account = () => { Télécharger mon billet </Button> </div> - )} */} + )} </div> {displayTicket && ( <div className="to-bring"> diff --git a/src/modules/settings.ts b/src/modules/settings.ts index 5f9ec2ee..d3127374 100644 --- a/src/modules/settings.ts +++ b/src/modules/settings.ts @@ -7,6 +7,7 @@ const initialState: Settings = { login: false, shop: false, trombi: false, + tickets: false, }; export const settingsSlice = createSlice({ @@ -34,6 +35,7 @@ export const fetchSettings = (): AppThunk => async (dispatch) => { login: false, shop: false, trombi: false, + tickets: false, }), ); } diff --git a/src/types.ts b/src/types.ts index 462fb760..f4d63ece 100644 --- a/src/types.ts +++ b/src/types.ts @@ -17,6 +17,7 @@ export interface Settings { login: boolean; shop: boolean; trombi: boolean; + tickets: boolean; } export interface RegisterUser {