diff --git a/js/.eslintrc.js b/js/.eslintrc.js index 134a34e7cb..fe1723972a 100644 --- a/js/.eslintrc.js +++ b/js/.eslintrc.js @@ -25,6 +25,7 @@ module.exports = { "plugin:import/typescript", "plugin:react/recommended", "plugin:react/jsx-runtime", + "plugin:react-hooks/recommended", "plugin:@typescript-eslint/base", "plugin:@typescript-eslint/eslint-recommended", "plugin:prettier/recommended", diff --git a/js/apps/admin-ui/src/clients/authorization/AuthorizationEvaluate.tsx b/js/apps/admin-ui/src/clients/authorization/AuthorizationEvaluate.tsx index d65afbbbf6..648773aeeb 100644 --- a/js/apps/admin-ui/src/clients/authorization/AuthorizationEvaluate.tsx +++ b/js/apps/admin-ui/src/clients/authorization/AuthorizationEvaluate.tsx @@ -82,7 +82,17 @@ export type AttributeForm = Omit< type Props = ClientSettingsProps & EvaluationResultRepresentation; -export const AuthorizationEvaluate = ({ client }: Props) => { +export const AuthorizationEvaluate = (props: Props) => { + const { hasAccess } = useAccess(); + + if (!hasAccess("view-users")) { + return ; + } + + return ; +}; + +const AuthorizationEvaluateContent = ({ client }: Props) => { const form = useForm({ mode: "onChange" }); const { control, @@ -107,10 +117,6 @@ export const AuthorizationEvaluate = ({ client }: Props) => { const [clientRoles, setClientRoles] = useState([]); - const { hasAccess } = useAccess(); - if (!hasAccess("view-users")) - return ; - useFetch( () => adminClient.roles.find(), (roles) => { diff --git a/js/package.json b/js/package.json index 79a29c49cc..d4595c5559 100644 --- a/js/package.json +++ b/js/package.json @@ -16,6 +16,7 @@ "eslint-plugin-mocha": "^10.1.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", "husky": "^8.0.3", "lint-staged": "^13.2.2", "prettier": "^2.8.8", diff --git a/js/pnpm-lock.yaml b/js/pnpm-lock.yaml index 03564beb1b..6e387261a8 100644 --- a/js/pnpm-lock.yaml +++ b/js/pnpm-lock.yaml @@ -40,6 +40,9 @@ importers: eslint-plugin-react: specifier: ^7.32.2 version: 7.32.2(eslint@8.41.0) + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@8.41.0) husky: specifier: ^8.0.3 version: 8.0.3 @@ -3481,6 +3484,15 @@ packages: prettier-linter-helpers: 1.0.0 dev: true + /eslint-plugin-react-hooks@4.6.0(eslint@8.41.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.41.0 + dev: true + /eslint-plugin-react@7.32.2(eslint@8.41.0): resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'}