@@ -24,18 +24,18 @@ import {
2424} from '@/components/ui/select' ;
2525import { AddTaskDialogProps } from '@/components/utils/types' ;
2626import { format } from 'date-fns' ;
27+ import { TagMultiSelect } from './TagMultiSelect' ;
2728
2829export 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
0 commit comments