diff --git a/pkgs/webview-ui/app/src/components/BackButton.tsx b/pkgs/webview-ui/app/src/components/BackButton.tsx
new file mode 100644
index 000000000..e113739cb
--- /dev/null
+++ b/pkgs/webview-ui/app/src/components/BackButton.tsx
@@ -0,0 +1,10 @@
+import { useNavigate } from "@solidjs/router";
+
+export const BackButton = () => {
+ const navigate = useNavigate();
+ return (
+
+ );
+};
diff --git a/pkgs/webview-ui/app/src/components/MachineListItem.tsx b/pkgs/webview-ui/app/src/components/MachineListItem.tsx
index 6a41b23b6..17a833b25 100644
--- a/pkgs/webview-ui/app/src/components/MachineListItem.tsx
+++ b/pkgs/webview-ui/app/src/components/MachineListItem.tsx
@@ -3,7 +3,7 @@ import { callApi, SuccessData } from "../api";
import { Menu } from "./Menu";
import { activeURI } from "../App";
import toast from "solid-toast";
-import { useNavigate } from "@solidjs/router";
+import { A, useNavigate } from "@solidjs/router";
type MachineDetails = SuccessData<"list_inventory_machines">["data"][string];
@@ -116,14 +116,16 @@ export const MachineListItem = (props: MachineListItemProps) => {
-
- {name}
-
+
+
+ {name}
+
+
{(d) => d()?.description}
diff --git a/pkgs/webview-ui/app/src/routes/clan/clanDetails.tsx b/pkgs/webview-ui/app/src/routes/clan/clanDetails.tsx
index 7c857591e..0e33ffeb3 100644
--- a/pkgs/webview-ui/app/src/routes/clan/clanDetails.tsx
+++ b/pkgs/webview-ui/app/src/routes/clan/clanDetails.tsx
@@ -7,7 +7,9 @@ import {
SubmitHandler,
} from "@modular-forms/solid";
import toast from "solid-toast";
-import { setActiveURI } from "@/src/App";
+import { setActiveURI, setClanList } from "@/src/App";
+import { TextInput } from "@/src/components/TextInput";
+import { useNavigate } from "@solidjs/router";
type CreateForm = Meta & {
template: string;
@@ -21,10 +23,10 @@ export const ClanForm = () => {
template: "minimal",
},
});
+ const navigate = useNavigate();
const handleSubmit: SubmitHandler
= async (values, event) => {
const { template, ...meta } = values;
-
const response = await callApi("open_file", {
file_request: { mode: "save" },
});
@@ -39,29 +41,31 @@ export const ClanForm = () => {
return;
}
- await toast.promise(
- (async () => {
- await callApi("create_clan", {
- options: {
- directory: target_dir[0],
- template,
- initial: {
- meta,
- services: {},
- machines: {},
- },
- },
- });
- setActiveURI(target_dir[0]);
- // setRoute("machines");
- })(),
- {
- loading: "Creating clan...",
- success: "Clan Successfully Created",
- error: "Failed to create clan",
+ const loading_toast = toast.loading("Creating Clan....");
+ const r = await callApi("create_clan", {
+ options: {
+ directory: target_dir[0],
+ template,
+ initial: {
+ meta,
+ services: {},
+ machines: {},
+ },
},
- );
- reset(formStore);
+ });
+ toast.dismiss(loading_toast);
+
+ if (r.status === "error") {
+ toast.error("Failed to create clan");
+ return;
+ }
+ if (r.status === "success") {
+ toast.success("Clan Successfully Created");
+ setActiveURI(target_dir[0]);
+ setClanList((list) => [...list, target_dir[0]]);
+ navigate("/machines");
+ reset(formStore);
+ }
};
return (
@@ -108,7 +112,7 @@ export const ClanForm = () => {
{...props}
disabled={formStore.submitting}
required
- placeholder="Clan Name"
+ placeholder="Give your Clan a legendary name"
class="input input-bordered"
classList={{ "input-error": !!field.error }}
value={field.value}
@@ -133,7 +137,7 @@ export const ClanForm = () => {
disabled={formStore.submitting}
required
type="text"
- placeholder="Some words about your clan"
+ placeholder="Tell us what makes your Clan legendary"
class="input input-bordered"
classList={{ "input-error": !!field.error }}
value={field.value || ""}
@@ -152,23 +156,20 @@ export const ClanForm = () => {
Advanced
-
+
clan-core #
+ ),
+ position: "start",
+ }}
+ formStore={formStore}
+ inputProps={props}
+ label="Template to use"
+ value={field.value ?? ""}
+ error={field.error}
+ required
+ />
)}
diff --git a/pkgs/webview-ui/app/src/routes/machines/[name]/view.tsx b/pkgs/webview-ui/app/src/routes/machines/[name]/view.tsx
index 43622b589..4acfcc694 100644
--- a/pkgs/webview-ui/app/src/routes/machines/[name]/view.tsx
+++ b/pkgs/webview-ui/app/src/routes/machines/[name]/view.tsx
@@ -1,5 +1,6 @@
import { callApi, SuccessData } from "@/src/api";
import { activeURI } from "@/src/App";
+import { BackButton } from "@/src/components/BackButton";
import { FileInput } from "@/src/components/FileInput";
import { SelectInput } from "@/src/components/SelectInput";
import { TextInput } from "@/src/components/TextInput";
@@ -420,159 +421,163 @@ const MachineForm = (props: MachineDetailsProps) => {
}
};
return (
-