refactor: consolidate permission hooks and gate role filter behind read permission in UsersTable

This commit is contained in:
Yashwin 2026-06-23 17:55:00 +05:30
parent 3479c1943a
commit f76bbc6f65

View File

@ -30,7 +30,10 @@ import { useAppTheme } from "@/hooks/useAppTheme";
import { usePermissions } from "@/hooks/usePermissions";
// Helper function to get user initials
const getUserInitials = (firstName: string | null | undefined, lastName: string | null | undefined): string => {
const getUserInitials = (
firstName: string | null | undefined,
lastName: string | null | undefined,
): string => {
const first = (firstName || "").trim().slice(0, 1);
const last = (lastName || "").trim().slice(0, 1);
return `${first}${last}`.toUpperCase() || "?";
@ -69,9 +72,9 @@ interface UsersTableProps {
export const UsersTable = forwardRef<UsersTableRef, UsersTableProps>(
({ tenantId, showHeader = true, compact = false }, ref): ReactElement => {
const { canUpdate } = usePermissions();
const { canUpdate, canRead, canCreate } = usePermissions();
const { primaryColor } = useAppTheme();
const { canCreate } = usePermissions();
// const { canCreate } = usePermissions();
const [users, setUsers] = useState<User[]>([]);
const [isLoading, setIsLoading] = useState<boolean>(true);
const [error, setError] = useState<string | null>(null);
@ -579,6 +582,7 @@ export const UsersTable = forwardRef<UsersTableRef, UsersTableProps>(
}}
placeholder="All"
/>
{canRead("roles") && (
<FilterDropdown
label="Role"
options={[
@ -590,11 +594,14 @@ export const UsersTable = forwardRef<UsersTableRef, UsersTableProps>(
]}
value={roleFilter || ""}
onChange={(value) => {
setRoleFilter(Array.isArray(value) ? null : value || null);
setRoleFilter(
Array.isArray(value) ? null : value || null,
);
setCurrentPage(1);
}}
placeholder="All"
/>
)}
{canCreate("users") && (
<PrimaryButton
size="default"