mirror of
https://github.com/Radiquum/AniX.git
synced 2025-04-06 00:04:39 +00:00
108 lines
3.8 KiB
TypeScript
108 lines
3.8 KiB
TypeScript
"use client";
|
||
|
||
import { usePreferencesStore } from "#/store/preferences";
|
||
import { Modal, Button, useThemeMode, ToggleSwitch, HR } from "flowbite-react";
|
||
import Link from "next/link";
|
||
|
||
export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
|
||
const preferenceStore = usePreferencesStore();
|
||
|
||
const { computedMode, setMode } = useThemeMode();
|
||
|
||
return (
|
||
<Modal
|
||
dismissible
|
||
show={props.isOpen}
|
||
onClose={() => props.setIsOpen(false)}
|
||
>
|
||
<Modal.Header>Настройки</Modal.Header>
|
||
<Modal.Body>
|
||
<div className="space-y-6">
|
||
<div className="flex items-center justify-between">
|
||
<p className="font-bold dark:text-white">Тема</p>
|
||
<Button.Group>
|
||
<Button
|
||
color={computedMode == "light" ? "blue" : "gray"}
|
||
onClick={() => setMode("light")}
|
||
>
|
||
Светлая
|
||
</Button>
|
||
<Button
|
||
color={computedMode == "dark" ? "blue" : "gray"}
|
||
onClick={() => setMode("dark")}
|
||
>
|
||
Темная
|
||
</Button>
|
||
</Button.Group>
|
||
</div>
|
||
<div className="flex items-center justify-between">
|
||
<p className="font-bold dark:text-white">
|
||
Показывать список изменений
|
||
</p>
|
||
<ToggleSwitch
|
||
color="blue"
|
||
theme={{
|
||
toggle: {
|
||
checked: {
|
||
color: {
|
||
blue: "border-blue-700 bg-blue-700",
|
||
},
|
||
},
|
||
},
|
||
}}
|
||
onChange={() =>
|
||
preferenceStore.setFlags({
|
||
showChangelog: !preferenceStore.flags.showChangelog,
|
||
})
|
||
}
|
||
checked={preferenceStore.flags.showChangelog}
|
||
/>
|
||
</div>
|
||
<div className="flex items-center justify-between">
|
||
<div>
|
||
<p className="font-bold dark:text-white">Отправка аналитики</p>
|
||
<p className="text-gray-500 dark:text-gray-300">
|
||
Требуется перезагрузка для применения
|
||
</p>
|
||
</div>
|
||
<ToggleSwitch
|
||
color="blue"
|
||
theme={{
|
||
toggle: {
|
||
checked: {
|
||
color: {
|
||
blue: "border-blue-700 bg-blue-700",
|
||
},
|
||
},
|
||
},
|
||
}}
|
||
onChange={() =>
|
||
preferenceStore.setFlags({
|
||
enableAnalytics: !preferenceStore.flags.enableAnalytics,
|
||
})
|
||
}
|
||
checked={preferenceStore.flags.enableAnalytics}
|
||
/>
|
||
</div>
|
||
</div>
|
||
<HR className="my-4 dark:bg-slate-400" />
|
||
<div>
|
||
<Link href={"https://t.me/anix_web"} className="flex items-center gap-2 p-2 text-left rounded-md hover:bg-gray-100 dark:hover:bg-gray-900">
|
||
<span className="w-8 h-8 iconify fa6-brands--telegram"></span>
|
||
<div>
|
||
<p>Телеграм канал</p>
|
||
<p className="text-sm text-gray-400 dark:text-gray-200">@anix_web</p>
|
||
</div>
|
||
</Link>
|
||
<Link href={"https://wah.su/radiquum"} className="flex items-center gap-2 p-2 text-left rounded-md hover:bg-gray-100 dark:hover:bg-gray-900">
|
||
<span className="w-8 h-8 iconify mdi--code"></span>
|
||
<div>
|
||
<p>Разработчик</p>
|
||
<p className="text-sm text-gray-400 dark:text-gray-200">Radiquum</p>
|
||
</div>
|
||
</Link>
|
||
</div>
|
||
</Modal.Body>
|
||
</Modal>
|
||
);
|
||
};
|