Skip to content

Commit e58e3b4

Browse files
authored
Merge pull request #1023 from layer5io/fix-pagination
fix: pagination for workspace designs and views table
2 parents e778b07 + 39742af commit e58e3b4

File tree

5 files changed

+35
-16
lines changed

5 files changed

+35
-16
lines changed

src/custom/CatalogDesignTable/DesignTableColumnConfig.tsx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,13 @@ interface ColumnConfigProps {
4545
showPlaygroundActions: boolean;
4646
handleVisibilityChange?: (id: string, visibility: VIEW_VISIBILITY) => void;
4747
currentUserId?: string;
48+
refetchWorkspaceDesigns: () => void;
4849
}
4950

5051
export const colViews: ColView[] = [
5152
['id', 'na'],
5253
['name', 'xs'],
53-
['first_name', 'xs'],
54+
['user', 'xs'],
5455
['created_at', 'na'],
5556
['updated_at', 'l'],
5657
['visibility', 'l'],
@@ -78,7 +79,8 @@ export const createDesignsColumnsConfig = ({
7879
showPlaygroundActions = true,
7980
isFromWorkspaceTable = false,
8081
currentUserId,
81-
handleVisibilityChange
82+
handleVisibilityChange,
83+
refetchWorkspaceDesigns
8284
}: ColumnConfigProps): MUIDataTableColumn[] => {
8385
return [
8486
{
@@ -105,7 +107,7 @@ export const createDesignsColumnsConfig = ({
105107
}
106108
},
107109
{
108-
name: 'first_name',
110+
name: 'user',
109111
label: 'Author',
110112
options: {
111113
filter: false,
@@ -169,9 +171,12 @@ export const createDesignsColumnsConfig = ({
169171
return (
170172
<VisibilityChipMenu
171173
value={value as VIEW_VISIBILITY}
172-
onChange={(value) =>
173-
handleVisibilityChange && handleVisibilityChange(designId, value as VIEW_VISIBILITY)
174-
}
174+
onChange={(value) => {
175+
if (handleVisibilityChange) {
176+
handleVisibilityChange(designId, value as VIEW_VISIBILITY);
177+
refetchWorkspaceDesigns();
178+
}
179+
}}
175180
enabled={isEnabled}
176181
options={[
177182
[VIEW_VISIBILITY.PUBLIC, Public],

src/custom/ResponsiveDataTable.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { TooltipIcon } from './TooltipIconButton';
1111
export const IconWrapper = styled('div', {
1212
shouldForwardProp: (prop) => prop !== 'disabled'
1313
})<{ disabled?: boolean }>(({ disabled = false }) => ({
14+
width: 'fit-content',
1415
cursor: disabled ? 'not-allowed' : 'pointer',
1516
opacity: disabled ? '0.5' : '1',
1617
display: 'flex',

src/custom/TooltipIconButton/TooltipIconButton.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ export function TooltipIcon({
4848
},
4949
...style
5050
}}
51-
disableRipple
5251
>
5352
{icon || children}
5453
</IconButton>

src/custom/Workspaces/DesignTable.tsx

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export interface DesignTableProps {
2424
workspaceId: string;
2525
isKanvasEnabled: boolean;
2626
workspaceName: string;
27-
designsOfWorkspace: any;
2827
meshModelModelsData: any;
2928
useGetWorkspaceDesignsQuery: any;
3029
useAssignDesignToWorkspaceMutation: any;
@@ -57,7 +56,6 @@ export interface DesignTableProps {
5756
isUnpublishAllowed: boolean;
5857
isAssignAllowed: boolean;
5958
isRemoveAllowed: boolean;
60-
setDesignSearch: (value: string) => void;
6159
handleOpenInDesigner?: (designId: string, designName: string) => void;
6260
showPlaygroundActions?: boolean;
6361
handleVisibilityChange?: (id: string, visibility: VIEW_VISIBILITY) => void;
@@ -78,7 +76,6 @@ export interface TableColumn {
7876
const DesignTable: React.FC<DesignTableProps> = ({
7977
workspaceId,
8078
workspaceName,
81-
designsOfWorkspace,
8279
meshModelModelsData,
8380
handleBulkUnpublishModal,
8481
handleBulkWorkspaceDesignDeleteModal,
@@ -102,7 +99,6 @@ const DesignTable: React.FC<DesignTableProps> = ({
10299
isAssignAllowed,
103100
isRemoveAllowed,
104101
useGetWorkspaceDesignsQuery,
105-
setDesignSearch,
106102
handleOpenInDesigner,
107103
showPlaygroundActions = true,
108104
handleVisibilityChange,
@@ -112,12 +108,28 @@ const DesignTable: React.FC<DesignTableProps> = ({
112108
open: false,
113109
pattern: {}
114110
});
111+
115112
const modalRef = useRef(null);
113+
const [search, setSearch] = useState('');
116114
const [page, setPage] = useState<number>(0);
117115
const [pageSize, setPageSize] = useState<number>(10);
118116
const [sortOrder, setSortOrder] = useState<string>('updated_at desc');
119117
const [isSearchExpanded, setIsSearchExpanded] = useState(false);
120118

119+
const { data: designsOfWorkspace, refetch: refetchWorkspaceDesigns } =
120+
useGetWorkspaceDesignsQuery(
121+
{
122+
workspaceId,
123+
page: page,
124+
pagesize: pageSize,
125+
search: search,
126+
order: sortOrder,
127+
expandUser: true
128+
},
129+
{
130+
skip: !workspaceId
131+
}
132+
);
121133
const handlePublishModal = (pattern: Pattern): void => {
122134
const result = publishModalHandler(pattern);
123135
setPublishModal({
@@ -146,7 +158,8 @@ const DesignTable: React.FC<DesignTableProps> = ({
146158
handleOpenInDesigner,
147159
showPlaygroundActions,
148160
handleVisibilityChange,
149-
currentUserId
161+
currentUserId,
162+
refetchWorkspaceDesigns
150163
});
151164

152165
const [publishSchema, setPublishSchema] = useState<{
@@ -206,10 +219,10 @@ const DesignTable: React.FC<DesignTableProps> = ({
206219
>
207220
<SearchBar
208221
onSearch={(value) => {
209-
setDesignSearch(value);
222+
setSearch(value);
210223
}}
211224
onClear={() => {
212-
setDesignSearch('');
225+
setSearch('');
213226
}}
214227
expanded={isSearchExpanded}
215228
setExpanded={setIsSearchExpanded}
@@ -252,7 +265,7 @@ const DesignTable: React.FC<DesignTableProps> = ({
252265
handleBulkWorkspaceDesignDeleteModal(designs, modalRef, workspaceName, workspaceId)
253266
}
254267
filter={'my-designs'}
255-
setSearch={setDesignSearch}
268+
setSearch={setSearch}
256269
/>
257270
<AssignmentModal
258271
open={designAssignment.assignModal}

src/custom/Workspaces/WorkspaceViewsTable.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ const WorkspaceViewsTable: React.FC<ViewsTableProps> = ({
8989
{
9090
workspaceId,
9191
page: page,
92-
pageSize: pageSize,
92+
pagesize: pageSize,
9393
search: search,
9494
order: sortOrder,
9595
expandUser: true
@@ -292,6 +292,7 @@ const WorkspaceViewsTable: React.FC<ViewsTableProps> = ({
292292
selectableRows: 'none',
293293
count: viewsOfWorkspace?.total_count,
294294
rowsPerPage: pageSize,
295+
serverSide: true,
295296
page,
296297
elevation: 0,
297298
sortOrder: {

0 commit comments

Comments
 (0)