From b0f96c33a5c6e2d144ffd6aa5ae5d47f08482f7a Mon Sep 17 00:00:00 2001 From: Ardeman Date: Sun, 2 Mar 2025 15:46:44 +0800 Subject: [PATCH] feat: enhance SuccessModal and conditional rendering for login and subscription options --- app/components/popup/success-modal.tsx | 97 +++++++++++++++----------- 1 file changed, 56 insertions(+), 41 deletions(-) diff --git a/app/components/popup/success-modal.tsx b/app/components/popup/success-modal.tsx index 1a02e51..d69b4df 100644 --- a/app/components/popup/success-modal.tsx +++ b/app/components/popup/success-modal.tsx @@ -6,10 +6,13 @@ import { DialogTitle, } from '@headlessui/react' import type { ReactNode } from 'react' +import { useRouteLoaderData } from 'react-router' import { LeftArrow } from '~/components/icons/left-arrow' import { Button } from '~/components/ui/button' import { APP } from '~/configs/meta' +import { useNewsContext } from '~/contexts/news' +import type { loader } from '~/routes/_layout' export type ModalProperties = { onClose: () => void @@ -31,6 +34,10 @@ const DESCRIPTIONS: DescriptionMap = { } export const SuccessModal = ({ isOpen, onClose }: ModalProperties) => { + const { setIsLoginOpen, setIsInitSubscribeOpen } = useNewsContext() + const loaderData = useRouteLoaderData('routes/_layout') + const userToken = loaderData?.userToken + const message = isOpen ? DESCRIPTIONS[isOpen] : 'Terjadi kesalahan. Silakan coba lagi.' @@ -74,48 +81,56 @@ export const SuccessModal = ({ isOpen, onClose }: ModalProperties) => {
-
- {isOpen && - ['resetPassword', 'register', 'payment'].includes(isOpen) && ( -
- {APP.title} - -
+ {['resetPassword', 'register', 'payment'].includes( + isOpen || '', + ) && ( + <> + {APP.title} + + + )} + {isOpen === 'warning' && ( + <> + {APP.title} + {userToken ? ( + + ) : ( + )} - {isOpen === 'warning' && ( -
- {APP.title} -
- - -
-
- )} -
+ + )}