@@ -4,8 +4,8 @@ import ScrollView from 'devextreme-react/scroll-view';
44import Sortable from 'devextreme-react/sortable' ;
55import type { SortableTypes } from 'devextreme-react/sortable' ;
66
7- import { tasks as taskList , employees } from './data.ts' ;
8- import type { Employee , Task } from './data.ts' ;
7+ import { tasks as taskList , employees , taskStatuses } from './data.ts' ;
8+ import type { Employee , Task , TaskStatus } from './data.ts' ;
99
1010function getLists ( statusArray : string [ ] , taskArray : Task [ ] ) : Task [ ] [ ] {
1111 const tasksMap = taskArray . reduce < Record < string , Task [ ] > > ( ( result , task ) => {
@@ -27,23 +27,22 @@ function getEmployeesMap(employeesArray: Employee[]): Record<string, string> {
2727 } , { } ) ;
2828}
2929
30- function removeItem ( array : any [ ] , removeIdx : number ) {
30+ function removeItem < T > ( array : T [ ] , removeIdx : number ) : T [ ] {
3131 return array . filter ( ( _ , idx ) => idx !== removeIdx ) ;
3232}
3333
34- function insertItem ( array : any [ ] , item : any , insertIdx : number ) {
34+ function insertItem < T > ( array : T [ ] , item : T , insertIdx : number ) : T [ ] {
3535 const newArray = [ ...array ] ;
3636 newArray . splice ( insertIdx , 0 , item ) ;
3737 return newArray ;
3838}
3939
40- function reorderItem ( array : any [ ] , fromIdx : number , toIdx : number ) {
40+ function reorderItem < T > ( array : T [ ] , fromIdx : number , toIdx : number ) : T [ ] {
4141 const item = array [ fromIdx ] ;
42- const result = removeItem ( array , fromIdx ) ;
43- return insertItem ( result , item , toIdx ) ;
42+ const result = removeItem < T > ( array , fromIdx ) ;
43+ return insertItem < T > ( result , item , toIdx ) ;
4444}
4545
46- const taskStatuses = [ 'Not Started' , 'Need Assistance' , 'In Progress' , 'Deferred' , 'Completed' ] ;
4746const employeesRecord = getEmployeesMap ( employees ) ;
4847
4948const Card : React . FC < { task : Task , employeesMap : Record < string , string > } > = ( {
@@ -87,12 +86,12 @@ const List: React.FC<{
8786</ div > ;
8887
8988function App ( ) {
90- const [ statuses , setStatuses ] = useState ( taskStatuses ) ;
91- const [ lists , setLists ] = useState ( getLists ( taskStatuses , taskList ) ) ;
89+ const [ statuses , setStatuses ] = useState < TaskStatus [ ] > ( taskStatuses ) ;
90+ const [ lists , setLists ] = useState < Task [ ] [ ] > ( getLists ( taskStatuses , taskList ) ) ;
9291
9392 const onListReorder = useCallback ( ( { fromIndex, toIndex } ) => {
94- setLists ( ( state ) => reorderItem ( state , fromIndex , toIndex ) ) ;
95- setStatuses ( ( state ) => reorderItem ( state , fromIndex , toIndex ) ) ;
93+ setLists ( ( state ) => reorderItem < Task [ ] > ( state , fromIndex , toIndex ) ) ;
94+ setStatuses ( ( state ) => reorderItem < TaskStatus > ( state , fromIndex , toIndex ) ) ;
9695 } , [ ] ) ;
9796
9897 const onTaskDrop = useCallback (
@@ -102,8 +101,8 @@ function App() {
102101 const updatedLists = [ ...lists ] ;
103102
104103 const item = updatedLists [ fromData ] [ fromIndex ] ;
105- updatedLists [ fromData ] = removeItem ( updatedLists [ fromData ] , fromIndex ) ;
106- updatedLists [ toData ] = insertItem ( updatedLists [ toData ] , item , toIndex ) ;
104+ updatedLists [ fromData ] = removeItem < Task > ( updatedLists [ fromData ] , fromIndex ) ;
105+ updatedLists [ toData ] = insertItem < Task > ( updatedLists [ toData ] , item , toIndex ) ;
107106
108107 setLists ( updatedLists ) ;
109108 } ,
0 commit comments