From 7447460b5af698d7d88717ad47e9d256ea81bd88 Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 29 Sep 2025 14:17:53 -0400 Subject: wip: zen --- .../app/src/routes/workspace/member-section.tsx | 42 +++++++++++++++------- 1 file changed, 29 insertions(+), 13 deletions(-) (limited to 'packages/console/app/src') diff --git a/packages/console/app/src/routes/workspace/member-section.tsx b/packages/console/app/src/routes/workspace/member-section.tsx index 602c29efc..d0afd7eb9 100644 --- a/packages/console/app/src/routes/workspace/member-section.tsx +++ b/packages/console/app/src/routes/workspace/member-section.tsx @@ -5,7 +5,7 @@ import { createStore } from "solid-js/store" import { formatDateUTC, formatDateForTable } from "./common" import styles from "./member-section.module.css" import { and, Database, eq, sql } from "@opencode/console-core/drizzle/index.js" -import { UserTable } from "@opencode/console-core/schema/user.sql.js" +import { UserTable, UserRole } from "@opencode/console-core/schema/user.sql.js" import { Identifier } from "@opencode/console-core/identifier.js" const removeMember = action(async (form: FormData) => { @@ -31,10 +31,12 @@ const removeMember = action(async (form: FormData) => { const inviteMember = action(async (form: FormData) => { "use server" - const name = form.get("name")?.toString().trim() - if (!name) return { error: "Name is required" } + const email = form.get("email")?.toString().trim() + if (!email) return { error: "Email is required" } const workspaceID = form.get("workspaceID")?.toString() if (!workspaceID) return { error: "Workspace ID is required" } + const role = form.get("role")?.toString() as (typeof UserRole)[number] + if (!role) return { error: "Role is required" } return json( await withActor( () => @@ -44,12 +46,10 @@ const inviteMember = action(async (form: FormData) => { .values({ id: Identifier.create("user"), name: "", - email: name, + email, workspaceID, - role: "member", - timeJoined: sql`now()`, + role, }) - .onDuplicateKeyUpdate({ set: { timeJoined: sql`now()` } }) .then((data) => ({ error: undefined, data })) .catch((e) => ({ error: e.message as string })), ), @@ -109,7 +109,23 @@ export function MemberCreateForm() { >
- (input = r)} data-component="input" name="name" type="text" placeholder="Enter email" /> + (input = r)} data-component="input" name="email" type="text" placeholder="Enter email" /> +
+ + +
{(err) =>
{err()}
}
@@ -160,15 +176,15 @@ export function MemberSection() { {(member) => { - const [copied, setCopied] = createSignal(false) - // const submission = useSubmission(removeKey, ([fd]) => fd.get("id")?.toString() === key.id) return ( {member.email} {member.role} - - {formatDateForTable(member.timeJoined!)} - + invited}> + + {formatDateForTable(member.timeSeen!)} + + -- cgit v1.2.3