import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import styles from './mobile-sidebar.module.css'; import { ActionBar } from '/@/renderer/features/sidebar/components/action-bar'; import { ServerSelector } from '/@/renderer/features/sidebar/components/server-selector'; import { SidebarIcon } from '/@/renderer/features/sidebar/components/sidebar-icon'; import { SidebarItem } from '/@/renderer/features/sidebar/components/sidebar-item'; import { SidebarPlaylistList, SidebarSharedPlaylistList, } from '/@/renderer/features/sidebar/components/sidebar-playlist-list'; import { SidebarItemType, useGeneralSettings } from '/@/renderer/store/settings.store'; import { Accordion } from '/@/shared/components/accordion/accordion'; import { Group } from '/@/shared/components/group/group'; import { ScrollArea } from '/@/shared/components/scroll-area/scroll-area'; import { Text } from '/@/shared/components/text/text'; export const MobileSidebar = () => { const { t } = useTranslation(); const { sidebarPlaylistList } = useGeneralSettings(); const translatedSidebarItemMap = useMemo( () => ({ Albums: t('page.sidebar.albums', { postProcess: 'titleCase' }), Artists: t('page.sidebar.albumArtists', { postProcess: 'titleCase' }), 'Artists-all': t('page.sidebar.artists', { postProcess: 'titleCase' }), Favorites: t('page.sidebar.favorites', { postProcess: 'titleCase' }), Genres: t('page.sidebar.genres', { postProcess: 'titleCase' }), Home: t('page.sidebar.home', { postProcess: 'titleCase' }), 'Now Playing': t('page.sidebar.nowPlaying', { postProcess: 'titleCase' }), Playlists: t('page.sidebar.playlists', { postProcess: 'titleCase' }), Search: t('page.sidebar.search', { postProcess: 'titleCase' }), Settings: t('page.sidebar.settings', { postProcess: 'titleCase' }), Tracks: t('page.sidebar.tracks', { postProcess: 'titleCase' }), }), [t], ); const { sidebarItems } = useGeneralSettings(); const sidebarItemsWithRoute: SidebarItemType[] = useMemo(() => { if (!sidebarItems) return []; const items = sidebarItems .filter((item) => !item.disabled) .map((item) => ({ ...item, label: translatedSidebarItemMap[item.id as keyof typeof translatedSidebarItemMap] ?? item.label, })); return items; }, [sidebarItems, translatedSidebarItemMap]); return (
{t('page.sidebar.myLibrary', { postProcess: 'titleCase', })} {sidebarItemsWithRoute.map((item) => { return ( {item.label} ); })} {sidebarPlaylistList && ( <> )}
); };