feat: add quick-assign action from people list with person preselected

This commit is contained in:
2026-06-18 22:46:35 +02:00
parent df02d24d79
commit fb5f3da7c1
2 changed files with 21 additions and 2 deletions
@@ -1,7 +1,7 @@
"use client" "use client"
import { zodResolver } from "@hookform/resolvers/zod" import { zodResolver } from "@hookform/resolvers/zod"
import { useRouter } from "next/navigation" import { useRouter, useSearchParams } from "next/navigation"
import { useMemo } from "react" import { useMemo } from "react"
import { useForm } from "react-hook-form" import { useForm } from "react-hook-form"
import { toast } from "sonner" import { toast } from "sonner"
@@ -37,6 +37,8 @@ export default function CreateAssignmentForm({
schemaCopy, schemaCopy,
submitButtonCopy, submitButtonCopy,
}: Props) { }: Props) {
const searchParams = useSearchParams()
const personId = searchParams.get("personId")
const router = useRouter() const router = useRouter()
const schema = useMemo( const schema = useMemo(
@@ -52,6 +54,9 @@ export default function CreateAssignmentForm({
} = useForm<CreateAssignmentFormType>({ } = useForm<CreateAssignmentFormType>({
resolver: zodResolver(schema), resolver: zodResolver(schema),
mode: "onSubmit", mode: "onSubmit",
defaultValues: {
personId: personId ?? "",
},
}) })
const itemId = watch("itemId") const itemId = watch("itemId")
@@ -86,6 +91,7 @@ export default function CreateAssignmentForm({
</label> </label>
<select <select
id="personId" id="personId"
disabled={!!personId}
{...register("personId")} {...register("personId")}
className={`w-full rounded-lg border px-4 py-2 ${ className={`w-full rounded-lg border px-4 py-2 ${
errors.personId ? "border-error" : "" errors.personId ? "border-error" : ""
+14 -1
View File
@@ -1,4 +1,4 @@
import { Eye, Pencil } from "lucide-react" import { Eye, Pencil, UserPlus } from "lucide-react"
import Link from "next/link" import Link from "next/link"
import PageHeader from "@/components/common/pageheader" import PageHeader from "@/components/common/pageheader"
@@ -130,6 +130,19 @@ export default async function PeoplePage(props: {
<Pencil /> <Pencil />
</Button> </Button>
</Link> </Link>
<Link
href={`/assignments/new?personId=${person.id}`}
passHref
>
<Button
className="btn btn-primary"
variant="outline"
size="icon"
aria-label={copy.list.actions.edit}
>
<UserPlus />
</Button>
</Link>
</td> </td>
</tr> </tr>
))} ))}