From ad2aca2f679f2026e65090a278ae3529edbb2a95 Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Tue, 13 May 2025 15:18:59 +0800 Subject: [PATCH] refactor(language-selector): migrate to new location and implementation - Remove old language selector from `src/components/features/playground/workspace/editor/components` - Add new implementation in `src/features/problems/code/components/toolbar/controls` - Update toolbar exports to include the new selector --- .../editor/components/language-selector.tsx | 41 -------------- .../toolbar/controls/language-selector.tsx | 54 +++++++++++++++++++ .../problems/code/components/toolbar/index.ts | 1 + 3 files changed, 55 insertions(+), 41 deletions(-) delete mode 100644 src/components/features/playground/workspace/editor/components/language-selector.tsx create mode 100644 src/features/problems/code/components/toolbar/controls/language-selector.tsx diff --git a/src/components/features/playground/workspace/editor/components/language-selector.tsx b/src/components/features/playground/workspace/editor/components/language-selector.tsx deleted file mode 100644 index c7f5f98..0000000 --- a/src/components/features/playground/workspace/editor/components/language-selector.tsx +++ /dev/null @@ -1,41 +0,0 @@ -"use client"; - -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; -import { Loading } from "@/components/loading"; -import { useProblem } from "@/hooks/use-problem"; -import { EditorLanguageIcons } from "@/config/editor-language-icons"; - -export function LanguageSelector() { - const { hydrated, currentLang, changeLang, editorLanguageConfigs } = useProblem(); - - if (!hydrated) { - return ; - } - - return ( - - ); -} diff --git a/src/features/problems/code/components/toolbar/controls/language-selector.tsx b/src/features/problems/code/components/toolbar/controls/language-selector.tsx new file mode 100644 index 0000000..bbf7734 --- /dev/null +++ b/src/features/problems/code/components/toolbar/controls/language-selector.tsx @@ -0,0 +1,54 @@ +"use client"; + +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import { Language } from "@/generated/client"; +import { LANGUAGES } from "@/config/language"; +import COriginal from "devicons-react/icons/COriginal"; +import { useProblemEditorStore } from "@/stores/problem-editor"; +import CplusplusOriginal from "devicons-react/icons/CplusplusOriginal"; + +const getIconForLanguage = (language: Language) => { + switch (language) { + case Language.c: + return