Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 'use client'; import { Button } from '@/components/ui'; import { ModalDescription, ModalTitle } from '@/components/ui/modal'; import { useModal } from '@/components/ui/modal'; import { GetGroupDetailsResponse, KickGroupMemberResponse } from '@/types/service/group'; interface Props { modalContent: { title: string; description: string; confirmMessage: string; }; isPending: boolean; // 모임 삭제 API는 반환값이 없음 그래서 -> 유니온 void 적용 onConfirmClick: () => Promise<GetGroupDetailsResponse | KickGroupMemberResponse | void>; } export const GroupModalCommonContent = ({ modalContent: { title, description, confirmMessage }, isPending, onConfirmClick, }: Props) => { const { close } = useModal(); const handleConfirmClick = async () => { await onConfirmClick(); close(); }; return ( <> <ModalTitle className='pt-8 text-center break-keep'>{title}</ModalTitle> <ModalDescription className='text-center break-keep'>{description}</ModalDescription> <div className='mt-6 flex gap-2'> <Button className='!text-text-sm-semibold w-[50%]' size='sm' variant='tertiary' onClick={close} > 취소 </Button> <Button className='!text-text-sm-bold w-[50%]' disabled={isPending} size='sm' onClick={handleConfirmClick} > {isPending ? '로딩중...' : confirmMessage} </Button> </div> </> ); }; |