@equinor/fusion-framework-react-app 14.2.2 → 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 +17 -17
|
@@ -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,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",
|
|
184
182
|
"@equinor/fusion-framework-module-http": "8.1.2",
|
|
185
|
-
"@equinor/fusion-framework
|
|
183
|
+
"@equinor/fusion-framework": "9.0.1",
|
|
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,32 +199,32 @@
|
|
|
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
202
|
"@equinor/fusion-framework-react-ag-grid": "37.1.1",
|
|
204
|
-
"@equinor/fusion-framework-module-
|
|
203
|
+
"@equinor/fusion-framework-module-ag-grid": "37.1.1",
|
|
205
204
|
"@equinor/fusion-framework-module-analytics": "3.1.5",
|
|
206
|
-
"@equinor/fusion-framework-module-
|
|
205
|
+
"@equinor/fusion-framework-module-bookmark": "4.1.2",
|
|
207
206
|
"@equinor/fusion-framework-module-context": "9.0.1",
|
|
207
|
+
"@equinor/fusion-framework-module-event": "6.1.1",
|
|
208
208
|
"@equinor/fusion-framework-module-feature-flag": "2.1.1",
|
|
209
|
-
"@equinor/fusion-framework-module-
|
|
210
|
-
"@equinor/fusion-framework-module-roles": "^0.2.2",
|
|
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-
|
|
217
|
-
"@equinor/fusion-
|
|
216
|
+
"@equinor/fusion-framework-vitest-plugin-react-app": "1.0.8",
|
|
217
|
+
"@equinor/fusion-observable": "9.2.3"
|
|
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.1",
|
|
225
224
|
"@equinor/fusion-framework-react-ag-grid": "^37.1.1",
|
|
225
|
+
"@equinor/fusion-framework-module-ag-grid": "^37.1.1",
|
|
226
226
|
"@equinor/fusion-framework-module-msal": "^12.0.0",
|
|
227
|
-
"@equinor/fusion-framework-module-roles": "^0.
|
|
227
|
+
"@equinor/fusion-framework-module-roles": "^0.3.0",
|
|
228
228
|
"@equinor/fusion-framework-react-router": "^2.4.4",
|
|
229
229
|
"@equinor/fusion-framework-module-state": "^2.0.4"
|
|
230
230
|
},
|