"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"; import { env } from "next-runtime-env"; import { useEffect, useState } from "react"; const HomeCategory = { last: "Последние релизы", finished: "Завершенные релизы", ongoing: "Выходит", announce: "Анонсированные релизы", films: "Фильмы", }; const BookmarksCategory = { watching: "Смотрю", planned: "В планах", watched: "Просмотрено", delayed: "Отложено", abandoned: "Заброшено", }; const FifthButton = { favorites: "Избранное", collections: "Коллекции", history: "История", discovery: "Обзор", }; export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => { const preferenceStore = usePreferencesStore(); const userStore = useUserStore(); const { computedMode, setMode } = useThemeMode(); const [isPlayerConfigured, setIsPlayerConfigured] = useState(false); useEffect(() => { const NEXT_PUBLIC_PLAYER_PARSER_URL = env("NEXT_PUBLIC_PLAYER_PARSER_URL") || null; if (NEXT_PUBLIC_PLAYER_PARSER_URL) { setIsPlayerConfigured(true); } }, []); 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]} ); })}
: ""} {userStore.isAuth ?

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

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

Приложение

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

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

Сохранять историю просмотра

При отключении, история не будет сохранятся как локально, так и на аккаунте

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

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

Новый плеер

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

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

props.setIsOpen(false)} >

О приложении

v{CURRENT_APP_VERSION}

); };