11/* eslint-disable @typescript-eslint/no-explicit-any */
22import { useEffect , useState } from 'react' ;
3- import { Pattern } from '../../CustomCatalog/CustomCard ' ;
3+ import type { components } from '@meshery/schemas/constructs/v1beta1/view/View ' ;
44import { withDefaultPageArgs } from '../../PerformersSection/PerformersSection' ;
55import { AssignmentHookResult } from '../types' ;
66
7+ type MesheryViewWithLocation = components [ 'schemas' ] [ 'MesheryViewWithLocation' ] ;
8+
79interface AddedAndRemovedViews {
810 addedviewsIds : string [ ] ;
911 removedviewsIds : string [ ] ;
@@ -23,16 +25,16 @@ const useViewAssignment = ({
2325 useAssignViewToWorkspaceMutation,
2426 useUnassignViewFromWorkspaceMutation,
2527 isViewsVisible
26- } : useViewAssignmentProps ) : AssignmentHookResult < Pattern > => {
28+ } : useViewAssignmentProps ) : AssignmentHookResult < MesheryViewWithLocation > => {
2729 const [ viewsPage , setviewsPage ] = useState < number > ( 0 ) ;
28- const [ viewsData , setviewsData ] = useState < Pattern [ ] > ( [ ] ) ;
30+ const [ viewsData , setviewsData ] = useState < MesheryViewWithLocation [ ] > ( [ ] ) ;
2931 const viewsPageSize = 25 ;
3032 const [ viewsOfWorkspacePage , setviewsOfWorkspacePage ] = useState < number > ( 0 ) ;
31- const [ workspaceviewsData , setWorkspaceviewsData ] = useState < Pattern [ ] > ( [ ] ) ;
33+ const [ workspaceviewsData , setWorkspaceviewsData ] = useState < MesheryViewWithLocation [ ] > ( [ ] ) ;
3234 const [ assignviewModal , setAssignviewModal ] = useState < boolean > ( false ) ;
3335 const [ skipviews , setSkipviews ] = useState < boolean > ( true ) ;
3436 const [ disableTransferButton , setDisableTransferButton ] = useState < boolean > ( true ) ;
35- const [ assignedviews , setAssignedviews ] = useState < Pattern [ ] > ( [ ] ) ;
37+ const [ assignedviews , setAssignedviews ] = useState < MesheryViewWithLocation [ ] > ( [ ] ) ;
3638
3739 const { data : views } = useGetViewsOfWorkspaceQuery (
3840 withDefaultPageArgs ( {
@@ -96,17 +98,17 @@ const useViewAssignment = ({
9698 }
9799 } ;
98100
99- const getAddedAndRemovedviews = ( allAssignedviews : Pattern [ ] ) : AddedAndRemovedViews => {
100- const originalviewsIds = workspaceviewsData . map ( ( view ) => view . id ) ;
101- const updatedviewsIds = allAssignedviews . map ( ( view ) => view . id ) ;
101+ const getAddedAndRemovedviews = ( allAssignedviews : MesheryViewWithLocation [ ] ) : AddedAndRemovedViews => {
102+ const originalviewsIds = workspaceviewsData . map ( ( view ) => view . id ) . filter ( ( id ) : id is string => ! ! id ) ;
103+ const updatedviewsIds = allAssignedviews . map ( ( view ) => view . id ) . filter ( ( id ) : id is string => ! ! id ) ;
102104
103105 const addedviewsIds = updatedviewsIds . filter ( ( id ) => ! originalviewsIds . includes ( id ) ) ;
104106 const removedviewsIds = originalviewsIds . filter ( ( id ) => ! updatedviewsIds . includes ( id ) ) ;
105107
106108 return { addedviewsIds, removedviewsIds } ;
107109 } ;
108110
109- const isViewsActivityOccurred = ( allViews : Pattern [ ] ) : boolean => {
111+ const isViewsActivityOccurred = ( allViews : MesheryViewWithLocation [ ] ) : boolean => {
110112 const { addedviewsIds, removedviewsIds } = getAddedAndRemovedviews ( allViews ) ;
111113 return addedviewsIds . length > 0 || removedviewsIds . length > 0 ;
112114 } ;
@@ -135,7 +137,7 @@ const useViewAssignment = ({
135137 handleAssignviewModalClose ( ) ;
136138 } ;
137139
138- const handleAssignviewsData = ( updatedAssignedData : Pattern [ ] ) : void => {
140+ const handleAssignviewsData = ( updatedAssignedData : MesheryViewWithLocation [ ] ) : void => {
139141 const { addedviewsIds, removedviewsIds } = getAddedAndRemovedviews ( updatedAssignedData ) ;
140142 setDisableTransferButton ( ! ( addedviewsIds . length > 0 || removedviewsIds . length > 0 ) ) ;
141143 setAssignedviews ( updatedAssignedData ) ;
0 commit comments