diff --git a/frontend/src/components/contacts/FilterPanel.tsx b/frontend/src/components/contacts/FilterPanel.tsx index 329d2cf..59c256c 100644 --- a/frontend/src/components/contacts/FilterPanel.tsx +++ b/frontend/src/components/contacts/FilterPanel.tsx @@ -255,7 +255,7 @@ export function FilterPanel({ filters, onFiltersChange, contactType, savedFilter // Merge custom field definitions into FIELD_DEFS const allFieldDefs = useMemo(() => { const baseFields = FIELD_DEFS.filter((f) => !f.key.startsWith('custom.')); - if (!customFieldDefs || customFieldDefs.items.length === 0) return baseFields; + if (!customFieldDefs || !customFieldDefs.items || customFieldDefs.items.length === 0) return baseFields; const customFields: FilterFieldDef[] = customFieldDefs.items .filter((def) => def.is_active) .map((def) => { diff --git a/frontend/src/components/contacts/GroupPanel.tsx b/frontend/src/components/contacts/GroupPanel.tsx index 527907f..cbc697f 100644 --- a/frontend/src/components/contacts/GroupPanel.tsx +++ b/frontend/src/components/contacts/GroupPanel.tsx @@ -182,7 +182,7 @@ export function GroupPanel({ groupState, onGroupChange, contactType }: GroupPane // Merge custom field definitions into GROUP_FIELDS const allGroupFields = useMemo(() => { const baseFields = GROUP_FIELDS.filter((f) => !f.key.startsWith('custom.')); - if (!customFieldDefs || customFieldDefs.items.length === 0) return baseFields; + if (!customFieldDefs || !customFieldDefs.items || customFieldDefs.items.length === 0) return baseFields; const customFields: GroupFieldDef[] = customFieldDefs.items .filter((def) => def.is_active) .map((def) => { diff --git a/frontend/src/components/contacts/SortPanel.tsx b/frontend/src/components/contacts/SortPanel.tsx index 10474e0..42af8ad 100644 --- a/frontend/src/components/contacts/SortPanel.tsx +++ b/frontend/src/components/contacts/SortPanel.tsx @@ -174,7 +174,7 @@ export function SortPanel({ sortState, onSortChange, contactType }: SortPanelPro // Merge custom field definitions into SORT_FIELDS const allSortFields = useMemo(() => { const baseFields = SORT_FIELDS.filter((f) => !f.key.startsWith('custom.')); - if (!customFieldDefs || customFieldDefs.items.length === 0) return baseFields; + if (!customFieldDefs || !customFieldDefs.items || customFieldDefs.items.length === 0) return baseFields; const customFields: SortFieldDef[] = customFieldDefs.items .filter((def) => def.is_active) .map((def) => {