chore: migrate to payload / nextjs

This commit is contained in:
syntaxbullet
2026-06-16 13:02:47 +02:00
parent aff090b693
commit 6b395e5735
257 changed files with 33616 additions and 1451 deletions

View File

@@ -0,0 +1,51 @@
'use client'
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from '@/components/ui/select'
import React, { useState } from 'react'
import type { Theme } from './types'
import { useTheme } from '..'
import { themeLocalStorageKey } from './types'
export const ThemeSelector: React.FC = () => {
const { setTheme } = useTheme()
const [value, setValue] = useState('')
const onThemeChange = (themeToSet: Theme & 'auto') => {
if (themeToSet === 'auto') {
setTheme(null)
setValue('auto')
} else {
setTheme(themeToSet)
setValue(themeToSet)
}
}
React.useEffect(() => {
const preference = window.localStorage.getItem(themeLocalStorageKey)
setValue(preference ?? 'auto')
}, [])
return (
<Select onValueChange={onThemeChange} value={value}>
<SelectTrigger
aria-label="Select a theme"
className="w-auto bg-transparent gap-2 pl-0 md:pl-3 border-none"
>
<SelectValue placeholder="Theme" />
</SelectTrigger>
<SelectContent>
<SelectItem value="auto">Auto</SelectItem>
<SelectItem value="light">Light</SelectItem>
<SelectItem value="dark">Dark</SelectItem>
</SelectContent>
</Select>
)
}