import { useEffect, useMemo, useState } from "react"; import { Input, List, Spin, Empty, Typography, Tag } from "antd"; import { FolderOpenOutlined, SearchOutlined } from "@ant-design/icons"; import { useAppDispatch, useAppSelector } from "../../store/store"; import { getCompanyGroupsThunk } from "../../store/slices/companyGroupsSlice/thunks"; import { setActiveCompanyGroup } from "../../store/slices/companyGroupsSlice/companyGroupsSlice"; const { Text } = Typography; export const CompanyGroupsList = () => { const dispatch = useAppDispatch(); const rawRows = useAppSelector((state) => state.company_groups.raw_rows); const loading = useAppSelector((state) => state.company_groups.loading); const activeCompanyGroup = useAppSelector( (state) => state.company_groups.activeCompanyGroup, ); const [query, setQuery] = useState(""); const filtered = useMemo(() => { const q = query.trim().toLowerCase(); if (!q) return rawRows; return rawRows.filter( (g) => g.name.toLowerCase().includes(q) || g.crm_id?.toLowerCase().includes(q), ); }, [rawRows, query]); useEffect(() => { dispatch(getCompanyGroupsThunk()); }, [dispatch]); useEffect(() => { if (!activeCompanyGroup && rawRows?.length) { dispatch(setActiveCompanyGroup(rawRows?.[0])); } }, [rawRows, activeCompanyGroup]); return (