import React, { useEffect, useMemo, useState } from "react"; import "./sidebar-navigation-styles.scss"; import NavItem from "../nav-item/NavItem"; import { SelectOption, SidebarNavigationProps } from "@app/models/components"; import { APIKeyIcon, PremiumBadge, CloseIcon, DashboardIcon, DatasetLinkedIcon, HeaderSfSyncLogo, MenuIcon, PreferencesIcon, SettingsIcon, SupportIcon, } from "@app/assets/images/icons"; import { useSettings } from "@settings/contexts/SettingsContext"; import { useBlockNavigation } from "@settings/contexts/NavigationContext"; import Select from "../select/Select"; import { Language } from "@app/models/global"; import { useLocation, useNavigate } from "react-router-dom"; import ConfigItem from "../config-item/ConfigItem"; const SidebarNavigation: React.FC = ({ isMobileView, }) => { const [isMenuOpen, setIsMenuOpen] = useState(false); const [selectedConfig, setSelectedConfig] = useState(""); const { emptyConfigList, initialSettings, handleChangeSelection } = useSettings(); const { isNavBlocked } = useBlockNavigation(); const { is_premium: isPremium } = sfsyncData; const navigate = useNavigate(); const localization = sfsyncI18n.data; const allConfig: any = useMemo(() => { return Object.keys(initialSettings?.config_list ?? {}).map((key) => { const itemName = initialSettings?.config_list?.[key]?.name ? initialSettings?.config_list?.[key]?.name : key; const itemImage = initialSettings?.config_list?.[key]?.profile_picture_url ?? ""; const itemSlug = initialSettings?.config_list?.[key]?.page_slug ?? ""; const itemUrl = initialSettings?.config_list?.[key]?.page_url ?? ""; return { id: key, name: itemName, image: itemImage, slug: itemSlug, url: itemUrl, }; }); }, [initialSettings]); const toggleMenu = () => { setIsMenuOpen(!isMenuOpen); }; const handleNavLinkClick = () => { setIsMenuOpen(false); }; const handleSelectedConfigChange = async (value: string) => { await handleChangeSelection(value); navigate("/grid-manager", { replace: true, }); }; useEffect(() => { setSelectedConfig(initialSettings?.selected_config ?? ""); }, [initialSettings]); const handleSupportClick = () => { navigate("/dashboard/overview", { state: { startChat: true, }, }); }; return ( ); }; export default SidebarNavigation;