Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion client/src/app/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ const theme = createTheme({

const App = () => {
return (
<MantineProvider defaultColorScheme='dark' theme={theme}>
<MantineProvider defaultColorScheme='auto' theme={theme}>
<AuthenticationProvider>
<AppRoutes />
<Notifications limit={5} position='top-right' />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Moon, Sun } from '@phosphor-icons/react'
import { ActionIcon, useMantineColorScheme, type BoxProps } from '@mantine/core'
import { useMediaQuery } from '@mantine/hooks'

interface ColorSchemeToggleButtonProps extends BoxProps {
iconSize?: number | string
Expand All @@ -11,18 +12,30 @@ export const ColorSchemeToggleButton = ({
size = 'md',
...props
}: ColorSchemeToggleButtonProps) => {
const { colorScheme, toggleColorScheme } = useMantineColorScheme()
const { colorScheme, toggleColorScheme, clearColorScheme } = useMantineColorScheme()
const prefersDarkColorScheme = useMediaQuery('(prefers-color-scheme: dark)')

const showSunIcon = (colorScheme === 'auto' && prefersDarkColorScheme) || colorScheme === 'dark'

return (
<ActionIcon
variant='outline'
color={colorScheme === 'dark' ? 'gray.4' : 'dark.2'}
onClick={() => toggleColorScheme()}
color={showSunIcon ? 'gray.4' : 'dark.2'}
onClick={() => {
if (
(colorScheme === 'dark' && !prefersDarkColorScheme) ||
(colorScheme === 'light' && prefersDarkColorScheme)
) {
clearColorScheme()
} else {
toggleColorScheme()
}
}}
title='Toggle color scheme'
size={size}
{...props}
>
{colorScheme === 'dark' ? <Sun size={iconSize} /> : <Moon size={iconSize} />}
{showSunIcon ? <Sun size={iconSize} /> : <Moon size={iconSize} />}
</ActionIcon>
)
}
Loading