import { Breadcrumbs } from "@/app/components/Breadcrumbs/Breadcrumbs"; import { InternalScreen } from "@/app/components/InternalScreen/InternalScreen"; import { SettingsInput } from "@/app/components/SettingsInput/SettingsInput"; import { useRosettaColors } from "@/app/hooks/useRosettaColors"; import { Box, darken, Divider, Flex, Image, lighten, Paper, Text, useComputedColorScheme, useMantineColorScheme, useMantineTheme } from "@mantine/core"; import lightThemeImage from './comments-light.svg' import darkThemeImage from './comments-dark.svg' import { useSetting } from "@/app/providers/SettingsProvider/useSetting"; import { SettingsPaper } from "@/app/components/SettingsPaper/SettingsPaper"; import { Message, MessageStyle, MessageSystem } from "@/app/components/Messages/Message"; import { DeliveredMessageState, DialogProvider } from "@/app/providers/DialogProvider/DialogProvider"; import { AttachmentType } from "@/app/providers/ProtocolProvider/protocol/packets/packet.message"; import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; import { WALLPAPERS } from "@/app/wallpapers/wallpapers"; import { useEffect, useRef } from "react"; export function Theme() { const {setColorScheme} = useMantineColorScheme({ keepTransitions: true }); const currentColorSchemeValue = useMantineColorScheme().colorScheme; const colorScheme = useComputedColorScheme(); const colors = useRosettaColors(); const theme = useMantineTheme(); const publicKey = usePublicKey(); const scrollContainerRef = useRef(null); const [showAlertInReplyMessages, setShowAlertInReplyMessages] = useSetting ('showAlertInReplyMessages', true); const [showTimeInReplyMessages, setShowTimeInReplyMessages] = useSetting ('showTimeInReplyMessages', false); const [bgInReplyMessages, setBgInReplyMessages] = useSetting ('bgInReplyMessages', ''); const [messageStyle, setMessageStyle] = useSetting ('messageStyle', MessageStyle.ROWS); const [wallpaper, setWallpaper] = useSetting ('wallpaper', ''); const themeSwitcherColor = colorScheme == 'light' ? darken(colors.chevrons.active, 0.6) : lighten(colors.chevrons.active, 0.6); const colorSchemeSwitch = (scheme : any) => { setColorScheme(scheme); } useEffect(() => { const handleWheel = (event: WheelEvent) => { event.preventDefault(); if (scrollContainerRef.current) { scrollContainerRef.current.scrollLeft += event.deltaY; } }; const element = scrollContainerRef.current; if (element) { element.addEventListener('wheel', handleWheel, { passive: false }); } return () => { if (element) { element.removeEventListener('wheel', handleWheel); } }; }, []); return (<> colorSchemeSwitch('light')} align={'center'} justify={'center'}> Light colorSchemeSwitch('dark')} align={'center'} justify={'center'}> Dark setWallpaper('')} align={'center'} justify={'center'}> No wallpaper {WALLPAPERS.map((wp, index) => ( { setWallpaper(wp.src); setMessageStyle(MessageStyle.BUBBLES); }} align={'center'} justify={'center'}> {wp.name} ))} {/* Theme
colorSchemeSwitch('light')} align={'center'} justify={'center'}> Light colorSchemeSwitch('dark')} align={'center'} justify={'center'}> Dark
*/} {/* */} colorSchemeSwitch(v ? 'dark' : 'light')} > { if(!v) { setWallpaper(''); } setMessageStyle(v ? MessageStyle.BUBBLES : MessageStyle.ROWS) }} > Enable this option to display messages in bubble style, similar to many modern messaging apps. setShowAlertInReplyMessages(v)} > Reply messages may be forged by sender, if its option enabled you will see alert in such messages. setShowTimeInReplyMessages(v)} > If this option is enabled, the time will be displayed for each reply message. { setBgInReplyMessages(v == 'none' ? '' : v!); }} variants={['none', 'red', 'pink', 'grape', 'violet', 'indigo', 'blue', 'cyan', 'teal', 'green', 'lime', 'yellow', 'orange', 'brown', 'gray']} > This setting allows you to choose a background color for reply messages to make them stand out more clearly.
) }