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}
)
}