From 672b627ed19d2bdabcefcdbefc49589d99447a4f Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Sat, 15 Mar 2025 22:34:23 +0800 Subject: [PATCH] chore(app): remove playground folder --- .../@problem/@description/layout.tsx | 18 ---- .../playground/@problem/@description/page.tsx | 6 -- .../@problem/@solution/components/footer.tsx | 23 ----- .../playground/@problem/@solution/layout.tsx | 18 ---- .../playground/@problem/@solution/page.tsx | 6 -- .../@submission/components/footer.tsx | 24 ------ .../@problem/@submission/layout.tsx | 16 ---- .../playground/@problem/@submission/page.tsx | 23 ----- src/app/(app)/playground/@problem/layout.tsx | 85 ------------------- .../@editor/components/copy-button.tsx | 70 --------------- .../@workspace/@editor/components/footer.tsx | 53 ------------ .../@editor/components/format-button.tsx | 38 --------- .../@workspace/@editor/components/header.tsx | 36 -------- .../@editor/components/language-selector.tsx | 47 ---------- .../@editor/components/redo-button.tsx | 38 --------- .../@editor/components/reset-button.tsx | 51 ----------- .../@editor/components/undo-button.tsx | 38 --------- .../playground/@workspace/@editor/layout.tsx | 20 ----- .../playground/@workspace/@editor/page.tsx | 6 -- .../(app)/playground/@workspace/layout.tsx | 49 ----------- src/app/(app)/playground/layout.tsx | 40 --------- src/app/(app)/playground/page.tsx | 5 -- 22 files changed, 710 deletions(-) delete mode 100644 src/app/(app)/playground/@problem/@description/layout.tsx delete mode 100644 src/app/(app)/playground/@problem/@description/page.tsx delete mode 100644 src/app/(app)/playground/@problem/@solution/components/footer.tsx delete mode 100644 src/app/(app)/playground/@problem/@solution/layout.tsx delete mode 100644 src/app/(app)/playground/@problem/@solution/page.tsx delete mode 100644 src/app/(app)/playground/@problem/@submission/components/footer.tsx delete mode 100644 src/app/(app)/playground/@problem/@submission/layout.tsx delete mode 100644 src/app/(app)/playground/@problem/@submission/page.tsx delete mode 100644 src/app/(app)/playground/@problem/layout.tsx delete mode 100644 src/app/(app)/playground/@workspace/@editor/components/copy-button.tsx delete mode 100644 src/app/(app)/playground/@workspace/@editor/components/footer.tsx delete mode 100644 src/app/(app)/playground/@workspace/@editor/components/format-button.tsx delete mode 100644 src/app/(app)/playground/@workspace/@editor/components/header.tsx delete mode 100644 src/app/(app)/playground/@workspace/@editor/components/language-selector.tsx delete mode 100644 src/app/(app)/playground/@workspace/@editor/components/redo-button.tsx delete mode 100644 src/app/(app)/playground/@workspace/@editor/components/reset-button.tsx delete mode 100644 src/app/(app)/playground/@workspace/@editor/components/undo-button.tsx delete mode 100644 src/app/(app)/playground/@workspace/@editor/layout.tsx delete mode 100644 src/app/(app)/playground/@workspace/@editor/page.tsx delete mode 100644 src/app/(app)/playground/@workspace/layout.tsx delete mode 100644 src/app/(app)/playground/layout.tsx delete mode 100644 src/app/(app)/playground/page.tsx diff --git a/src/app/(app)/playground/@problem/@description/layout.tsx b/src/app/(app)/playground/@problem/@description/layout.tsx deleted file mode 100644 index e23f49f..0000000 --- a/src/app/(app)/playground/@problem/@description/layout.tsx +++ /dev/null @@ -1,18 +0,0 @@ -// import ProblemDescriptionFooter from "@/features/playground/problem/description/footer"; - -interface ProblemDescriptionLayoutProps { - children: React.ReactNode; -} - -export default function ProblemDescriptionLayout({ - children, -}: ProblemDescriptionLayoutProps) { - return ( -
-
- {children} -
- {/* */} -
- ); -} diff --git a/src/app/(app)/playground/@problem/@description/page.tsx b/src/app/(app)/playground/@problem/@description/page.tsx deleted file mode 100644 index 7ef0a48..0000000 --- a/src/app/(app)/playground/@problem/@description/page.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import MdxPreview from "@/components/mdx-preview"; -import { DEFAULT_PROBLEM_DESCRIPTION } from "@/config/problem/description"; - -export default function ProblemDescriptionPage() { - return ; -} diff --git a/src/app/(app)/playground/@problem/@solution/components/footer.tsx b/src/app/(app)/playground/@problem/@solution/components/footer.tsx deleted file mode 100644 index c929b81..0000000 --- a/src/app/(app)/playground/@problem/@solution/components/footer.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { cn } from "@/lib/utils"; - -interface ProblemSolutionFooterProps { - className?: string; -} - -export default function ProblemSolutionFooter({ - className, - ...props -}: ProblemSolutionFooterProps) { - return ( -
-
- - Solution of Two Sum - -
-
- ); -} diff --git a/src/app/(app)/playground/@problem/@solution/layout.tsx b/src/app/(app)/playground/@problem/@solution/layout.tsx deleted file mode 100644 index c5803d7..0000000 --- a/src/app/(app)/playground/@problem/@solution/layout.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import ProblemSolutionFooter from "./components/footer"; - -interface ProblemSolutionLayoutProps { - children: React.ReactNode; -} - -export default function ProblemSolutionLayout({ - children, -}: ProblemSolutionLayoutProps) { - return ( -
-
- {children} -
- -
- ); -} diff --git a/src/app/(app)/playground/@problem/@solution/page.tsx b/src/app/(app)/playground/@problem/@solution/page.tsx deleted file mode 100644 index bd33438..0000000 --- a/src/app/(app)/playground/@problem/@solution/page.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import MdxPreview from "@/components/mdx-preview"; -import { DEFAULT_PROBLEM_SOLUTION } from "@/config/problem/solution"; - -export default function ProblemSolutionPage() { - return ; -} diff --git a/src/app/(app)/playground/@problem/@submission/components/footer.tsx b/src/app/(app)/playground/@problem/@submission/components/footer.tsx deleted file mode 100644 index f3fc0a7..0000000 --- a/src/app/(app)/playground/@problem/@submission/components/footer.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { cn } from "@/lib/utils"; - -interface ProblemSubmissionFooterProps { - className?: string; -} - -export default function ProblemSubmissionFooter({ - className, - ...props -}: ProblemSubmissionFooterProps) { - return ( -
-
- Submission of Two Sum -
-
- ); -} diff --git a/src/app/(app)/playground/@problem/@submission/layout.tsx b/src/app/(app)/playground/@problem/@submission/layout.tsx deleted file mode 100644 index 438f5e3..0000000 --- a/src/app/(app)/playground/@problem/@submission/layout.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import ProblemSubmissionFooter from "./components/footer"; - -interface ProblemSubmissionLayoutProps { - children: React.ReactNode; -} - -export default function ProblemSubmissionLayout({ - children, -}: ProblemSubmissionLayoutProps) { - return ( -
-
{children}
- -
- ); -} diff --git a/src/app/(app)/playground/@problem/@submission/page.tsx b/src/app/(app)/playground/@problem/@submission/page.tsx deleted file mode 100644 index 8e9b801..0000000 --- a/src/app/(app)/playground/@problem/@submission/page.tsx +++ /dev/null @@ -1,23 +0,0 @@ -"use client"; - -import { useMemo } from 'react'; -import MdxPreview from "@/components/mdx-preview"; -import { useCodeEditorStore } from "@/store/useCodeEditorStore"; - -export default function ProblemSubmissionPage() { - const { result } = useCodeEditorStore(); - const { exitCode, output, executionTime, memoryUsage } = result || {}; - - const template = useMemo(() => { - return ` - ${exitCode || ""} - \`\`\`bash - ${output || ""} - \`\`\` - ${executionTime || ""} - ${memoryUsage || ""} - `; - }, [exitCode, output, executionTime, memoryUsage]); - - return ; -} diff --git a/src/app/(app)/playground/@problem/layout.tsx b/src/app/(app)/playground/@problem/layout.tsx deleted file mode 100644 index 2d93f1e..0000000 --- a/src/app/(app)/playground/@problem/layout.tsx +++ /dev/null @@ -1,85 +0,0 @@ -"use client"; - -import { Skeleton } from "@/components/ui/skeleton"; -import { useTabsStore } from "@/store/useTabsStore"; -import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { CircleCheckBigIcon, FileTextIcon, FlaskConicalIcon } from "lucide-react"; - -interface ProblemLayoutProps { - description: React.ReactNode; - solution: React.ReactNode; - submission: React.ReactNode; -} - -export default function ProblemLayout({ - description, - solution, - submission, -}: ProblemLayoutProps) { - const { hydrated, problemTab, setProblemTab } = useTabsStore(); - - if (!hydrated) return ( -
- - - -
- ) - - const handleTabChange = (value: string) => { - setProblemTab(value); - }; - - return ( - - - - - - - - - - - - - - {description} - - - {solution} - - - {submission} - - - ); -} diff --git a/src/app/(app)/playground/@workspace/@editor/components/copy-button.tsx b/src/app/(app)/playground/@workspace/@editor/components/copy-button.tsx deleted file mode 100644 index 375c21c..0000000 --- a/src/app/(app)/playground/@workspace/@editor/components/copy-button.tsx +++ /dev/null @@ -1,70 +0,0 @@ -"use client"; - -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/ui/tooltip"; -import { cn } from "@/lib/utils"; -import { useState } from "react"; -import { Check, Copy } from "lucide-react"; -import { Button } from "@/components/ui/button"; -import { useCodeEditorStore } from "@/store/useCodeEditorStore"; - -export default function CopyButton() { - const [copied, setCopied] = useState(false); - const { editor } = useCodeEditorStore(); - - const handleCopy = async () => { - try { - await navigator.clipboard.writeText(editor?.getValue() || ""); - setCopied(true); - setTimeout(() => setCopied(false), 1500); - } catch (err) { - console.error("Failed to copy text: ", err); - } - }; - - return ( - - - - - - - Click to Copy - - - - ); -} diff --git a/src/app/(app)/playground/@workspace/@editor/components/footer.tsx b/src/app/(app)/playground/@workspace/@editor/components/footer.tsx deleted file mode 100644 index 65bb5b3..0000000 --- a/src/app/(app)/playground/@workspace/@editor/components/footer.tsx +++ /dev/null @@ -1,53 +0,0 @@ -"use client"; - -import { cn } from "@/lib/utils"; -import { useEffect, useState } from "react"; -import { useCodeEditorStore } from "@/store/useCodeEditorStore"; - -interface WorkspaceEditorFooterProps { - className?: string; -} - -export default function WorkspaceEditorFooter({ - className, - ...props -}: WorkspaceEditorFooterProps) { - const { editor } = useCodeEditorStore(); - const [position, setPosition] = useState<{ lineNumber: number; column: number } | null>(null); - - useEffect(() => { - if (!editor) return; - - const initialPosition = editor.getPosition(); - if (initialPosition) { - setPosition({ - lineNumber: initialPosition.lineNumber, - column: initialPosition.column, - }); - } - - const dispose = editor.onDidChangeCursorPosition((e) => { - setPosition({ - lineNumber: e.position.lineNumber, - column: e.position.column, - }); - }); - - return () => dispose.dispose(); - }, [editor]); - - return ( -
-
- - {position - ? `Row ${position.lineNumber}, Column ${position.column}` - : "Row -, Column -"} - -
-
- ); -} diff --git a/src/app/(app)/playground/@workspace/@editor/components/format-button.tsx b/src/app/(app)/playground/@workspace/@editor/components/format-button.tsx deleted file mode 100644 index 8179069..0000000 --- a/src/app/(app)/playground/@workspace/@editor/components/format-button.tsx +++ /dev/null @@ -1,38 +0,0 @@ -"use client"; - -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/ui/tooltip"; -import { Paintbrush } from "lucide-react"; -import { Button } from "@/components/ui/button"; -import { useCodeEditorStore } from "@/store/useCodeEditorStore"; - -export default function FormatButton() { - const { editor } = useCodeEditorStore(); - - return ( - - - - - - - Format Code - - - - ); -} diff --git a/src/app/(app)/playground/@workspace/@editor/components/header.tsx b/src/app/(app)/playground/@workspace/@editor/components/header.tsx deleted file mode 100644 index 9cd4e03..0000000 --- a/src/app/(app)/playground/@workspace/@editor/components/header.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { cn } from "@/lib/utils"; -import CopyButton from "./copy-button"; -import RedoButton from "./redo-button"; -import UndoButton from "./undo-button"; -import ResetButton from "./reset-button"; -import FormatButton from "./format-button"; -import LanguageSelector from "./language-selector"; - -interface WorkspaceEditorHeaderProps { - className?: string; -} - -export default function WorkspaceEditorHeader({ - className, - ...props -}: WorkspaceEditorHeaderProps) { - return ( -
-
-
- -
-
- - - - - -
-
-
- ); -} diff --git a/src/app/(app)/playground/@workspace/@editor/components/language-selector.tsx b/src/app/(app)/playground/@workspace/@editor/components/language-selector.tsx deleted file mode 100644 index b149344..0000000 --- a/src/app/(app)/playground/@workspace/@editor/components/language-selector.tsx +++ /dev/null @@ -1,47 +0,0 @@ -"use client"; - -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; -import { getPath } from "@/lib/utils"; -import { EditorLanguage } from "@prisma/client"; -import { Skeleton } from "@/components/ui/skeleton"; -import LanguageServerConfig from "@/config/language-server"; -import { EditorLanguageConfig } from "@/config/editor-language"; -import { useCodeEditorStore } from "@/store/useCodeEditorStore"; - -export default function LanguageSelector() { - const { hydrated, language, setLanguage, setPath, setLspConfig } = useCodeEditorStore(); - - if (!hydrated) { - return ; - } - - const handleValueChange = (lang: EditorLanguage) => { - setLanguage(lang); - setPath(getPath(lang)); - setLspConfig(LanguageServerConfig[lang]); - }; - - return ( - - ); -} diff --git a/src/app/(app)/playground/@workspace/@editor/components/redo-button.tsx b/src/app/(app)/playground/@workspace/@editor/components/redo-button.tsx deleted file mode 100644 index ba28031..0000000 --- a/src/app/(app)/playground/@workspace/@editor/components/redo-button.tsx +++ /dev/null @@ -1,38 +0,0 @@ -"use client"; - -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/ui/tooltip"; -import { Redo2 } from "lucide-react"; -import { Button } from "@/components/ui/button"; -import { useCodeEditorStore } from "@/store/useCodeEditorStore"; - -export default function RedoButton() { - const { editor } = useCodeEditorStore(); - - return ( - - - - - - - Redo Code - - - - ); -} diff --git a/src/app/(app)/playground/@workspace/@editor/components/reset-button.tsx b/src/app/(app)/playground/@workspace/@editor/components/reset-button.tsx deleted file mode 100644 index 9c09037..0000000 --- a/src/app/(app)/playground/@workspace/@editor/components/reset-button.tsx +++ /dev/null @@ -1,51 +0,0 @@ -"use client"; - -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/ui/tooltip"; -import { RotateCcw } from "lucide-react"; -import { Button } from "@/components/ui/button"; -import { useCodeEditorStore } from "@/store/useCodeEditorStore"; -import { TEMP_DEFAULT_EDITOR_VALUE } from "@/config/problem/value"; - -export default function ResetButton() { - const { editor, language } = useCodeEditorStore(); - return ( - - - - - - - Reset Code - - - - ); -} diff --git a/src/app/(app)/playground/@workspace/@editor/components/undo-button.tsx b/src/app/(app)/playground/@workspace/@editor/components/undo-button.tsx deleted file mode 100644 index 21e607f..0000000 --- a/src/app/(app)/playground/@workspace/@editor/components/undo-button.tsx +++ /dev/null @@ -1,38 +0,0 @@ -"use client"; - -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/ui/tooltip"; -import { Undo2 } from "lucide-react"; -import { Button } from "@/components/ui/button"; -import { useCodeEditorStore } from "@/store/useCodeEditorStore"; - -export default function UndoButton() { - const { editor } = useCodeEditorStore(); - - return ( - - - - - - - Undo Code - - - - ); -} diff --git a/src/app/(app)/playground/@workspace/@editor/layout.tsx b/src/app/(app)/playground/@workspace/@editor/layout.tsx deleted file mode 100644 index 4f9d899..0000000 --- a/src/app/(app)/playground/@workspace/@editor/layout.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import WorkspaceEditorHeader from "@/app/(app)/playground/@workspace/@editor/components/header"; -import WorkspaceEditorFooter from "@/app/(app)/playground/@workspace/@editor/components/footer"; - -interface WorkspaceEditorLayoutProps { - children: React.ReactNode; -} - -export default function WorkspaceEditorLayout({ - children, -}: WorkspaceEditorLayoutProps) { - return ( -
- -
- {children} -
- -
- ); -} diff --git a/src/app/(app)/playground/@workspace/@editor/page.tsx b/src/app/(app)/playground/@workspace/@editor/page.tsx deleted file mode 100644 index d863301..0000000 --- a/src/app/(app)/playground/@workspace/@editor/page.tsx +++ /dev/null @@ -1,6 +0,0 @@ -// import CodeEditor from "@/components/code-editor"; - -export default function WorkspaceEditorPage() { - // return ; - return null; -} diff --git a/src/app/(app)/playground/@workspace/layout.tsx b/src/app/(app)/playground/@workspace/layout.tsx deleted file mode 100644 index ed8873a..0000000 --- a/src/app/(app)/playground/@workspace/layout.tsx +++ /dev/null @@ -1,49 +0,0 @@ -"use client"; - -import { SquarePenIcon } from "lucide-react"; -import { Skeleton } from "@/components/ui/skeleton"; -import { useTabsStore } from "@/store/useTabsStore"; -import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; - -interface WorkspaceLayoutProps { - editor: React.ReactNode; -} - -export default function WorkspaceLayout({ editor }: WorkspaceLayoutProps) { - const { hydrated, workspaceTab, setWorkspaceTab } = useTabsStore(); - - if (!hydrated) return ( -
- -
- ) - - const handleTabChange = (value: string) => { - setWorkspaceTab(value); - }; - - return ( - - - - - - - - - - {editor} - - - ); -} diff --git a/src/app/(app)/playground/layout.tsx b/src/app/(app)/playground/layout.tsx deleted file mode 100644 index 7355e31..0000000 --- a/src/app/(app)/playground/layout.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { - ResizableHandle, - ResizablePanel, - ResizablePanelGroup, -} from "@/components/ui/resizable"; -import { PlaygroundHeader } from "@/features/playground/header"; - -interface PlaygroundLayoutProps { - problem: React.ReactNode; - workspace: React.ReactNode; -} - -export default function PlaygroundLayout({ - problem, - workspace, -}: PlaygroundLayoutProps) { - return ( -
- - - - {problem} - - - - {workspace} - - -
- ); -} diff --git a/src/app/(app)/playground/page.tsx b/src/app/(app)/playground/page.tsx deleted file mode 100644 index a3f4217..0000000 --- a/src/app/(app)/playground/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { redirect } from "next/navigation"; - -export default function PlaygroundPage() { - redirect("/problemset"); -}