@@ -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 >
@@ -417,40 +403,14 @@ export const AddTaskdialog = ({
417403 Tags
418404 </ Label >
419405 < div className = "col-span-6" >
420- < Input
421- id = "tags"
422- name = "tags"
423- placeholder = "Add a tag"
424- value = { tagInput }
425- onChange = { ( e ) => setTagInput ( e . target . value ) }
426- onKeyDown = { ( e ) => e . key === 'Enter' && handleAddTag ( ) }
427- required
428- className = "col-span-6"
406+ < TagMultiSelect
407+ availableTags = { uniqueTags }
408+ selectedTags = { newTask . tags }
409+ onTagsChange = { ( tags ) => setNewTask ( { ...newTask , tags } ) }
410+ placeholder = "Select or create tags"
429411 />
430412 </ div >
431413 </ div >
432-
433- < div className = "mt-2" >
434- { newTask . tags . length > 0 && (
435- < div className = "grid grid-cols-4 items-center" >
436- < div > </ div >
437- < div className = "flex flex-wrap gap-2 col-span-3" >
438- { newTask . tags . map ( ( tag , index ) => (
439- < Badge key = { index } >
440- < span > { tag } </ span >
441- < button
442- type = "button"
443- className = "ml-2 text-red-500"
444- onClick = { ( ) => handleRemoveTag ( tag ) }
445- >
446- ✖
447- </ button >
448- </ Badge >
449- ) ) }
450- </ div >
451- </ div >
452- ) }
453- </ div >
454414 < div className = "grid grid-cols-8 items-center gap-4" >
455415 < Label htmlFor = "annotations" className = "text-right col-span-2" >
456416 Annotation
0 commit comments