Version 3 of the kit: - Radix UI replaced with Base UI (using the Shadcn UI patterns) - next-intl replaces react-i18next - enhanceAction deprecated; usage moved to next-safe-action - main layout now wrapped with [locale] path segment - Teams only mode - Layout updates - Zod v4 - Next.js 16.2 - Typescript 6 - All other dependencies updated - Removed deprecated Edge CSRF - Dynamic Github Action runner
46 lines
1.0 KiB
TypeScript
46 lines
1.0 KiB
TypeScript
'use client';
|
|
|
|
import { useRouter } from 'next/navigation';
|
|
|
|
import {
|
|
Select,
|
|
SelectContent,
|
|
SelectItem,
|
|
SelectTrigger,
|
|
SelectValue,
|
|
} from '@kit/ui/select';
|
|
|
|
import { EnvMode } from '@/app/variables/lib/types';
|
|
|
|
export function EnvModeSelector({ mode }: { mode: EnvMode }) {
|
|
const router = useRouter();
|
|
|
|
const handleModeChange = (value: EnvMode) => {
|
|
const searchParams = new URLSearchParams(window.location.search);
|
|
const path = window.location.pathname;
|
|
|
|
searchParams.set('mode', value);
|
|
|
|
router.push(`${path}?${searchParams.toString()}`);
|
|
};
|
|
|
|
return (
|
|
<div>
|
|
<Select
|
|
name={'mode'}
|
|
defaultValue={mode}
|
|
onValueChange={handleModeChange}
|
|
>
|
|
<SelectTrigger>
|
|
<SelectValue placeholder="Select Mode" />
|
|
</SelectTrigger>
|
|
|
|
<SelectContent>
|
|
<SelectItem value="development">Development</SelectItem>
|
|
<SelectItem value="production">Production</SelectItem>
|
|
</SelectContent>
|
|
</Select>
|
|
</div>
|
|
);
|
|
}
|