diff --git a/src/components/TransactionEditDialog.tsx b/src/components/TransactionEditDialog.tsx index f8eec35..f9999c4 100644 --- a/src/components/TransactionEditDialog.tsx +++ b/src/components/TransactionEditDialog.tsx @@ -21,6 +21,7 @@ import TransactionFormFields, { TransactionFormValues } from './transaction/TransactionFormFields'; import TransactionDeleteAlert from './transaction/TransactionDeleteAlert'; +import { useIsMobile } from '@/hooks/use-mobile'; interface TransactionEditDialogProps { transaction: Transaction; @@ -38,6 +39,7 @@ const TransactionEditDialog: React.FC = ({ onDelete }) => { const { updateTransaction, deleteTransaction } = useBudget(); + const isMobile = useIsMobile(); const form = useForm({ resolver: zodResolver(transactionFormSchema), @@ -94,7 +96,7 @@ const TransactionEditDialog: React.FC = ({ return ( - + 지출 수정 diff --git a/src/components/ui/alert-dialog.tsx b/src/components/ui/alert-dialog.tsx index 453ad8e..92298f0 100644 --- a/src/components/ui/alert-dialog.tsx +++ b/src/components/ui/alert-dialog.tsx @@ -17,7 +17,7 @@ const AlertDialogOverlay = React.forwardRef< >(({ className, ...props }, ref) => ( (({ className, ...props }, ref) => ( (false) + const [isMobile, setIsMobile] = React.useState( + typeof window !== 'undefined' ? window.innerWidth < MOBILE_BREAKPOINT : false + ) React.useEffect(() => { + if (typeof window === 'undefined') return; + const checkMobile = () => { setIsMobile(window.innerWidth < MOBILE_BREAKPOINT) + + // 모바일 화면인 경우 body에 클래스 추가 + if (window.innerWidth < MOBILE_BREAKPOINT) { + document.body.classList.add('is-mobile'); + } else { + document.body.classList.remove('is-mobile'); + } } // 초기 확인 diff --git a/src/index.css b/src/index.css index 1a156c1..dd536e1 100644 --- a/src/index.css +++ b/src/index.css @@ -154,6 +154,20 @@ #root { @apply p-0; } + + /* 모바일에서 팝업과 다이얼로그 스타일 보정 */ + [role="dialog"] { + @apply rounded-xl overflow-hidden; + } + + /* 다이얼로그 내용에 적용되는 스타일 */ + .DialogContent, + .PopoverContent, + .AlertDialogContent, + .DrawerContent, + .SheetContent { + @apply rounded-xl overflow-hidden; + } } }