"use client" import { useTheme } from "next-themes" import { useUserInterfaceStore } from "@/lib/stores/user-interface-store" function SettingsSection({ title, defaultOpen, children, }: { title: string defaultOpen?: boolean children: React.ReactNode }) { return (
{title}
{children}
) } export function AppearanceSettings() { const { theme, setTheme } = useTheme() const entryListViewMode = useUserInterfaceStore( (state) => state.entryListViewMode ) const setEntryListViewMode = useUserInterfaceStore( (state) => state.setEntryListViewMode ) const displayDensity = useUserInterfaceStore( (state) => state.displayDensity ) const setDisplayDensity = useUserInterfaceStore( (state) => state.setDisplayDensity ) const showFeedFavicons = useUserInterfaceStore( (state) => state.showFeedFavicons ) const setShowFeedFavicons = useUserInterfaceStore( (state) => state.setShowFeedFavicons ) const focusFollowsInteraction = useUserInterfaceStore( (state) => state.focusFollowsInteraction ) const setFocusFollowsInteraction = useUserInterfaceStore( (state) => state.setFocusFollowsInteraction ) const timeDisplayFormat = useUserInterfaceStore( (state) => state.timeDisplayFormat ) const setTimeDisplayFormat = useUserInterfaceStore( (state) => state.setTimeDisplayFormat ) const showEntryImages = useUserInterfaceStore( (state) => state.showEntryImages ) const setShowEntryImages = useUserInterfaceStore( (state) => state.setShowEntryImages ) const showReadingTime = useUserInterfaceStore( (state) => state.showReadingTime ) const setShowReadingTime = useUserInterfaceStore( (state) => state.setShowReadingTime ) const showEntryFavicons = useUserInterfaceStore( (state) => state.showEntryFavicons ) const setShowEntryFavicons = useUserInterfaceStore( (state) => state.setShowEntryFavicons ) const showFoldersAboveFeeds = useUserInterfaceStore( (state) => state.showFoldersAboveFeeds ) const setShowFoldersAboveFeeds = useUserInterfaceStore( (state) => state.setShowFoldersAboveFeeds ) const prioritiseUnreadEntries = useUserInterfaceStore( (state) => state.prioritiseUnreadEntries ) const setPrioritiseUnreadEntries = useUserInterfaceStore( (state) => state.setPrioritiseUnreadEntries ) const autoRefreshTimeline = useUserInterfaceStore( (state) => state.autoRefreshTimeline ) const setAutoRefreshTimeline = useUserInterfaceStore( (state) => state.setAutoRefreshTimeline ) const scrollbarStyle = useUserInterfaceStore( (state) => state.scrollbarStyle ) const setScrollbarStyle = useUserInterfaceStore( (state) => state.setScrollbarStyle ) const toolbarPosition = useUserInterfaceStore( (state) => state.toolbarPosition ) const setToolbarPosition = useUserInterfaceStore( (state) => state.setToolbarPosition ) return (

theme

controls the colour scheme of the application

display density

controls the overall text size and spacing

toolbar position

place the toolbar at the top or bottom of the reader

scrollbars

choose between themed scrollbars, platform native, or hidden

entry list view

controls how entries are displayed in the list

entry images

show thumbnail images next to entries in the expanded view

entry favicons

show website icons next to feed names in the entry list

reading time

display estimated reading time for articles

time display

choose between relative timestamps (e.g. “2h ago”) or absolute dates

unread priority

push unread articles to the top of the entry list

feed favicons

show website icons next to feed names in the sidebar

sidebar ordering

display folders above ungrouped feeds in the sidebar

automatic refresh

automatically load new entries when they arrive, instead of showing a notification. only refreshes when scrolled to the top of the entry list to preserve your reading position.

focus follows interaction

automatically move keyboard panel focus to the last pane you interacted with (clicked or scrolled)

) }