Merge pull request #343 from Tuluobo/bugfix/delete_service_with_container

fix(ui): close dialog after templete selected & add config editor line wrapping
This commit is contained in:
Mauricio Siu
2024-08-13 22:02:33 -06:00
committed by GitHub
9 changed files with 15 additions and 1 deletions

View File

@@ -46,6 +46,7 @@ export const ShowTraefikConfig = ({ applicationId }: Props) => {
<div className="flex flex-col pt-2 relative"> <div className="flex flex-col pt-2 relative">
<div className="flex flex-col gap-6 max-h-[35rem] min-h-[10rem] overflow-y-auto"> <div className="flex flex-col gap-6 max-h-[35rem] min-h-[10rem] overflow-y-auto">
<CodeEditor <CodeEditor
lineWrapping
value={data || "Empty"} value={data || "Empty"}
disabled disabled
className="font-mono" className="font-mono"

View File

@@ -144,6 +144,7 @@ export const UpdateTraefikConfig = ({ applicationId }: Props) => {
<FormLabel>Traefik config</FormLabel> <FormLabel>Traefik config</FormLabel>
<FormControl> <FormControl>
<CodeEditor <CodeEditor
lineWrapping
wrapperClassName="h-[35rem] font-mono" wrapperClassName="h-[35rem] font-mono"
placeholder={`http: placeholder={`http:
routers: routers:

View File

@@ -104,6 +104,7 @@ export const ShowTraefikFile = ({ path }: Props) => {
</FormDescription> </FormDescription>
<FormControl> <FormControl>
<CodeEditor <CodeEditor
lineWrapping
wrapperClassName="h-[35rem] font-mono" wrapperClassName="h-[35rem] font-mono"
placeholder={`http: placeholder={`http:
routers: routers:

View File

@@ -55,6 +55,7 @@ interface Props {
export const AddTemplate = ({ projectId }: Props) => { export const AddTemplate = ({ projectId }: Props) => {
const [query, setQuery] = useState(""); const [query, setQuery] = useState("");
const [open, setOpen] = useState(false);
const { data } = api.compose.templates.useQuery(); const { data } = api.compose.templates.useQuery();
const [selectedTags, setSelectedTags] = useState<string[]>([]); const [selectedTags, setSelectedTags] = useState<string[]>([]);
const { data: tags, isLoading: isLoadingTags } = const { data: tags, isLoading: isLoadingTags } =
@@ -75,7 +76,7 @@ export const AddTemplate = ({ projectId }: Props) => {
}) || []; }) || [];
return ( return (
<Dialog> <Dialog open={open} onOpenChange={setOpen}>
<DialogTrigger className="w-full"> <DialogTrigger className="w-full">
<DropdownMenuItem <DropdownMenuItem
className="w-full cursor-pointer space-x-3" className="w-full cursor-pointer space-x-3"
@@ -283,6 +284,7 @@ export const AddTemplate = ({ projectId }: Props) => {
utils.project.one.invalidate({ utils.project.one.invalidate({
projectId, projectId,
}); });
setOpen(false);
}) })
.catch(() => { .catch(() => {
toast.error( toast.error(

View File

@@ -106,6 +106,7 @@ export const ShowMainTraefikConfig = ({ children }: Props) => {
<FormLabel>Traefik config</FormLabel> <FormLabel>Traefik config</FormLabel>
<FormControl> <FormControl>
<CodeEditor <CodeEditor
lineWrapping
wrapperClassName="h-[35rem] font-mono" wrapperClassName="h-[35rem] font-mono"
placeholder={`providers: placeholder={`providers:
docker: docker:

View File

@@ -109,6 +109,7 @@ export const ShowServerTraefikConfig = ({ children }: Props) => {
<FormLabel>Traefik config</FormLabel> <FormLabel>Traefik config</FormLabel>
<FormControl> <FormControl>
<CodeEditor <CodeEditor
lineWrapping
wrapperClassName="h-[35rem] font-mono" wrapperClassName="h-[35rem] font-mono"
placeholder={`http: placeholder={`http:
routers: routers:

View File

@@ -3,6 +3,7 @@ import { json } from "@codemirror/lang-json";
import { yaml } from "@codemirror/lang-yaml"; import { yaml } from "@codemirror/lang-yaml";
import { StreamLanguage } from "@codemirror/language"; import { StreamLanguage } from "@codemirror/language";
import { properties } from "@codemirror/legacy-modes/mode/properties"; import { properties } from "@codemirror/legacy-modes/mode/properties";
import { EditorView } from "@codemirror/view";
import { githubDark, githubLight } from "@uiw/codemirror-theme-github"; import { githubDark, githubLight } from "@uiw/codemirror-theme-github";
import CodeMirror, { type ReactCodeMirrorProps } from "@uiw/react-codemirror"; import CodeMirror, { type ReactCodeMirrorProps } from "@uiw/react-codemirror";
import { useTheme } from "next-themes"; import { useTheme } from "next-themes";
@@ -10,6 +11,7 @@ interface Props extends ReactCodeMirrorProps {
wrapperClassName?: string; wrapperClassName?: string;
disabled?: boolean; disabled?: boolean;
language?: "yaml" | "json" | "properties"; language?: "yaml" | "json" | "properties";
lineWrapping?: boolean;
} }
export const CodeEditor = ({ export const CodeEditor = ({
@@ -36,6 +38,7 @@ export const CodeEditor = ({
: language === "json" : language === "json"
? json() ? json()
: StreamLanguage.define(properties), : StreamLanguage.define(properties),
props.lineWrapping ? EditorView.lineWrapping : [],
]} ]}
{...props} {...props}
editable={!props.disabled} editable={!props.disabled}

View File

@@ -39,6 +39,7 @@
"@codemirror/lang-yaml": "^6.1.1", "@codemirror/lang-yaml": "^6.1.1",
"@codemirror/language": "^6.10.1", "@codemirror/language": "^6.10.1",
"@codemirror/legacy-modes": "6.4.0", "@codemirror/legacy-modes": "6.4.0",
"@codemirror/view": "6.29.0",
"@dokploy/trpc-openapi": "0.0.4", "@dokploy/trpc-openapi": "0.0.4",
"@faker-js/faker": "^8.4.1", "@faker-js/faker": "^8.4.1",
"@hookform/resolvers": "^3.3.4", "@hookform/resolvers": "^3.3.4",

3
pnpm-lock.yaml generated
View File

@@ -114,6 +114,9 @@ importers:
'@codemirror/legacy-modes': '@codemirror/legacy-modes':
specifier: 6.4.0 specifier: 6.4.0
version: 6.4.0 version: 6.4.0
'@codemirror/view':
specifier: 6.29.0
version: 6.29.0
'@dokploy/trpc-openapi': '@dokploy/trpc-openapi':
specifier: 0.0.4 specifier: 0.0.4
version: 0.0.4(@trpc/server@10.45.2)(zod@3.23.8) version: 0.0.4(@trpc/server@10.45.2)(zod@3.23.8)