import { Icon, ListItem, Row, Select, type SelectProps, Text } from '@umami/react-zen'; import { useEffect, useState } from 'react'; import { Empty } from '@/components/common/Empty'; import { useBoardQuery, useBoardsQuery, useMessages } from '@/components/hooks'; import { LayoutDashboard } from '@/components/icons'; export function BoardSelect({ boardId, teamId, onChange, isCollapsed, buttonProps, listProps, ...props }: { boardId?: string; teamId?: string; isCollapsed?: boolean; } & SelectProps) { const { t, messages } = useMessages(); const { data: board } = useBoardQuery(boardId); const [name, setName] = useState(board?.name); const [search, setSearch] = useState(''); const { data, isLoading } = useBoardsQuery({ teamId }, { search, pageSize: 20 }); const listItems: { id: string; name: string }[] = data?.data || []; useEffect(() => { setName(board?.name); }, [board?.name]); const handleOpenChange = () => { setSearch(''); }; const handleChange = (id: string) => { setName(listItems.find(item => item.id === id)?.name); onChange?.(id); }; const renderValue = () => { if (isCollapsed) { return ''; } return ( {name} ); }; return ( ); }