@equinor/fusion-framework-react-app 14.2.2 → 14.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/roles/index.js +1 -0
- package/dist/esm/roles/index.js.map +1 -1
- package/dist/esm/roles/useHasAccessRole.js +51 -0
- package/dist/esm/roles/useHasAccessRole.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/roles/index.d.ts +1 -0
- package/dist/types/roles/useHasAccessRole.d.ts +42 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +20 -20
|
@@ -5,3 +5,4 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export type { ActivateClaimableRoleAssignmentInput, RolesModule, } from '@equinor/fusion-framework-module-roles';
|
|
7
7
|
export { useAccessRole, type ClaimableRoleAssignmentActivationResult, type UseAccessRoleResult, } from './useAccessRole';
|
|
8
|
+
export { useHasAccessRole, type UseHasAccessRoleOptions, type UseHasAccessRoleResult, } from './useHasAccessRole';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { HasAccessRoleOptions } from '@equinor/fusion-framework-module-roles';
|
|
2
|
+
/** Options for selecting any-role or all-role active access checks. */
|
|
3
|
+
export type UseHasAccessRoleOptions = Pick<HasAccessRoleOptions, 'required'>;
|
|
4
|
+
/**
|
|
5
|
+
* Active access-role state returned by {@link useHasAccessRole}.
|
|
6
|
+
*/
|
|
7
|
+
export interface UseHasAccessRoleResult {
|
|
8
|
+
/** Whether the current any-role or all-role condition is satisfied. */
|
|
9
|
+
hasAccessRole: boolean | undefined;
|
|
10
|
+
/** Whether the initial check or an explicit refresh is running. */
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
/** Error from the latest active access-role check. */
|
|
13
|
+
error: unknown;
|
|
14
|
+
/** Re-runs the active access-role check for the current provider and inputs. */
|
|
15
|
+
refresh: () => Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Checks whether any or all requested Roles V2 access roles are currently active.
|
|
19
|
+
*
|
|
20
|
+
* The hook calls only {@link IRolesProvider.hasAccessRole}; it does not load claimable-role
|
|
21
|
+
* assignments or expose activation actions. Use `useAccessRole` when the UI also needs to discover
|
|
22
|
+
* and activate a claimable role assignment.
|
|
23
|
+
*
|
|
24
|
+
* Role names follow the provider's exact, case-sensitive matching semantics. Set `required` to
|
|
25
|
+
* `true` to require every role, or leave it `false` to accept any role. Empty lists preserve the
|
|
26
|
+
* provider identities: all-role checks resolve to `true`, while any-role checks resolve to `false`.
|
|
27
|
+
*
|
|
28
|
+
* @param accessRoleNames - Exact Roles V2 access-role names to check.
|
|
29
|
+
* @param options - Selects all-role (`required: true`) or any-role (`required: false`) matching.
|
|
30
|
+
* @returns Active access state with initial loading, refresh, and error handling.
|
|
31
|
+
* @throws The function returned as `refresh` rethrows Roles V2 failures after updating `error`.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```tsx
|
|
35
|
+
* const access = useHasAccessRole(['Reports.Read', 'Reports.Export'], { required: false });
|
|
36
|
+
*
|
|
37
|
+
* if (access.isLoading) return <Spinner />;
|
|
38
|
+
* if (access.error) return <ErrorMessage error={access.error} />;
|
|
39
|
+
* return access.hasAccessRole ? <Reports /> : <NoAccess />;
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare const useHasAccessRole: (accessRoleNames: readonly string[], options?: UseHasAccessRoleOptions) => UseHasAccessRoleResult;
|
package/dist/types/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "14.
|
|
1
|
+
export declare const version = "14.3.1";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@equinor/fusion-framework-react-app",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.3.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/esm/index.js",
|
|
@@ -177,15 +177,15 @@
|
|
|
177
177
|
"directory": "packages/react"
|
|
178
178
|
},
|
|
179
179
|
"dependencies": {
|
|
180
|
-
"@equinor/fusion-framework-app": "13.1.
|
|
181
|
-
"@equinor/fusion-framework": "9.0.0",
|
|
182
|
-
"@equinor/fusion-framework-module-app": "8.2.0",
|
|
180
|
+
"@equinor/fusion-framework-app": "13.1.7",
|
|
183
181
|
"@equinor/fusion-framework-module": "6.1.4",
|
|
182
|
+
"@equinor/fusion-framework": "9.0.1",
|
|
184
183
|
"@equinor/fusion-framework-module-http": "8.1.2",
|
|
185
|
-
"@equinor/fusion-framework-
|
|
184
|
+
"@equinor/fusion-framework-module-app": "8.2.0",
|
|
186
185
|
"@equinor/fusion-framework-module-navigation": "7.0.10",
|
|
187
|
-
"@equinor/fusion-framework-react
|
|
188
|
-
"@equinor/fusion-framework-react-module-http": "12.0.1"
|
|
186
|
+
"@equinor/fusion-framework-react": "9.0.2",
|
|
187
|
+
"@equinor/fusion-framework-react-module-http": "12.0.1",
|
|
188
|
+
"@equinor/fusion-framework-react-module": "4.0.4"
|
|
189
189
|
},
|
|
190
190
|
"devDependencies": {
|
|
191
191
|
"@remix-run/router": "^1.23.3",
|
|
@@ -199,34 +199,34 @@
|
|
|
199
199
|
"typescript": "^7.0.2",
|
|
200
200
|
"vitest": "^4.1.10",
|
|
201
201
|
"vitest-browser-react": "^2.2.0",
|
|
202
|
-
"@equinor/fusion-framework-module-ag-grid": "37.1.
|
|
203
|
-
"@equinor/fusion-framework-react-ag-grid": "37.1.
|
|
202
|
+
"@equinor/fusion-framework-module-ag-grid": "37.1.2",
|
|
203
|
+
"@equinor/fusion-framework-react-ag-grid": "37.1.2",
|
|
204
|
+
"@equinor/fusion-framework-module-analytics": "3.1.7",
|
|
204
205
|
"@equinor/fusion-framework-module-bookmark": "4.1.2",
|
|
205
|
-
"@equinor/fusion-framework-module-analytics": "3.1.5",
|
|
206
|
-
"@equinor/fusion-framework-module-event": "6.1.1",
|
|
207
206
|
"@equinor/fusion-framework-module-context": "9.0.1",
|
|
208
207
|
"@equinor/fusion-framework-module-feature-flag": "2.1.1",
|
|
209
208
|
"@equinor/fusion-framework-module-msal": "12.0.0",
|
|
210
|
-
"@equinor/fusion-framework-module-
|
|
211
|
-
"@equinor/fusion-framework-module-
|
|
209
|
+
"@equinor/fusion-framework-module-event": "6.1.1",
|
|
210
|
+
"@equinor/fusion-framework-module-roles": "^0.3.0",
|
|
212
211
|
"@equinor/fusion-framework-module-telemetry": "7.1.2",
|
|
212
|
+
"@equinor/fusion-framework-module-state": "^2.0.4",
|
|
213
213
|
"@equinor/fusion-framework-react-module-bookmark": "7.0.1",
|
|
214
214
|
"@equinor/fusion-framework-react-module-context": "7.0.4",
|
|
215
|
-
"@equinor/fusion-framework-react-router": "2.4.4",
|
|
216
215
|
"@equinor/fusion-observable": "9.2.3",
|
|
217
|
-
"@equinor/fusion-framework-
|
|
216
|
+
"@equinor/fusion-framework-react-router": "2.4.4",
|
|
217
|
+
"@equinor/fusion-framework-vitest-plugin-react-app": "1.0.10"
|
|
218
218
|
},
|
|
219
219
|
"peerDependencies": {
|
|
220
220
|
"@types/react": "^18.0.0 || ^19.0.0",
|
|
221
221
|
"react": "^18.0.0 || ^19.0.0",
|
|
222
222
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
223
223
|
"rxjs": "^7.0.0",
|
|
224
|
-
"@equinor/fusion-framework-module-ag-grid": "^37.1.
|
|
225
|
-
"@equinor/fusion-framework-react-ag-grid": "^37.1.
|
|
224
|
+
"@equinor/fusion-framework-module-ag-grid": "^37.1.2",
|
|
225
|
+
"@equinor/fusion-framework-react-ag-grid": "^37.1.2",
|
|
226
226
|
"@equinor/fusion-framework-module-msal": "^12.0.0",
|
|
227
|
-
"@equinor/fusion-framework-module-roles": "^0.
|
|
228
|
-
"@equinor/fusion-framework-
|
|
229
|
-
"@equinor/fusion-framework-
|
|
227
|
+
"@equinor/fusion-framework-module-roles": "^0.3.0",
|
|
228
|
+
"@equinor/fusion-framework-module-state": "^2.0.4",
|
|
229
|
+
"@equinor/fusion-framework-react-router": "^2.4.4"
|
|
230
230
|
},
|
|
231
231
|
"peerDependenciesMeta": {
|
|
232
232
|
"@equinor/fusion-framework-module-ag-grid": {
|