import { Button, Column, Row, Tab, TabList, TabPanel, Tabs } from '@umami/react-zen'; import { useState } from 'react'; import { useFilters, useMessages, useMobile, useNavigation } from '@/components/hooks'; import { FieldFilters } from '@/components/input/FieldFilters'; import { SegmentFilters } from '@/components/input/SegmentFilters'; export interface FilterEditFormProps { websiteId?: string; onChange?: (params: { filters: any[]; segment?: string; cohort?: string }) => void; onClose?: () => void; } export function FilterEditForm({ websiteId, onChange, onClose }: FilterEditFormProps) { const { query: { segment, cohort }, pathname, } = useNavigation(); const { filters } = useFilters(); const { formatMessage, labels } = useMessages(); const [currentFilters, setCurrentFilters] = useState(filters); const [currentSegment, setCurrentSegment] = useState(segment); const [currentCohort, setCurrentCohort] = useState(cohort); const { isMobile } = useMobile(); const excludeFilters = pathname.includes('/pixels') || pathname.includes('/links'); const handleReset = () => { setCurrentFilters([]); setCurrentSegment(undefined); setCurrentCohort(undefined); }; const handleSave = () => { onChange?.({ filters: currentFilters.filter(f => f.value), segment: currentSegment, cohort: currentCohort, }); onClose?.(); }; const handleSegmentChange = (id: string, type: string) => { setCurrentSegment(type === 'segment' ? id : undefined); setCurrentCohort(type === 'cohort' ? id : undefined); }; return ( {formatMessage(labels.fields)} {!excludeFilters && ( <> {formatMessage(labels.segments)} {formatMessage(labels.cohorts)} )} ); }