@equinor/fusion-framework-react-app 4.2.0 → 4.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/CHANGELOG.md +27 -0
- package/README.md +2 -0
- package/dist/esm/create-legacy-app.js.map +1 -1
- package/dist/esm/feature-flag/index.js +2 -0
- package/dist/esm/feature-flag/index.js.map +1 -0
- package/dist/esm/feature-flag/useFeature.js +33 -0
- package/dist/esm/feature-flag/useFeature.js.map +1 -0
- package/dist/esm/useAppModule.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/feature-flag/index.d.ts +2 -0
- package/dist/types/feature-flag/useFeature.d.ts +6 -0
- package/dist/types/render-app.d.ts +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +31 -35
- package/src/feature-flag/README.md +20 -0
- package/src/feature-flag/index.ts +6 -0
- package/src/feature-flag/useFeature.ts +66 -0
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 4.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#1747](https://github.com/equinor/fusion-framework/pull/1747) [`8b031c3`](https://github.com/equinor/fusion-framework/commit/8b031c31f314deeffdf395fc847e4279b61aab7e) Thanks [@odinr](https://github.com/odinr)! - refactor hook for accessing feature flags
|
|
8
|
+
|
|
9
|
+
> [!IMPORTANT]
|
|
10
|
+
> the `useFeature` hook look for flag in parent **(portal)** if not defined in application scope
|
|
11
|
+
|
|
12
|
+
> [!CAUTION] > `@equinor/fusion-framework-react-app/feature-flag` will only return `useFeature`, since we don not see any scenario which an application would need to access multiple.
|
|
13
|
+
> We might add `useFeatures` if the should be an use-case
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [[`8b031c3`](https://github.com/equinor/fusion-framework/commit/8b031c31f314deeffdf395fc847e4279b61aab7e), [`8b031c3`](https://github.com/equinor/fusion-framework/commit/8b031c31f314deeffdf395fc847e4279b61aab7e)]:
|
|
18
|
+
- @equinor/fusion-framework-app@8.0.0
|
|
19
|
+
- @equinor/fusion-framework-react@6.0.0
|
|
20
|
+
|
|
21
|
+
## 4.2.1
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- [#1215](https://github.com/equinor/fusion-framework/pull/1215) [`1918c82`](https://github.com/equinor/fusion-framework/commit/1918c8228bc7158c4c358aa8f5688342e3b11b1d) Thanks [@odinr](https://github.com/odinr)! - Adding PersonSidesheet to cli with featuretoggler
|
|
26
|
+
|
|
27
|
+
- Updated dependencies []:
|
|
28
|
+
- @equinor/fusion-framework-react@5.3.9
|
|
29
|
+
|
|
3
30
|
## 4.2.0
|
|
4
31
|
|
|
5
32
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-legacy-app.js","sourceRoot":"","sources":["../../src/create-legacy-app.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAK/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,SAA4B,EAC5B,SAAwC,EAC1C,EAAE;IACA,MAAM,eAAe,GAAG,GAAgB,EAAE;QACtC,MAAM,MAAM,GAAG,YAAY,EAAe,CAAC;QAC3C,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;YACjC,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAGtD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YACvC,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"create-legacy-app.js","sourceRoot":"","sources":["../../src/create-legacy-app.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAK/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,SAA4B,EAC5B,SAAwC,EAC1C,EAAE;IACA,MAAM,eAAe,GAAG,GAAgB,EAAE;QACtC,MAAM,MAAM,GAAG,YAAY,EAAe,CAAC;QAC3C,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;YACjC,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAGtD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YACvC,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,EAAE,CAAC;gBACvB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC;gBACjD,OAAO,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAuB,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,OAAO,CAAC,MAAM,EAAE,EAAuB,CAAC,CAAC;QACpD,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACb,OAAO,CACH,KAAC,QAAQ,IAAC,QAAQ,EAAE,sCAAkB,YAClC,KAAC,eAAe,KAAG,GACZ,CACd,CAAC;IACN,CAAC,CAAC;IACF,OAAO,eAAe,CAAC;AAC3B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/feature-flag/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useCallback, useMemo } from 'react';
|
|
2
|
+
import { EMPTY, combineLatest, map } from 'rxjs';
|
|
3
|
+
import { useFrameworkModule } from '@equinor/fusion-framework-react';
|
|
4
|
+
import { useObservableState } from '@equinor/fusion-observable/react';
|
|
5
|
+
import { findFeature } from '@equinor/fusion-framework-module-feature-flag/selectors';
|
|
6
|
+
import { useAppModule } from '../useAppModule';
|
|
7
|
+
export const useFeature = (key) => {
|
|
8
|
+
const appProvider = useAppModule('featureFlag');
|
|
9
|
+
const frameworkProvider = useFrameworkModule('featureFlag');
|
|
10
|
+
const features$ = useMemo(() => {
|
|
11
|
+
if (!frameworkProvider) {
|
|
12
|
+
return appProvider.features$;
|
|
13
|
+
}
|
|
14
|
+
return combineLatest({
|
|
15
|
+
framework: frameworkProvider.features$,
|
|
16
|
+
app: appProvider.features$,
|
|
17
|
+
}).pipe(map(({ framework, app }) => {
|
|
18
|
+
return Object.assign(Object.assign({}, framework), app);
|
|
19
|
+
}));
|
|
20
|
+
}, [appProvider, frameworkProvider]);
|
|
21
|
+
const feature$ = useMemo(() => features$.pipe(findFeature(key)), [features$, key]);
|
|
22
|
+
const { value: feature, error } = useObservableState(feature$ !== null && feature$ !== void 0 ? feature$ : EMPTY);
|
|
23
|
+
const toggleFeature = useCallback((enable) => {
|
|
24
|
+
var _a;
|
|
25
|
+
const enabled = enable === undefined ? !((_a = appProvider.getFeature(key)) === null || _a === void 0 ? void 0 : _a.enabled) : enable;
|
|
26
|
+
appProvider.toggleFeature({
|
|
27
|
+
key,
|
|
28
|
+
enabled,
|
|
29
|
+
});
|
|
30
|
+
}, [appProvider, key]);
|
|
31
|
+
return { feature, toggleFeature, error };
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=useFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFeature.js","sourceRoot":"","sources":["../../../src/feature-flag/useFeature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAKtE,OAAO,EAAE,WAAW,EAAE,MAAM,yDAAyD,CAAC;AAEtF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQ/C,MAAM,CAAC,MAAM,UAAU,GAAG,CACtB,GAAW,EAKb,EAAE;IACA,MAAM,WAAW,GAAG,YAAY,CAAoB,aAAa,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,kBAAkB,CAAoB,aAAa,CAAC,CAAC;IAG/E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAE3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,OAAO,WAAW,CAAC,SAAS,CAAC;QACjC,CAAC;QAED,OAAO,aAAa,CAAC;YACjB,SAAS,EAAE,iBAAiB,CAAC,SAAS;YACtC,GAAG,EAAE,WAAW,CAAC,SAAS;SAC7B,CAAC,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;YACvB,uCAAY,SAAS,GAAK,GAAG,EAAG;QACpC,CAAC,CAAC,CACL,CAAC;IACN,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAGrC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAI,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IAEtF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,KAAK,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,WAAW,CAC7B,CAAC,MAAgB,EAAE,EAAE;;QAEjB,MAAM,OAAO,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA,MAAA,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,0CAAE,OAAO,CAAA,CAAC,CAAC,CAAC,MAAM,CAAC;QACtF,WAAW,CAAC,aAAa,CAAC;YACtB,GAAG;YACH,OAAO;SACV,CAAC,CAAC;IACP,CAAC,EACD,CAAC,WAAW,EAAE,GAAG,CAAC,CACrB,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAppModule.js","sourceRoot":"","sources":["../../src/useAppModule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAWhD,MAAM,CAAC,MAAM,YAAY,GAAG,CAIxB,MAAY,EAGkD,EAAE;IAGhE,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"useAppModule.js","sourceRoot":"","sources":["../../src/useAppModule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAWhD,MAAM,CAAC,MAAM,YAAY,GAAG,CAIxB,MAAY,EAGkD,EAAE;IAGhE,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,KAAK,CAAC,yBAAyB,MAAM,oCAAoC,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
package/dist/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '4.
|
|
1
|
+
export const version = '4.3.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|