@@ -31,6 +31,7 @@ import { setBoardLabels, updateBoardTaskLabel } from '@/features/board/board-sli
3131import { updateEnhancedKanbanTaskLabels } from '@/features/enhanced-kanban/enhanced-kanban.slice' ;
3232import { ILabelsChangeResponse } from '@/types/tasks/taskList.types' ;
3333import { ITaskLabelFilter } from '@/types/tasks/taskLabel.types' ;
34+ import { sortLabelsBySelection , isLabelSelected } from '@/utils/labelUtils' ;
3435
3536interface TaskDrawerLabelsProps {
3637 task : ITaskViewModel ;
@@ -98,17 +99,12 @@ const TaskDrawerLabels = ({ task, t }: TaskDrawerLabelsProps) => {
9899
99100 // used useMemo hook for re render the list when searching
100101 const filteredLabelData = useMemo ( ( ) => {
101- const filtered = labelList . filter ( label => label . name ?. toLowerCase ( ) . includes ( searchQuery . toLowerCase ( ) ) ) ;
102-
103- // Sort labels: selected ones first, then unselected ones
104- return filtered . sort ( ( a , b ) => {
105- const aSelected = task ?. labels ?. some ( existingLabel => existingLabel . id === a . id ) || false ;
106- const bSelected = task ?. labels ?. some ( existingLabel => existingLabel . id === b . id ) || false ;
107-
108- if ( aSelected && ! bSelected ) return - 1 ;
109- if ( ! aSelected && bSelected ) return 1 ;
110- return 0 ;
111- } ) ;
102+ const filtered = labelList . filter ( label =>
103+ label . name ?. toLowerCase ( ) . includes ( searchQuery . toLowerCase ( ) )
104+ ) ;
105+
106+ // Sort to show selected labels first using shared utility
107+ return sortLabelsBySelection ( filtered , task ?. labels || [ ] ) ;
112108 } , [ labelList , searchQuery , task ?. labels ] ) ;
113109
114110 const labelDropdownContent = (
@@ -153,11 +149,7 @@ const TaskDrawerLabels = ({ task, t }: TaskDrawerLabelsProps) => {
153149 >
154150 < Checkbox
155151 id = { label . id }
156- checked = {
157- task ?. labels
158- ? task ?. labels . some ( existingLabel => existingLabel . id === label . id )
159- : false
160- }
152+ checked = { isLabelSelected ( label . id || '' , task ?. labels ) }
161153 onChange = { e => e . preventDefault ( ) }
162154 >
163155 < Flex gap = { 8 } >
0 commit comments