mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 07:27:58 +00:00
improvements: use stored preferred page size for project roles table and add reset helper
This commit is contained in:
+23
-5
@@ -39,7 +39,12 @@ import {
|
|||||||
Tr
|
Tr
|
||||||
} from "@app/components/v2";
|
} from "@app/components/v2";
|
||||||
import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@app/context";
|
import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@app/context";
|
||||||
import { usePagination, usePopUp } from "@app/hooks";
|
import {
|
||||||
|
getUserTablePreference,
|
||||||
|
PreferenceKey,
|
||||||
|
setUserTablePreference
|
||||||
|
} from "@app/helpers/userTablePreferences";
|
||||||
|
import { usePagination, usePopUp, useResetPageHelper } from "@app/hooks";
|
||||||
import { useDeleteProjectRole, useGetProjectRoles } from "@app/hooks/api";
|
import { useDeleteProjectRole, useGetProjectRoles } from "@app/hooks/api";
|
||||||
import { OrderByDirection } from "@app/hooks/api/generic/types";
|
import { OrderByDirection } from "@app/hooks/api/generic/types";
|
||||||
import { ProjectMembershipRole, TProjectRole } from "@app/hooks/api/roles/types";
|
import { ProjectMembershipRole, TProjectRole } from "@app/hooks/api/roles/types";
|
||||||
@@ -93,7 +98,14 @@ export const ProjectRoleList = () => {
|
|||||||
setPerPage,
|
setPerPage,
|
||||||
setPage,
|
setPage,
|
||||||
offset
|
offset
|
||||||
} = usePagination<RolesOrderBy>(RolesOrderBy.Name);
|
} = usePagination<RolesOrderBy>(RolesOrderBy.Name, {
|
||||||
|
initPerPage: getUserTablePreference("projectRolesTable", PreferenceKey.PerPage, 20)
|
||||||
|
});
|
||||||
|
|
||||||
|
const handlePerPageChange = (newPerPage: number) => {
|
||||||
|
setPerPage(newPerPage);
|
||||||
|
setUserTablePreference("projectRolesTable", PreferenceKey.PerPage, newPerPage);
|
||||||
|
};
|
||||||
|
|
||||||
const filteredRoles = useMemo(
|
const filteredRoles = useMemo(
|
||||||
() =>
|
() =>
|
||||||
@@ -117,10 +129,16 @@ export const ProjectRoleList = () => {
|
|||||||
default:
|
default:
|
||||||
return roleOne.name.toLowerCase().localeCompare(roleTwo.name.toLowerCase());
|
return roleOne.name.toLowerCase().localeCompare(roleTwo.name.toLowerCase());
|
||||||
}
|
}
|
||||||
}),
|
}) ?? [],
|
||||||
[roles, orderDirection, search, orderBy]
|
[roles, orderDirection, search, orderBy]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
useResetPageHelper({
|
||||||
|
totalCount: filteredRoles.length,
|
||||||
|
offset,
|
||||||
|
setPage
|
||||||
|
});
|
||||||
|
|
||||||
const handleSort = (column: RolesOrderBy) => {
|
const handleSort = (column: RolesOrderBy) => {
|
||||||
if (column === orderBy) {
|
if (column === orderBy) {
|
||||||
toggleOrderDirection();
|
toggleOrderDirection();
|
||||||
@@ -143,7 +161,7 @@ export const ProjectRoleList = () => {
|
|||||||
<ProjectPermissionCan I={ProjectPermissionActions.Create} a={ProjectPermissionSub.Role}>
|
<ProjectPermissionCan I={ProjectPermissionActions.Create} a={ProjectPermissionSub.Role}>
|
||||||
{(isAllowed) => (
|
{(isAllowed) => (
|
||||||
<Button
|
<Button
|
||||||
colorSchema="primary"
|
colorSchema="secondary"
|
||||||
type="submit"
|
type="submit"
|
||||||
leftIcon={<FontAwesomeIcon icon={faPlus} />}
|
leftIcon={<FontAwesomeIcon icon={faPlus} />}
|
||||||
onClick={() => handlePopUpOpen("role")}
|
onClick={() => handlePopUpOpen("role")}
|
||||||
@@ -319,7 +337,7 @@ export const ProjectRoleList = () => {
|
|||||||
page={page}
|
page={page}
|
||||||
perPage={perPage}
|
perPage={perPage}
|
||||||
onChangePage={setPage}
|
onChangePage={setPage}
|
||||||
onChangePerPage={setPerPage}
|
onChangePerPage={handlePerPageChange}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{!filteredRoles?.length && !isRolesLoading && (
|
{!filteredRoles?.length && !isRolesLoading && (
|
||||||
|
|||||||
Reference in New Issue
Block a user