From 97e8ceaeeb80a85e32bc4d61d7458d9c4ac1a70e Mon Sep 17 00:00:00 2001 From: =Mtg_Dev <=mtg0987654321@gmail.com> Date: Thu, 18 Nov 2021 17:16:49 +0200 Subject: [PATCH] improved Modals tarnsitions --- src/Components/Login/LoginSuccessCard.tsx | 21 ++++++++-------- src/Components/Login/ScanningWalletCard.tsx | 1 - src/Components/Shared/Modal/Modal.tsx | 19 ++++++++++---- .../ModalsContainer/ModalsContainer.tsx | 25 +++++++++++-------- src/redux/features/modals.slice.ts | 4 ++- 5 files changed, 42 insertions(+), 28 deletions(-) diff --git a/src/Components/Login/LoginSuccessCard.tsx b/src/Components/Login/LoginSuccessCard.tsx index d3e6da9..40b30a2 100644 --- a/src/Components/Login/LoginSuccessCard.tsx +++ b/src/Components/Login/LoginSuccessCard.tsx @@ -1,25 +1,24 @@ import { motion } from 'framer-motion' -import { Direction, ModalId, replaceModal } from '../../redux/features/modals.slice'; import { useAppDispatch } from '../../utils/hooks'; import { ModalCard, modalCardVariants } from '../Shared/ModalsContainer/ModalsContainer' -import { IoLockClosed, } from 'react-icons/io5' -import { useEffect } from 'react'; +import { useCallback, useEffect } from 'react'; export default function LoginSuccessCard({ onClose, direction, ...props }: ModalCard) { const dispatch = useAppDispatch(); - const handleNext = () => { - dispatch(replaceModal({ - modalId: ModalId.LoginScanWallet, - direction: Direction.NEXT - })) - } + const handleNext = useCallback(() => { + // dispatch(replaceModal({ + // modalId: ModalId.LoginScanWallet, + // direction: Direction.NEXT + // })) + onClose && onClose() + }, [dispatch, onClose]) useEffect(() => { - // const timeout = setTimeout(handleNext, 3000) - // return () => clearTimeout(timeout) + const timeout = setTimeout(handleNext, 3000) + return () => clearTimeout(timeout) }, [handleNext]) return ( diff --git a/src/Components/Login/ScanningWalletCard.tsx b/src/Components/Login/ScanningWalletCard.tsx index fe39097..884282b 100644 --- a/src/Components/Login/ScanningWalletCard.tsx +++ b/src/Components/Login/ScanningWalletCard.tsx @@ -32,7 +32,6 @@ export default function ScanningWalletCard({ onClose, direction, ...props }: Mod animate="animate" exit='exit' className="modal-card max-w-[343px] p-24 rounded-xl relative" - >

Log in with Lightning

diff --git a/src/Components/Shared/Modal/Modal.tsx b/src/Components/Shared/Modal/Modal.tsx index e9444d1..fd74009 100644 --- a/src/Components/Shared/Modal/Modal.tsx +++ b/src/Components/Shared/Modal/Modal.tsx @@ -1,20 +1,29 @@ +import { motion } from "framer-motion"; import { ReactElement } from "react"; interface Props { onClose: () => void; + children: ReactElement + [key: string]: any; } -export default function Modal(props: Props) { +export default function Modal({ onClose, children, ...props }: Props) { return ( -
+
- {props.children} -
+ {children} + ) } diff --git a/src/Components/Shared/ModalsContainer/ModalsContainer.tsx b/src/Components/Shared/ModalsContainer/ModalsContainer.tsx index 1451bd2..202a6c2 100644 --- a/src/Components/Shared/ModalsContainer/ModalsContainer.tsx +++ b/src/Components/Shared/ModalsContainer/ModalsContainer.tsx @@ -59,7 +59,11 @@ const ModalsMap = (modalId: ModalId) => { export default function ModalsContainer() { - const { isOpen, openModals, direction } = useAppSelector(state => ({ isOpen: state.modals.isOpen, openModals: state.modals.openModals, direction: state.modals.direction })) + const { isOpen, openModals, direction } = useAppSelector(state => ({ + isOpen: state.modals.isOpen, + openModals: state.modals.openModals, + direction: state.modals.direction + })) const dispatch = useAppDispatch(); const onClose = () => dispatch(closeModal()); @@ -69,9 +73,9 @@ export default function ModalsContainer() { else document.body.style.overflowY = "initial"; }, [isOpen]); - return ( + {isOpen && - - {openModals.map(modal => { - const Child = ModalsMap(modal.modalId); - return ( - - - ) - })} + + {openModals.map(modal => { + const Child = ModalsMap(modal.modalId); + return ( + + + ) + })} + } diff --git a/src/redux/features/modals.slice.ts b/src/redux/features/modals.slice.ts index 92cbc19..0785713 100644 --- a/src/redux/features/modals.slice.ts +++ b/src/redux/features/modals.slice.ts @@ -32,7 +32,9 @@ const initialState = { isOpen: true, isLoading: false, direction: Direction.START, - openModals: [{ modalId: ModalId.LoginSuccess }] as OpenModal[], + openModals: [ + // { modalId: ModalId.LoginSuccess } + ] as OpenModal[], } as StoreState; export const modalSlice = createSlice({