feat: enhance SuccessModal and News context for improved modal management and subscription flow

This commit is contained in:
Ardeman
2025-02-25 05:18:40 +08:00
parent fe9b8bc97a
commit 6b2ba85642
4 changed files with 49 additions and 42 deletions
+14 -4
View File
@@ -7,15 +7,21 @@ import {
type SetStateAction,
} from 'react'
type NewsContextProperties = {
import type { ModalProperties } from '~/components/popup/success-modal'
export type NewsContextProperties = {
isLoginOpen: boolean
setIsLoginOpen: Dispatch<SetStateAction<boolean>>
isRegisterOpen: boolean
setIsRegisterOpen: Dispatch<SetStateAction<boolean>>
isForgetOpen: boolean
setForgetOpen: Dispatch<SetStateAction<boolean>>
isSuccessModalOpen: boolean
setIsSuccessModalOpen: Dispatch<SetStateAction<boolean>>
isSuccessModalOpen?: ModalProperties['isOpen']
setIsSuccessModalOpen?: Dispatch<
SetStateAction<ModalProperties['isOpen'] | undefined>
>
isInitSubscribeOpen: boolean
setIsInitSubscribeOpen: Dispatch<SetStateAction<boolean>>
}
const NewsContext = createContext<NewsContextProperties | undefined>(undefined)
@@ -24,7 +30,9 @@ export const NewsProvider = ({ children }: PropsWithChildren) => {
const [isLoginOpen, setIsLoginOpen] = useState(false)
const [isRegisterOpen, setIsRegisterOpen] = useState(false)
const [isForgetOpen, setForgetOpen] = useState(false)
const [isSuccessModalOpen, setIsSuccessModalOpen] = useState(false)
const [isSuccessModalOpen, setIsSuccessModalOpen] =
useState<ModalProperties['isOpen']>()
const [isInitSubscribeOpen, setIsInitSubscribeOpen] = useState(false)
return (
<NewsContext.Provider
@@ -37,6 +45,8 @@ export const NewsProvider = ({ children }: PropsWithChildren) => {
setForgetOpen,
isSuccessModalOpen,
setIsSuccessModalOpen,
isInitSubscribeOpen,
setIsInitSubscribeOpen,
}}
>
{children}