feat(HAI-001): update CreateTaskModal to require description and make title optional

This commit is contained in:
Dustin Byrne
2026-03-25 19:04:38 -04:00
parent 20b7b8e562
commit 5a9fc24900

View File

@@ -12,10 +12,10 @@ export function CreateTaskModal({ onClose, onCreateTask, addToast }: CreateTaskM
const [title, setTitle] = useState("");
const [description, setDescription] = useState("");
const [deps, setDeps] = useState("");
const titleRef = useRef<HTMLInputElement>(null);
const descRef = useRef<HTMLTextAreaElement>(null);
useEffect(() => {
setTimeout(() => titleRef.current?.focus(), 100);
setTimeout(() => descRef.current?.focus(), 100);
}, []);
useEffect(() => {
@@ -36,9 +36,9 @@ export function CreateTaskModal({ onClose, onCreateTask, addToast }: CreateTaskM
const handleSubmit = useCallback(
async (e: React.FormEvent) => {
e.preventDefault();
const trimmedTitle = title.trim();
if (!trimmedTitle) return;
if (!description.trim()) return;
const trimmedTitle = title.trim();
const dependencies = deps
.split(",")
.map((s) => s.trim())
@@ -46,8 +46,8 @@ export function CreateTaskModal({ onClose, onCreateTask, addToast }: CreateTaskM
try {
const task = await onCreateTask({
title: trimmedTitle,
description: description.trim() || undefined,
description: description.trim(),
title: trimmedTitle || undefined,
dependencies: dependencies.length ? dependencies : undefined,
});
addToast(`Created ${task.id}`, "success");
@@ -70,27 +70,27 @@ export function CreateTaskModal({ onClose, onCreateTask, addToast }: CreateTaskM
</div>
<form onSubmit={handleSubmit}>
<div className="form-group">
<label htmlFor="task-title">Title</label>
<input
ref={titleRef}
type="text"
id="task-title"
placeholder="What needs to be done?"
<label htmlFor="task-desc">Description</label>
<textarea
ref={descRef}
id="task-desc"
rows={4}
placeholder="What needs to be done? Add context, requirements, or rough notes..."
required
value={title}
onChange={(e) => setTitle(e.target.value)}
value={description}
onChange={(e) => setDescription(e.target.value)}
/>
</div>
<div className="form-group">
<label htmlFor="task-desc">
Description <span className="optional">(optional)</span>
<label htmlFor="task-title">
Title <span className="optional">(optional)</span>
</label>
<textarea
id="task-desc"
rows={4}
placeholder="Add context, requirements, or rough notes..."
value={description}
onChange={(e) => setDescription(e.target.value)}
<input
type="text"
id="task-title"
placeholder="Short summary (auto-generated if empty)"
value={title}
onChange={(e) => setTitle(e.target.value)}
/>
</div>
<div className="form-group">