@@ -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 >
@@ -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
0 commit comments