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"
import { zodResolver } from "@hookform/resolvers/zod"
import { useRouter } from "next/navigation"
import { useRouter, useSearchParams } from "next/navigation"
import { useMemo } from "react"
import { useForm } from "react-hook-form"
import { toast } from "sonner"
@@ -37,6 +37,8 @@ export default function CreateAssignmentForm({
schemaCopy,
submitButtonCopy,
}: Props) {
const searchParams = useSearchParams()
const personId = searchParams.get("personId")
const router = useRouter()
const schema = useMemo(
@@ -52,6 +54,9 @@ export default function CreateAssignmentForm({
} = useForm<CreateAssignmentFormType>({
resolver: zodResolver(schema),
mode: "onSubmit",
defaultValues: {
personId: personId ?? "",
},
})
const itemId = watch("itemId")
@@ -86,6 +91,7 @@ export default function CreateAssignmentForm({
</label>
<select
id="personId"
disabled={!!personId}
{...register("personId")}
className={`w-full rounded-lg border px-4 py-2 ${
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 PageHeader from "@/components/common/pageheader"
@@ -130,6 +130,19 @@ export default async function PeoplePage(props: {
<Pencil />
</Button>
</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>
</tr>
))}