@trackunit/react-core-hooks 1.7.90 → 1.7.91

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/index.cjs.js CHANGED
@@ -295,6 +295,31 @@ const useExportDataContext = () => {
295
295
  return context;
296
296
  };
297
297
 
298
+ const FeatureFlagContext = react.createContext(null);
299
+ /**
300
+ * This is a provider for the FeatureFlagContext.
301
+ */
302
+ const FeatureFlagContextProvider = (props) => {
303
+ return jsxRuntime.jsx(FeatureFlagContext.Provider, { ...props });
304
+ };
305
+ /**
306
+ * This is a hook to use the FeatureFlagContext.
307
+ *
308
+ * @requires FeatureFlagContext
309
+ * @example
310
+ * import { useFeatureFlags } from "@trackunit/react-core-hooks";
311
+ * const { flags } = useFeatureFlags();
312
+ * // use flags to control visibility/access ...
313
+ * @see (@link FeatureFlagContext)
314
+ */
315
+ const useFeatureFlags = () => {
316
+ const context = react.useContext(FeatureFlagContext);
317
+ if (!context) {
318
+ throw new Error("useFeatureFlags must be used within a FeatureFlagContext");
319
+ }
320
+ return context;
321
+ };
322
+
298
323
  /**
299
324
  * Fetch any url as a blob and return a blob url.
300
325
  * This is used to get and display logos and images related to Iris Apps.
@@ -1356,6 +1381,7 @@ exports.EnvironmentContextProvider = EnvironmentContextProvider;
1356
1381
  exports.ErrorHandlingContext = ErrorHandlingContext;
1357
1382
  exports.ErrorHandlingContextProvider = ErrorHandlingContextProvider;
1358
1383
  exports.ExportDataContext = ExportDataContext;
1384
+ exports.FeatureFlagContextProvider = FeatureFlagContextProvider;
1359
1385
  exports.FilterBarProvider = FilterBarProvider;
1360
1386
  exports.ModalDialogContextProvider = ModalDialogContextProvider;
1361
1387
  exports.NavigationContextProvider = NavigationContextProvider;
@@ -1383,6 +1409,7 @@ exports.useErrorHandlerOrNull = useErrorHandlerOrNull;
1383
1409
  exports.useEventRuntime = useEventRuntime;
1384
1410
  exports.useExportDataContext = useExportDataContext;
1385
1411
  exports.useFeatureBranchQueryString = useFeatureBranchQueryString;
1412
+ exports.useFeatureFlags = useFeatureFlags;
1386
1413
  exports.useFilterBarContext = useFilterBarContext;
1387
1414
  exports.useHasAccessTo = useHasAccessTo;
1388
1415
  exports.useImageUploader = useImageUploader;
package/index.esm.js CHANGED
@@ -293,6 +293,31 @@ const useExportDataContext = () => {
293
293
  return context;
294
294
  };
295
295
 
296
+ const FeatureFlagContext = createContext(null);
297
+ /**
298
+ * This is a provider for the FeatureFlagContext.
299
+ */
300
+ const FeatureFlagContextProvider = (props) => {
301
+ return jsx(FeatureFlagContext.Provider, { ...props });
302
+ };
303
+ /**
304
+ * This is a hook to use the FeatureFlagContext.
305
+ *
306
+ * @requires FeatureFlagContext
307
+ * @example
308
+ * import { useFeatureFlags } from "@trackunit/react-core-hooks";
309
+ * const { flags } = useFeatureFlags();
310
+ * // use flags to control visibility/access ...
311
+ * @see (@link FeatureFlagContext)
312
+ */
313
+ const useFeatureFlags = () => {
314
+ const context = useContext(FeatureFlagContext);
315
+ if (!context) {
316
+ throw new Error("useFeatureFlags must be used within a FeatureFlagContext");
317
+ }
318
+ return context;
319
+ };
320
+
296
321
  /**
297
322
  * Fetch any url as a blob and return a blob url.
298
323
  * This is used to get and display logos and images related to Iris Apps.
@@ -1344,4 +1369,4 @@ const useWidgetConfig = () => {
1344
1369
  return result;
1345
1370
  };
1346
1371
 
1347
- export { AnalyticsContext, AnalyticsContextProvider, AssetSortingProvider, ConfirmationDialogProvider, CurrentUserPreferenceProvider, CurrentUserProvider, EnvironmentContextProvider, ErrorHandlingContext, ErrorHandlingContextProvider, ExportDataContext, FilterBarProvider, ModalDialogContextProvider, NavigationContextProvider, OemBrandingContextProvider, TimeRangeProvider, ToastProvider, TokenProvider, UserSubscriptionProvider, WidgetConfigContext, WidgetConfigProvider, fetchAssetBlobUrl, useAnalytics, useAssetRuntime, useAssetSorting, useConfirmationDialog, useCurrentUser, useCurrentUserLanguage, useCurrentUserSystemOfMeasurement, useCurrentUserTimeZonePreference, useCustomEncoding, useCustomerRuntime, useEnvironment, useErrorHandler, useErrorHandlerOrNull, useEventRuntime, useExportDataContext, useFeatureBranchQueryString, useFilterBarContext, useHasAccessTo, useImageUploader, useIrisAppId, useIrisAppImage, useIrisAppName, useLocalStorage, useLocalStorageReducer, useModalDialogContext, useNavigateInHost, useOemBrandingContext, usePrevious, useSiteRuntime, useTextSearch, useTimeRange, useToast, useToken, useUserSubscription, useWatch, useWidgetConfig, useWidgetConfigAsync };
1372
+ export { AnalyticsContext, AnalyticsContextProvider, AssetSortingProvider, ConfirmationDialogProvider, CurrentUserPreferenceProvider, CurrentUserProvider, EnvironmentContextProvider, ErrorHandlingContext, ErrorHandlingContextProvider, ExportDataContext, FeatureFlagContextProvider, FilterBarProvider, ModalDialogContextProvider, NavigationContextProvider, OemBrandingContextProvider, TimeRangeProvider, ToastProvider, TokenProvider, UserSubscriptionProvider, WidgetConfigContext, WidgetConfigProvider, fetchAssetBlobUrl, useAnalytics, useAssetRuntime, useAssetSorting, useConfirmationDialog, useCurrentUser, useCurrentUserLanguage, useCurrentUserSystemOfMeasurement, useCurrentUserTimeZonePreference, useCustomEncoding, useCustomerRuntime, useEnvironment, useErrorHandler, useErrorHandlerOrNull, useEventRuntime, useExportDataContext, useFeatureBranchQueryString, useFeatureFlags, useFilterBarContext, useHasAccessTo, useImageUploader, useIrisAppId, useIrisAppImage, useIrisAppName, useLocalStorage, useLocalStorageReducer, useModalDialogContext, useNavigateInHost, useOemBrandingContext, usePrevious, useSiteRuntime, useTextSearch, useTimeRange, useToast, useToken, useUserSubscription, useWatch, useWidgetConfig, useWidgetConfigAsync };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/react-core-hooks",
3
- "version": "1.7.90",
3
+ "version": "1.7.91",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -9,11 +9,11 @@
9
9
  "dependencies": {
10
10
  "react": "19.0.0",
11
11
  "zod": "^3.23.8",
12
- "@trackunit/iris-app-runtime-core": "1.8.86",
12
+ "@trackunit/iris-app-runtime-core": "1.8.87",
13
13
  "@trackunit/shared-utils": "1.9.77",
14
14
  "fflate": "^0.8.2",
15
15
  "es-toolkit": "^1.39.10",
16
- "@trackunit/iris-app-runtime-core-api": "1.7.86"
16
+ "@trackunit/iris-app-runtime-core-api": "1.7.87"
17
17
  },
18
18
  "module": "./index.esm.js",
19
19
  "main": "./index.cjs.js",
@@ -0,0 +1,22 @@
1
+ import { FeatureFlagState } from "@trackunit/iris-app-runtime-core-api";
2
+ import { ReactNode } from "react";
3
+ export interface FeatureFlagContextProviderProps {
4
+ children?: ReactNode;
5
+ /** Override the value of the FeatureFlag context. Useful for testing purposes. */
6
+ value: FeatureFlagState;
7
+ }
8
+ /**
9
+ * This is a provider for the FeatureFlagContext.
10
+ */
11
+ export declare const FeatureFlagContextProvider: (props: FeatureFlagContextProviderProps) => import("react/jsx-runtime").JSX.Element;
12
+ /**
13
+ * This is a hook to use the FeatureFlagContext.
14
+ *
15
+ * @requires FeatureFlagContext
16
+ * @example
17
+ * import { useFeatureFlags } from "@trackunit/react-core-hooks";
18
+ * const { flags } = useFeatureFlags();
19
+ * // use flags to control visibility/access ...
20
+ * @see (@link FeatureFlagContext)
21
+ */
22
+ export declare const useFeatureFlags: () => FeatureFlagState;
package/src/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from "./encoding/useCustomEncoding";
5
5
  export * from "./environment/EnvironmentContextProvider";
6
6
  export * from "./errorHandling/ErrorHandlingProvider";
7
7
  export * from "./exportData/ExportDataContextState";
8
+ export * from "./featureFlags/FeatureFlagContextProvider";
8
9
  export * from "./fetchAssetBlobUrl";
9
10
  export * from "./filter-bar/FilterBarProvider";
10
11
  export * from "./images/useImageUploader";