@equinor/fusion-framework-react-app 14.2.1 → 14.3.0
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 +15 -15
|
@@ -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.0";
|
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.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/esm/index.js",
|
|
@@ -177,14 +177,14 @@
|
|
|
177
177
|
"directory": "packages/react"
|
|
178
178
|
},
|
|
179
179
|
"dependencies": {
|
|
180
|
-
"@equinor/fusion-framework": "
|
|
181
|
-
"@equinor/fusion-framework-app": "13.1.5",
|
|
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-module-http": "8.1.2",
|
|
183
|
+
"@equinor/fusion-framework": "9.0.1",
|
|
184
|
+
"@equinor/fusion-framework-module-app": "8.2.0",
|
|
184
185
|
"@equinor/fusion-framework-module-navigation": "7.0.10",
|
|
185
|
-
"@equinor/fusion-framework-
|
|
186
|
+
"@equinor/fusion-framework-react": "9.0.2",
|
|
186
187
|
"@equinor/fusion-framework-react-module-http": "12.0.1",
|
|
187
|
-
"@equinor/fusion-framework-react": "9.0.1",
|
|
188
188
|
"@equinor/fusion-framework-react-module": "4.0.4"
|
|
189
189
|
},
|
|
190
190
|
"devDependencies": {
|
|
@@ -199,21 +199,21 @@
|
|
|
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.1",
|
|
203
|
-
"@equinor/fusion-framework-module-analytics": "3.1.4",
|
|
204
202
|
"@equinor/fusion-framework-react-ag-grid": "37.1.1",
|
|
203
|
+
"@equinor/fusion-framework-module-ag-grid": "37.1.1",
|
|
204
|
+
"@equinor/fusion-framework-module-analytics": "3.1.5",
|
|
205
205
|
"@equinor/fusion-framework-module-bookmark": "4.1.2",
|
|
206
206
|
"@equinor/fusion-framework-module-context": "9.0.1",
|
|
207
207
|
"@equinor/fusion-framework-module-event": "6.1.1",
|
|
208
|
-
"@equinor/fusion-framework-module-msal": "11.0.3",
|
|
209
|
-
"@equinor/fusion-framework-module-roles": "^0.2.1",
|
|
210
208
|
"@equinor/fusion-framework-module-feature-flag": "2.1.1",
|
|
209
|
+
"@equinor/fusion-framework-module-roles": "^0.3.0",
|
|
211
210
|
"@equinor/fusion-framework-module-state": "^2.0.4",
|
|
212
|
-
"@equinor/fusion-framework-module-
|
|
211
|
+
"@equinor/fusion-framework-module-msal": "12.0.0",
|
|
213
212
|
"@equinor/fusion-framework-react-module-bookmark": "7.0.1",
|
|
213
|
+
"@equinor/fusion-framework-module-telemetry": "7.1.2",
|
|
214
214
|
"@equinor/fusion-framework-react-module-context": "7.0.4",
|
|
215
215
|
"@equinor/fusion-framework-react-router": "2.4.4",
|
|
216
|
-
"@equinor/fusion-framework-vitest-plugin-react-app": "1.0.
|
|
216
|
+
"@equinor/fusion-framework-vitest-plugin-react-app": "1.0.8",
|
|
217
217
|
"@equinor/fusion-observable": "9.2.3"
|
|
218
218
|
},
|
|
219
219
|
"peerDependencies": {
|
|
@@ -222,11 +222,11 @@
|
|
|
222
222
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
223
223
|
"rxjs": "^7.0.0",
|
|
224
224
|
"@equinor/fusion-framework-react-ag-grid": "^37.1.1",
|
|
225
|
-
"@equinor/fusion-framework-module-state": "^2.0.4",
|
|
226
|
-
"@equinor/fusion-framework-module-msal": "^11.0.3",
|
|
227
225
|
"@equinor/fusion-framework-module-ag-grid": "^37.1.1",
|
|
226
|
+
"@equinor/fusion-framework-module-msal": "^12.0.0",
|
|
227
|
+
"@equinor/fusion-framework-module-roles": "^0.3.0",
|
|
228
228
|
"@equinor/fusion-framework-react-router": "^2.4.4",
|
|
229
|
-
"@equinor/fusion-framework-module-
|
|
229
|
+
"@equinor/fusion-framework-module-state": "^2.0.4"
|
|
230
230
|
},
|
|
231
231
|
"peerDependenciesMeta": {
|
|
232
232
|
"@equinor/fusion-framework-module-ag-grid": {
|