import { useEffect } from 'react' import { View, Text } from '@tarojs/components' import { cn } from '@/utils/cn' interface DialogProps { open: boolean onOpenChange: (open: boolean) => void children: React.ReactNode } export function Dialog({ open, onOpenChange, children }: DialogProps) { useEffect(() => { if (open) { // 在 Taro 中,我们可以使用模态框或者自定义弹窗 // 这里使用自定义实现 } }, [open]) const handleBackdropClick = () => { onOpenChange(false) } const handleContentClick = (e: any) => { // 阻止事件冒泡,避免点击内容区域时关闭弹窗 e.stopPropagation() } if (!open) return null return ( {children} ) } interface DialogContentProps { className?: string children: React.ReactNode } export function DialogContent({ className, children }: DialogContentProps) { return ( {children} ) } interface DialogHeaderProps { className?: string children: React.ReactNode } export function DialogHeader({ className, children }: DialogHeaderProps) { return ( {children} ) } interface DialogTitleProps { className?: string children: React.ReactNode } export function DialogTitle({ className, children }: DialogTitleProps) { return ( {children} ) } interface DialogFooterProps { className?: string children: React.ReactNode } export function DialogFooter({ className, children }: DialogFooterProps) { return ( {children} ) }