Skip to content

Commit b86f66e

Browse files
committed
feat: integrate TagMultiSelect with AddTaskDialog
1 parent 5a54b26 commit b86f66e

3 files changed

Lines changed: 10 additions & 54 deletions

File tree

frontend/src/components/HomeComponents/Tasks/AddTaskDialog.tsx

Lines changed: 7 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,18 @@ import {
2424
} from '@/components/ui/select';
2525
import { AddTaskDialogProps } from '@/components/utils/types';
2626
import { format } from 'date-fns';
27+
import { TagMultiSelect } from './TagMultiSelect';
2728

2829
export const AddTaskdialog = ({
2930
isOpen,
3031
setIsOpen,
3132
newTask,
3233
setNewTask,
33-
tagInput,
34-
setTagInput,
3534
onSubmit,
3635
isCreatingNewProject,
3736
setIsCreatingNewProject,
3837
uniqueProjects = [],
38+
uniqueTags = [],
3939
allTasks = [],
4040
}: AddTaskDialogProps) => {
4141
const [annotationInput, setAnnotationInput] = useState('');
@@ -102,20 +102,6 @@ export const AddTaskdialog = ({
102102
});
103103
};
104104

105-
const handleAddTag = () => {
106-
if (tagInput && !newTask.tags.includes(tagInput, 0)) {
107-
setNewTask({ ...newTask, tags: [...newTask.tags, tagInput] });
108-
setTagInput('');
109-
}
110-
};
111-
112-
const handleRemoveTag = (tagToRemove: string) => {
113-
setNewTask({
114-
...newTask,
115-
tags: newTask.tags.filter((tag) => tag !== tagToRemove),
116-
});
117-
};
118-
119105
return (
120106
<Dialog open={isOpen} onOpenChange={setIsOpen}>
121107
<DialogTrigger asChild>
@@ -393,40 +379,14 @@ export const AddTaskdialog = ({
393379
Tags
394380
</Label>
395381
<div className="col-span-6">
396-
<Input
397-
id="tags"
398-
name="tags"
399-
placeholder="Add a tag"
400-
value={tagInput}
401-
onChange={(e) => setTagInput(e.target.value)}
402-
onKeyDown={(e) => e.key === 'Enter' && handleAddTag()}
403-
required
404-
className="col-span-6"
382+
<TagMultiSelect
383+
availableTags={uniqueTags}
384+
selectedTags={newTask.tags}
385+
onTagsChange={(tags) => setNewTask({ ...newTask, tags })}
386+
placeholder="Select or create tags"
405387
/>
406388
</div>
407389
</div>
408-
409-
<div className="mt-2">
410-
{newTask.tags.length > 0 && (
411-
<div className="grid grid-cols-4 items-center">
412-
<div> </div>
413-
<div className="flex flex-wrap gap-2 col-span-3">
414-
{newTask.tags.map((tag, index) => (
415-
<Badge key={index}>
416-
<span>{tag}</span>
417-
<button
418-
type="button"
419-
className="ml-2 text-red-500"
420-
onClick={() => handleRemoveTag(tag)}
421-
>
422-
423-
</button>
424-
</Badge>
425-
))}
426-
</div>
427-
</div>
428-
)}
429-
</div>
430390
<div className="grid grid-cols-8 items-center gap-4">
431391
<Label htmlFor="annotations" className="text-right col-span-2">
432392
Annotation

frontend/src/components/HomeComponents/Tasks/Tasks.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ export const Tasks = (
105105
const [isCreatingNewProject, setIsCreatingNewProject] = useState(false);
106106
const [isAddTaskOpen, setIsAddTaskOpen] = useState(false);
107107
const [_isDialogOpen, setIsDialogOpen] = useState(false);
108-
const [tagInput, setTagInput] = useState('');
109108
const [_selectedTask, setSelectedTask] = useState<Task | null>(null);
110109
const [editedTags, setEditedTags] = useState<string[]>(
111110
_selectedTask?.tags || []
@@ -1123,12 +1122,11 @@ export const Tasks = (
11231122
setIsOpen={setIsAddTaskOpen}
11241123
newTask={newTask}
11251124
setNewTask={setNewTask}
1126-
tagInput={tagInput}
1127-
setTagInput={setTagInput}
11281125
onSubmit={handleAddTask}
11291126
isCreatingNewProject={isCreatingNewProject}
11301127
setIsCreatingNewProject={setIsCreatingNewProject}
11311128
uniqueProjects={uniqueProjects}
1129+
uniqueTags={uniqueTags}
11321130
allTasks={tasks}
11331131
/>
11341132
</div>
@@ -1433,12 +1431,11 @@ export const Tasks = (
14331431
setIsOpen={setIsAddTaskOpen}
14341432
newTask={newTask}
14351433
setNewTask={setNewTask}
1436-
tagInput={tagInput}
1437-
setTagInput={setTagInput}
14381434
onSubmit={handleAddTask}
14391435
isCreatingNewProject={isCreatingNewProject}
14401436
setIsCreatingNewProject={setIsCreatingNewProject}
14411437
uniqueProjects={uniqueProjects}
1438+
uniqueTags={uniqueTags}
14421439
allTasks={tasks}
14431440
/>
14441441
</div>

frontend/src/components/utils/types.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,11 @@ export interface AddTaskDialogProps {
119119
setIsOpen: (value: boolean) => void;
120120
newTask: TaskFormData;
121121
setNewTask: (task: TaskFormData) => void;
122-
tagInput: string;
123-
setTagInput: (value: string) => void;
124122
onSubmit: (task: TaskFormData) => void;
125123
isCreatingNewProject: boolean;
126124
setIsCreatingNewProject: (value: boolean) => void;
127125
uniqueProjects: string[];
126+
uniqueTags: string[];
128127
allTasks?: Task[];
129128
}
130129

0 commit comments

Comments
 (0)