import type { TriggerProps } from '@/app/components/base/date-and-time-picker/types' import { cn } from '@langgenius/dify-ui/cn' import { RiCalendarLine, RiCloseCircleFill } from '@remixicon/react' import { useQuery } from '@tanstack/react-query' import dayjs from 'dayjs' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' import DatePicker from '@/app/components/base/date-and-time-picker/date-picker' import { userProfileQueryOptions } from '@/features/account-profile/client' import useTimestamp from '@/hooks/use-timestamp' type Props = Readonly<{ className?: string label?: string value?: number onChange: (date: number | null) => void }> const WrappedDatePicker = ({ className, label, value, onChange }: Props) => { const { t } = useTranslation() const { data: timezone } = useQuery({ ...userProfileQueryOptions(), select: (data) => data.profile.timezone ?? undefined, }) const { formatTime: formatTimestamp } = useTimestamp() const handleDateChange = useCallback( (date?: dayjs.Dayjs) => { if (date) onChange(date.unix()) else onChange(null) }, [onChange], ) const renderTrigger = useCallback( ({ handleClickTrigger }: TriggerProps) => { const hasValue = Boolean(value) const triggerText = value ? formatTimestamp( value, t(($) => $['metadata.dateTimeFormat'], { ns: 'datasetDocuments' }), ) : t(($) => $['metadata.chooseTime'], { ns: 'dataset' }) const clearLabel = t(($) => $['operation.clear'], { ns: 'common' }) return (
{hasValue ? ( ) : null}
) }, [className, label, value, formatTimestamp, t, handleDateChange], ) return ( ) } export default WrappedDatePicker