import styled from '@emotion/styled'; import { NavigationDrawerAIChatThreadDateSection } from '@/ai/components/NavigationDrawerAIChatThreadDateSection'; import { AIChatSkeletonLoader } from '@/ai/components/internal/AIChatSkeletonLoader'; import { useAIChatThreadClick } from '@/ai/hooks/useAIChatThreadClick'; import { currentAIChatThreadState } from '@/ai/states/currentAIChatThreadState'; import { groupThreadsByDate } from '@/ai/utils/groupThreadsByDate'; import { type DateGroupKey } from '@/ai/utils/dateGroupKey'; import { DATE_GROUP_KEYS } from '@/ai/utils/dateGroupKeys'; import { getDateGroupTitle } from '@/ai/utils/getDateGroupTitle'; import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue'; import { useGetChatThreadsQuery } from '~/generated-metadata/graphql'; const StyledScrollableList = styled.div` display: flex; flex-direction: column; flex: 1; min-height: 0; overflow-y: auto; padding: ${({ theme }) => theme.spacing(2, 0)}; width: ${({ theme }) => `calc(100% - ${theme.spacing(2)})`}; `; export const NavigationDrawerAIChatThreadsList = () => { const currentAIChatThread = useAtomStateValue(currentAIChatThreadState); const { handleThreadClick } = useAIChatThreadClick({ resetNavigationStack: true, }); const { data: { chatThreads = [] } = {}, loading } = useGetChatThreadsQuery(); const groupedThreads = groupThreadsByDate(chatThreads); if (loading === true) { return ; } return ( {DATE_GROUP_KEYS.map((key: DateGroupKey) => { const threads = groupedThreads[key]; if (threads.length === 0) return null; return ( ); })} ); };