feat(LanguageSelector): add loading state for hydration

This commit is contained in:
cfngc4594 2025-03-20 15:41:00 +08:00
parent 7051f57204
commit 5db172fce3

View File

@ -7,11 +7,16 @@ import {
SelectTrigger, SelectTrigger,
SelectValue, SelectValue,
} from "@/components/ui/select"; } from "@/components/ui/select";
import { Loading } from "@/components/loading";
import { useProblemEditor } from "@/hooks/use-problem-editor"; import { useProblemEditor } from "@/hooks/use-problem-editor";
import { EditorLanguageIcons } from "@/config/editor-language-icons"; import { EditorLanguageIcons } from "@/config/editor-language-icons";
export default function LanguageSelector() { export function LanguageSelector() {
const { currentLang, changeLang, editorLanguageConfigs } = useProblemEditor(); const { hydrated, currentLang, changeLang, editorLanguageConfigs } = useProblemEditor();
if (!hydrated) {
return <Loading className="h-6 w-16 p-0" skeletonClassName="rounded-2xl" />
}
return ( return (
<Select value={currentLang} onValueChange={changeLang}> <Select value={currentLang} onValueChange={changeLang}>