diff --git a/src/components/create/confirm-submit.tsx b/src/components/create/confirm-submit.tsx index 40faa6d..52cf45c 100644 --- a/src/components/create/confirm-submit.tsx +++ b/src/components/create/confirm-submit.tsx @@ -1,4 +1,4 @@ -import { createSignal, For, Show } from "solid-js"; +import { For, Show } from "solid-js"; import { hasUserScope } from "../../auth/scope-utils"; import { Button } from "../button.jsx"; @@ -13,15 +13,15 @@ const inactiveClass = "hover:bg-neutral-100 dark:hover:bg-neutral-700"; export const ConfirmSubmit = (props: { isCreate: boolean; - onConfirm: (validate: boolean | undefined, recreate: boolean) => void; + validate: boolean | undefined; + setValidate: (v: boolean | undefined) => void; + recreate: boolean; + setRecreate: (v: boolean) => void; onClose: () => void; }) => { - const [validate, setValidate] = createSignal(undefined); - const [recreate, setRecreate] = createSignal(false); - return (
-

{props.isCreate ? "Create" : "Edit"} record

+

Advanced options

@@ -31,8 +31,8 @@ export const ConfirmSubmit = (props: { {(opt) => ( @@ -53,9 +53,9 @@ export const ConfirmSubmit = (props: { > setRecreate(e.currentTarget.checked)} + onChange={(e) => props.setRecreate(e.currentTarget.checked)} class="h-3.5 w-3.5 accent-blue-500" /> Recreate{!hasUserScope("create") ? " (create permission needed)" : ""} @@ -66,16 +66,8 @@ export const ConfirmSubmit = (props: {
-
- - +
+
); diff --git a/src/components/create/index.tsx b/src/components/create/index.tsx index 1ea986c..28af1ba 100644 --- a/src/components/create/index.tsx +++ b/src/components/create/index.tsx @@ -45,6 +45,8 @@ export const RecordEditor = (props: { const [openInsertMenu, setOpenInsertMenu] = createSignal(false); const [openHandleDialog, setOpenHandleDialog] = createSignal(false); const [openConfirmDialog, setOpenConfirmDialog] = createSignal(false); + const [validate, setValidate] = createSignal(undefined); + const [recreate, setRecreate] = createSignal(false); const hasPermission = () => !props.scope || hasUserScope(props.scope); const [isMaximized, setIsMaximized] = createSignal(false); @@ -139,7 +141,6 @@ export const RecordEditor = (props: { setNotice(`${res.data.error}: ${res.data.message}`); return; } - setOpenConfirmDialog(false); setOpenDialog(false); const id = addNotification({ message: "Record created", @@ -199,7 +200,6 @@ export const RecordEditor = (props: { return; } } - setOpenConfirmDialog(false); setOpenDialog(false); const id = addNotification({ message: "Record edited", @@ -415,24 +415,32 @@ export const RecordEditor = (props: { setOpenConfirmDialog(false)} - closeOnClick={false} contentClass="dark:bg-dark-300 dark:shadow-dark-700 pointer-events-auto w-[24rem] rounded-lg border-[0.5px] border-neutral-300 bg-neutral-50 p-4 shadow-md dark:border-neutral-700" > { - if (props.create) { - createRecord(validate); - } else { - editRecord(validate, recreate); - } - }} + validate={validate()} + setValidate={setValidate} + recreate={recreate()} + setRecreate={setRecreate} onClose={() => setOpenConfirmDialog(false)} />
- +