1- import { useCallback , useEffect , useState } from 'react' ;
1+ import { useEffect , useState } from 'react' ;
22import type { TaskTemplateListItemDTO } from '@/lib/schemas/task-template.schema' ;
33import { getTaskTemplateList } from '@/lib/api/task-templates' ;
44
@@ -14,28 +14,25 @@ export function useTaskTemplateList() {
1414 const [ total , setTotal ] = useState < number > ( 0 ) ;
1515 const [ sortBy , setSortBy ] = useState < TaskTemplateSortBy | null > ( null ) ;
1616
17- const sortAndFilter = useCallback (
18- ( items : TaskTemplateListItemDTO [ ] ) : TaskTemplateListItemDTO [ ] => {
19- if ( ! sortBy ) return items ;
20- const next = [ ...items ] ;
21- switch ( sortBy ) {
22- case 'title-asc' :
23- next . sort ( ( a , b ) => a . title . localeCompare ( b . title ) ) ;
24- break ;
25- case 'title-desc' :
26- next . sort ( ( a , b ) => b . title . localeCompare ( a . title ) ) ;
27- break ;
28- case 'estimated-asc' :
29- next . sort ( ( a , b ) => a . estimatedTime - b . estimatedTime ) ;
30- break ;
31- case 'estimated-desc' :
32- next . sort ( ( a , b ) => b . estimatedTime - a . estimatedTime ) ;
33- break ;
34- }
35- return next ;
36- } ,
37- [ sortBy ]
38- ) ;
17+ function applySort ( items : TaskTemplateListItemDTO [ ] ) : TaskTemplateListItemDTO [ ] {
18+ if ( ! sortBy ) return items ;
19+ const sortedTaskTemplates = [ ...items ] ;
20+ switch ( sortBy ) {
21+ case 'title-asc' :
22+ sortedTaskTemplates . sort ( ( a , b ) => a . title . localeCompare ( b . title ) ) ;
23+ break ;
24+ case 'title-desc' :
25+ sortedTaskTemplates . sort ( ( a , b ) => b . title . localeCompare ( a . title ) ) ;
26+ break ;
27+ case 'estimated-asc' :
28+ sortedTaskTemplates . sort ( ( a , b ) => a . estimatedTime - b . estimatedTime ) ;
29+ break ;
30+ case 'estimated-desc' :
31+ sortedTaskTemplates . sort ( ( a , b ) => b . estimatedTime - a . estimatedTime ) ;
32+ break ;
33+ }
34+ return sortedTaskTemplates ;
35+ }
3936
4037 useEffect ( ( ) => {
4138 async function fetchTaskList ( ) {
@@ -120,6 +117,6 @@ export function useTaskTemplateList() {
120117 insertTaskTemplateAtTopOfPage,
121118 sortBy,
122119 setSortBy,
123- sortAndFilter ,
120+ applySort ,
124121 } ;
125122}
0 commit comments