"use client"; import React, { useEffect, useState } from "react"; import SearchBar from "../SearchBar"; import ShortcutList from "../ShortcutList"; import HistoryList from "../HistoryList"; import { observer } from "mobx-react-lite"; import { useStore } from "@/_models/RootStore"; import Image from "next/image"; import { usePathname } from "next/navigation"; import useGetUserConversations from "@/_hooks/useGetUserConversations"; import DiscordContainer from "../DiscordContainer"; import { useQuery } from "@apollo/client"; import { GetProductsQuery, GetProductsDocument, ProductDetailFragment, } from "@/graphql"; import useGetCurrentUser from "@/_hooks/useGetCurrentUser"; export const SidebarLeft: React.FC = observer(() => { const router = usePathname(); const [searchText, setSearchText] = useState(""); const { user } = useGetCurrentUser(); const { getUserConversations } = useGetUserConversations(); const [featuredProducts, setFeaturedProducts] = useState< ProductDetailFragment[] >([]); const { historyStore } = useStore(); const navigation = ["pricing", "docs", "about"]; const { loading, error, data } = useQuery(GetProductsDocument); const checkRouter = () => navigation.map((item) => router?.includes(item)).includes(true); useEffect(() => { if (user) { const createConversationAndActive = async () => { await getUserConversations(user); }; createConversationAndActive(); } }, [user]); useEffect(() => { if (data?.products) { setFeaturedProducts( [...(data.products || [])] .sort(() => 0.5 - Math.random()) .slice(0, 3) .filter( (e) => searchText === "" || e.name.toLowerCase().includes(searchText.toLowerCase()) ) || [] ); } }, [data?.products, searchText]); const onLogoClick = () => { historyStore.clearActiveConversationId(); }; const onSearching = (text: string) => { setSearchText(text); }; return ( ); });