"use client"; import { CURRENT_APP_VERSION } from "#/api/config"; import { useUserStore } from "#/store/auth"; import { usePreferencesStore } from "#/store/preferences"; import { Button, ButtonGroup, Dropdown, DropdownItem, HR, Modal, ModalBody, ModalHeader, ToggleSwitch, useThemeMode, } from "flowbite-react"; import Link from "next/link"; const HomeCategory = { last: "Последние релизы", finished: "Завершенные релизы", ongoing: "Выходит", announce: "Анонсированные релизы", films: "Фильмы", }; const BookmarksCategory = { watching: "Смотрю", planned: "В планах", watched: "Просмотрено", delayed: "Отложено", abandoned: "Заброшено", }; const NavbarTitles = { always: "Всегда", links: "Только ссылки", selected: "Только выбранные", never: "Никогда", }; const FifthButton = { 3: "Избранное", 4: "Коллекции", 5: "История", }; export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => { const preferenceStore = usePreferencesStore(); const userStore = useUserStore(); const { computedMode, setMode } = useThemeMode(); return ( props.setIsOpen(false)} > Настройки

Интерфейс

Тема

Пропускать страницу выбора категорий на страницах Домашняя и Закладки

preferenceStore.setParams({ skipToCategory: { ...preferenceStore.params.skipToCategory, enabled: !preferenceStore.params.skipToCategory.enabled, }, }) } checked={preferenceStore.params.skipToCategory.enabled} />
{preferenceStore.params.skipToCategory.enabled ? <>

Категория домашней страницы

{Object.keys(HomeCategory).map((key) => { return ( preferenceStore.setParams({ skipToCategory: { ...preferenceStore.params.skipToCategory, homeCategory: key, }, }) } > {HomeCategory[key]} ); })}

Категория страницы закладок

{Object.keys(BookmarksCategory).map((key) => { return ( preferenceStore.setParams({ skipToCategory: { ...preferenceStore.params.skipToCategory, bookmarksCategory: key, }, }) } > {BookmarksCategory[key]} ); })}
: ""}

Показывать название пункта в навигации

{Object.keys(NavbarTitles).map( (key: "always" | "links" | "selected" | "never") => { return ( preferenceStore.setFlags({ showNavbarTitles: key, }) } > {NavbarTitles[key]} ); } )}
{userStore.isAuth ?

Пятый пункт в навигации

preferenceStore.setFlags({ showFifthButton: null, }) } > Не показывать {Object.keys(FifthButton).map((key) => { return ( preferenceStore.setFlags({ showFifthButton: Number(key) as 3 | 4 | 5, }) } > {FifthButton[key]} ); })}
: ""}

Приложение

Показывать список изменений

preferenceStore.setFlags({ showChangelog: !preferenceStore.flags.showChangelog, }) } checked={preferenceStore.flags.showChangelog} />

Отправка аналитики

Требуется перезагрузка для применения

preferenceStore.setFlags({ enableAnalytics: !preferenceStore.flags.enableAnalytics, }) } checked={preferenceStore.flags.enableAnalytics} />

Эксперименты

Новый плеер

Поддерживаемые источники: Kodik, Sibnet, Libria

preferenceStore.setParams({ experimental: { ...preferenceStore.params.experimental, newPlayer: !preferenceStore.params.experimental.newPlayer, }, }) } checked={preferenceStore.params.experimental.newPlayer} />

props.setIsOpen(false)} >

О приложении

v{CURRENT_APP_VERSION}

); };