Skip to content

Commit 42a7330

Browse files
committed
feat: integrate TagMultiSelect with AddTaskDialog
1 parent a02c34a commit 42a7330

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>
@@ -381,40 +367,14 @@ export const AddTaskdialog = ({
381367
Tags
382368
</Label>
383369
<div className="col-span-6">
384-
<Input
385-
id="tags"
386-
name="tags"
387-
placeholder="Add a tag"
388-
value={tagInput}
389-
onChange={(e) => setTagInput(e.target.value)}
390-
onKeyDown={(e) => e.key === 'Enter' && handleAddTag()}
391-
required
392-
className="col-span-6"
370+
<TagMultiSelect
371+
availableTags={uniqueTags}
372+
selectedTags={newTask.tags}
373+
onTagsChange={(tags) => setNewTask({ ...newTask, tags })}
374+
placeholder="Select or create tags"
393375
/>
394376
</div>
395377
</div>
396-
397-
<div className="mt-2">
398-
{newTask.tags.length > 0 && (
399-
<div className="grid grid-cols-4 items-center">
400-
<div> </div>
401-
<div className="flex flex-wrap gap-2 col-span-3">
402-
{newTask.tags.map((tag, index) => (
403-
<Badge key={index}>
404-
<span>{tag}</span>
405-
<button
406-
type="button"
407-
className="ml-2 text-red-500"
408-
onClick={() => handleRemoveTag(tag)}
409-
>
410-
411-
</button>
412-
</Badge>
413-
))}
414-
</div>
415-
</div>
416-
)}
417-
</div>
418378
<div className="grid grid-cols-8 items-center gap-4">
419379
<Label htmlFor="annotations" className="text-right col-span-2">
420380
Annotation

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ export const Tasks = (
9595
const [isCreatingNewProject, setIsCreatingNewProject] = useState(false);
9696
const [isAddTaskOpen, setIsAddTaskOpen] = useState(false);
9797
const [_isDialogOpen, setIsDialogOpen] = useState(false);
98-
const [tagInput, setTagInput] = useState('');
9998
const [_selectedTask, setSelectedTask] = useState<Task | null>(null);
10099
const [editedTags, setEditedTags] = useState<string[]>(
101100
_selectedTask?.tags || []
@@ -1070,12 +1069,11 @@ export const Tasks = (
10701069
setIsOpen={setIsAddTaskOpen}
10711070
newTask={newTask}
10721071
setNewTask={setNewTask}
1073-
tagInput={tagInput}
1074-
setTagInput={setTagInput}
10751072
onSubmit={handleAddTask}
10761073
isCreatingNewProject={isCreatingNewProject}
10771074
setIsCreatingNewProject={setIsCreatingNewProject}
10781075
uniqueProjects={uniqueProjects}
1076+
uniqueTags={uniqueTags}
10791077
allTasks={tasks}
10801078
/>
10811079
</div>
@@ -1378,12 +1376,11 @@ export const Tasks = (
13781376
setIsOpen={setIsAddTaskOpen}
13791377
newTask={newTask}
13801378
setNewTask={setNewTask}
1381-
tagInput={tagInput}
1382-
setTagInput={setTagInput}
13831379
onSubmit={handleAddTask}
13841380
isCreatingNewProject={isCreatingNewProject}
13851381
setIsCreatingNewProject={setIsCreatingNewProject}
13861382
uniqueProjects={uniqueProjects}
1383+
uniqueTags={uniqueTags}
13871384
allTasks={tasks}
13881385
/>
13891386
</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)