Skip to content

Commit 36455fc

Browse files
authored
Merge pull request #1396 from layer5io/chore/upgrade-schemas-v1.0.5-view-types
chore: upgrade @meshery/schemas to v1.0.5 and use View types
2 parents 5608044 + c508e20 commit 36455fc

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"@eslint/compat": "^2.0.3",
4848
"@eslint/eslintrc": "^3.3.5",
4949
"@eslint/js": "^9.0.0",
50-
"@meshery/schemas": "^1.0.4",
50+
"@meshery/schemas": "^1.0.5",
5151
"@mui/icons-material": "^7.3.9",
5252
"@reduxjs/toolkit": "^2.11.2",
5353
"@testing-library/dom": "^10.4.1",

src/custom/Workspaces/hooks/useViewsAssignment.tsx

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
/* eslint-disable @typescript-eslint/no-explicit-any */
22
import { useEffect, useState } from 'react';
3-
import { Pattern } from '../../CustomCatalog/CustomCard';
3+
import type { components } from '@meshery/schemas/constructs/v1beta1/view/View';
44
import { withDefaultPageArgs } from '../../PerformersSection/PerformersSection';
55
import { AssignmentHookResult } from '../types';
66

7+
type MesheryViewWithLocation = components['schemas']['MesheryViewWithLocation'];
8+
79
interface 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({
@@ -61,13 +63,15 @@ const useViewAssignment = ({
6163
const [unassignviewFromWorkspace] = useUnassignViewFromWorkspaceMutation();
6264

6365
useEffect(() => {
64-
const viewsDataRtk = views?.views ? views.views : [];
65-
setviewsData((prevData) => [...prevData, ...viewsDataRtk]);
66+
const viewsDataRtk: MesheryViewWithLocation[] = views?.views ? views.views : [];
67+
const viewsWithId = viewsDataRtk.filter((view) => typeof view.id === 'string');
68+
setviewsData((prevData) => [...prevData, ...viewsWithId]);
6669
}, [views]);
6770

6871
useEffect(() => {
69-
const viewsOfWorkspaceDataRtk = viewsOfWorkspace?.views ? viewsOfWorkspace.views : [];
70-
setWorkspaceviewsData((prevData) => [...prevData, ...viewsOfWorkspaceDataRtk]);
72+
const viewsOfWorkspaceDataRtk: MesheryViewWithLocation[] = viewsOfWorkspace?.views ? viewsOfWorkspace.views : [];
73+
const viewsWithId = viewsOfWorkspaceDataRtk.filter((view) => typeof view.id === 'string');
74+
setWorkspaceviewsData((prevData) => [...prevData, ...viewsWithId]);
7175
}, [viewsOfWorkspace]);
7276

7377
const handleAssignviewModal = (e?: React.MouseEvent): void => {
@@ -96,17 +100,17 @@ const useViewAssignment = ({
96100
}
97101
};
98102

99-
const getAddedAndRemovedviews = (allAssignedviews: Pattern[]): AddedAndRemovedViews => {
100-
const originalviewsIds = workspaceviewsData.map((view) => view.id);
101-
const updatedviewsIds = allAssignedviews.map((view) => view.id);
103+
const getAddedAndRemovedviews = (allAssignedviews: MesheryViewWithLocation[]): AddedAndRemovedViews => {
104+
const originalviewsIds = workspaceviewsData.map((view) => view.id).filter((id): id is string => typeof id === 'string');
105+
const updatedviewsIds = allAssignedviews.map((view) => view.id).filter((id): id is string => typeof id === 'string');
102106

103107
const addedviewsIds = updatedviewsIds.filter((id) => !originalviewsIds.includes(id));
104108
const removedviewsIds = originalviewsIds.filter((id) => !updatedviewsIds.includes(id));
105109

106110
return { addedviewsIds, removedviewsIds };
107111
};
108112

109-
const isViewsActivityOccurred = (allViews: Pattern[]): boolean => {
113+
const isViewsActivityOccurred = (allViews: MesheryViewWithLocation[]): boolean => {
110114
const { addedviewsIds, removedviewsIds } = getAddedAndRemovedviews(allViews);
111115
return addedviewsIds.length > 0 || removedviewsIds.length > 0;
112116
};
@@ -135,7 +139,7 @@ const useViewAssignment = ({
135139
handleAssignviewModalClose();
136140
};
137141

138-
const handleAssignviewsData = (updatedAssignedData: Pattern[]): void => {
142+
const handleAssignviewsData = (updatedAssignedData: MesheryViewWithLocation[]): void => {
139143
const { addedviewsIds, removedviewsIds } = getAddedAndRemovedviews(updatedAssignedData);
140144
setDisableTransferButton(!(addedviewsIds.length > 0 || removedviewsIds.length > 0));
141145
setAssignedviews(updatedAssignedData);

0 commit comments

Comments
 (0)