From e677a45ecd00d9f3c60e269fc0c4e001b6ebfa3b Mon Sep 17 00:00:00 2001 From: przeq piciel Date: Sat, 14 Sep 2024 18:12:56 +0000 Subject: [PATCH] Refactor file loading and code retrieval logic --- app/app/files/edit/page.tsx | 19 ++++++-- .../TextEditor/LanguageSelector/index.tsx | 45 +++++++++++++++++++ 2 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 app/components/TextEditor/LanguageSelector/index.tsx diff --git a/app/app/files/edit/page.tsx b/app/app/files/edit/page.tsx index 2d9f377..ee1b82e 100644 --- a/app/app/files/edit/page.tsx +++ b/app/app/files/edit/page.tsx @@ -3,6 +3,9 @@ import React, { useEffect, useState } from "react"; import { useSearchParams } from "next/navigation"; import TextEditor from "@/components/TextEditor"; +import LanguageSelector from "@/components/TextEditor/LanguageSelector"; +import { languages } from "@/components/TextEditor/LanguageSelector/languages"; + import BreadCrumbs from "@/components/BreadCrumbs"; import ServerIcon from "@/components/Icons/Server"; import FolderIcon from "@/components/Icons/Folder"; @@ -14,6 +17,11 @@ function Page() { const serverId = searchParams.get("serverid") || ""; const path = searchParams.get("path") || ""; const [code, setCode] = useState(""); + const [language, setLanguage] = useState("plaintext"); + + const setLanguageHandler = (event: any) => { + setLanguage(event.target.value); + }; useEffect( function () { @@ -36,7 +44,7 @@ function Page() { return ( <> -
+
  • @@ -72,9 +80,14 @@ function Page() { ); })} - +
    + + +
    - + ); } diff --git a/app/components/TextEditor/LanguageSelector/index.tsx b/app/components/TextEditor/LanguageSelector/index.tsx new file mode 100644 index 0000000..a3cc36e --- /dev/null +++ b/app/components/TextEditor/LanguageSelector/index.tsx @@ -0,0 +1,45 @@ +import React, { useState } from "react"; +import { languages } from "./languages"; + +interface LanguageSelectorProps { + onChange: (event: any) => void; + defaultLanguage?: string; +} + +const Index = (props: LanguageSelectorProps) => { + const { onChange } = props; + let { defaultLanguage } = props; + + if (!defaultLanguage) { + defaultLanguage = "plaintext"; + } + + const [selectedLanguage, setSelectedLanguage] = + useState(defaultLanguage); + + const handleChange = (event: React.ChangeEvent) => { + setSelectedLanguage(event.target.value); + onChange(event); + }; + + return ( + + ); +}; + +export default Index;