From feab94633399c7d400be8e7a76e332b8bd6340f8 Mon Sep 17 00:00:00 2001 From: "focp212@naver.com" Date: Wed, 17 Sep 2025 09:55:35 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=ED=86=B5=EB=B3=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entities/payment/model/types.ts | 7 ++++ .../ui/data-notification-notify-content.tsx | 30 +++++++++------ .../payment/ui/data-notification-wrap.tsx | 38 +++++++++---------- 3 files changed, 45 insertions(+), 30 deletions(-) diff --git a/src/entities/payment/model/types.ts b/src/entities/payment/model/types.ts index 25d5e9a..61763a3 100644 --- a/src/entities/payment/model/types.ts +++ b/src/entities/payment/model/types.ts @@ -9,6 +9,13 @@ export enum PaymentInfoItemType { export interface PaymentTabProps { activeTab: PaymentTabKeys; }; +export enum DataNotificationNotifyContentKey { + CreditCard = 'CreditCard', + AccountTransfer = 'AccountTransfer', + VirtualAccount = 'VirtualAccount', + MobilePayment = 'MobilePayment', + EscrowPayment = 'EscrowPayment', +}; export interface InfoItemProps { type?: PaymentInfoItemType; payName?: string; diff --git a/src/entities/payment/ui/data-notification-notify-content.tsx b/src/entities/payment/ui/data-notification-notify-content.tsx index 6492c50..cc374f4 100644 --- a/src/entities/payment/ui/data-notification-notify-content.tsx +++ b/src/entities/payment/ui/data-notification-notify-content.tsx @@ -2,9 +2,11 @@ import moment from 'moment'; import { useEffect, useState } from 'react'; import { SlideDown } from 'react-slidedown'; import 'react-slidedown/lib/slidedown.css'; +import { DataNotificationNotifyContentKey } from '../model/types'; export interface DataNotificationNotifyContentProps { paymentMethodName: string; + type: DataNotificationNotifyContentKey; startDate?: string; adminEmail?: string; urlIp?: string; @@ -12,11 +14,12 @@ export interface DataNotificationNotifyContentProps { retransmissionCount?: string; okCheck?: string; encryptionStatus?: string; - isChildOpen: boolean; - setIsChildOpen: (isChildOpen: boolean) => void; + openChild: DataNotificationNotifyContentKey | null; + setOpenChild: (openChild: DataNotificationNotifyContentKey | null) => void; }; export const DataNotificationNotifyContent = ({ paymentMethodName, + type, startDate, adminEmail, urlIp, @@ -24,23 +27,28 @@ export const DataNotificationNotifyContent = ({ retransmissionCount, okCheck, encryptionStatus, - isChildOpen, - setIsChildOpen + openChild, + setOpenChild }: DataNotificationNotifyContentProps) => { const [isOpen, setIsOpen] = useState(false); const openNotifyContent = () => { - setIsOpen(!isOpen); - setIsChildOpen(!isOpen); + const staus = !isOpen; + setIsOpen(staus); + if(!!staus){ + setOpenChild(type); + } + else { + setOpenChild(null) + } }; useEffect(() => { - console.log('useEffect ', isChildOpen) - if(!!isChildOpen){ - //setIsOpen(false); - } - }, [isChildOpen]) + if(!!openChild && openChild !== type){ + setIsOpen(false); + } + }, [openChild]) return ( <> diff --git a/src/entities/payment/ui/data-notification-wrap.tsx b/src/entities/payment/ui/data-notification-wrap.tsx index d912ce5..b2931b2 100644 --- a/src/entities/payment/ui/data-notification-wrap.tsx +++ b/src/entities/payment/ui/data-notification-wrap.tsx @@ -8,18 +8,13 @@ import { VirtualAccount, MobilePayment, EscrowPayment, + DataNotificationNotifyContentKey, PaymentNotificationDataResponse } from '../model/types'; export interface DataNotificationWrapProps { paymentNotificationData?: PaymentNotificationDataResponse; }; -export enum DataNotificationNotifyContentKey { - CreditCard = 'CreditCard', - AccountTransfer = 'AccountTransfer', - VirtualAccount = 'VirtualAccount', - MobilePayment = 'MobilePayment', - EscrowPayment = 'EscrowPayment', -}; + export const DataNotificationWrap = ({ paymentNotificationData }: DataNotificationWrapProps) => { @@ -30,7 +25,7 @@ export const DataNotificationWrap = ({ const [mobilePayment, setMobilePayment] = useState>(); const [escrowPayment, setEscrowPayment] = useState>(); - const [isChildOpen, setIsChildOpen] = useState(false); + const [openChild, setOpenChild] = useState(null); useEffect(() => { setMerchantInfo(paymentNotificationData?.merchantInfo); @@ -40,7 +35,7 @@ export const DataNotificationWrap = ({ setMobilePayment(paymentNotificationData?.mobilePayment.detail); setEscrowPayment(paymentNotificationData?.escrowPayment.detail); }, []); - + return ( <>
@@ -59,6 +54,7 @@ export const DataNotificationWrap = ({