diff --git a/pkgs/webview-ui/app/src/index.css b/pkgs/webview-ui/app/src/index.css index 0fd274ce6..169082015 100644 --- a/pkgs/webview-ui/app/src/index.css +++ b/pkgs/webview-ui/app/src/index.css @@ -3,3 +3,9 @@ @tailwind base; @tailwind components; @tailwind utilities; + + +html { + overflow-x: hidden; + overflow-y: scroll; +} \ No newline at end of file diff --git a/pkgs/webview-ui/app/src/routes/clan/clanDetails.tsx b/pkgs/webview-ui/app/src/routes/clan/clanDetails.tsx index 3061054d6..bd11871d6 100644 --- a/pkgs/webview-ui/app/src/routes/clan/clanDetails.tsx +++ b/pkgs/webview-ui/app/src/routes/clan/clanDetails.tsx @@ -8,7 +8,12 @@ import { createEffect, createSignal, } from "solid-js"; -import { SubmitHandler, createForm, required } from "@modular-forms/solid"; +import { + SubmitHandler, + createForm, + required, + custom, +} from "@modular-forms/solid"; import toast from "solid-toast"; import { setCurrClanURI, setRoute } from "@/src/App"; import { isValidHostname } from "@/util"; @@ -21,14 +26,21 @@ interface ClanFormProps { actions: JSX.Element; } +type CreateForm = Meta & { + template_url: string; +}; + export const ClanForm = (props: ClanFormProps) => { const { actions } = props; - const [formStore, { Form, Field }] = createForm({ - initialValues: {}, + const [formStore, { Form, Field }] = createForm({ + initialValues: { + template_url: "git+https://git.clan.lol/clan/clan-core#templates.minimal", + }, }); - const handleSubmit: SubmitHandler = (values, event) => { + const handleSubmit: SubmitHandler = (values, event) => { console.log("submit", values); + const { template_url, ...meta } = values; pyApi.open_file.dispatch({ file_request: { mode: "save", @@ -70,7 +82,7 @@ export const ClanForm = (props: ClanFormProps) => { }); pyApi.create_clan.dispatch({ - options: { directory: target_dir, meta: values }, + options: { directory: target_dir, meta, template_url }, op_key: "create_clan", }); }), @@ -84,7 +96,7 @@ export const ClanForm = (props: ClanFormProps) => { }; return ( -
+
{(field, props) => ( @@ -111,79 +123,92 @@ export const ClanForm = (props: ClanFormProps) => { )}
-
- - {(field, props) => ( -
+ +
+ {field.error && ( + {field.error} + )} +
+ + )} + + + {(field, props) => ( +
+ + +
+ +
+
+ )} +
+ {actions}
); }; -// export const EditMetaFields = (props: MetaFieldsProps) => { -// const { meta, editable, actions, directory } = props; - -// const [editing, setEditing] = createSignal< -// keyof MetaFieldsProps["meta"] | null -// >(null); -// return ( - -// ); -// }; - -type ClanMeta = Extract< +type Meta = Extract< OperationResponse<"show_clan_meta">, { status: "success" } >["data"]; @@ -198,7 +223,7 @@ export const ClanDetails = (props: ClanDetailsProps) => { >["errors"] | null >(null); - const [data, setData] = createSignal(); + const [data, setData] = createSignal(); const loadMeta = () => { pyApi.show_clan_meta.dispatch({ uri: directory }); @@ -226,7 +251,6 @@ export const ClanDetails = (props: ClanDetailsProps) => { const meta = data(); return (