@trackunit/react-core-hooks 0.2.96 → 0.2.97

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
@@ -482,6 +482,80 @@ function useTextSearch(items, props) {
482
482
  return [result, searchText, setSearchText];
483
483
  }
484
484
 
485
+ const CurrentUserPreferenceContext = React.createContext(null);
486
+ /**
487
+ *
488
+ */
489
+ const CurrentUserPreferenceProvider = (props) => {
490
+ return jsxRuntime.jsx(CurrentUserPreferenceContext.Provider, Object.assign({}, props));
491
+ };
492
+ /**
493
+ * This is a hook providing the Current User language.
494
+ *
495
+ * @requires CurrentUserPreferenceProvider
496
+ * @example
497
+ * import { useCurrentUserLanguage } from "@trackunit/react-core-hooks";
498
+ * const { language, setLanguage } = useCurrentUserLanguage();
499
+ *
500
+ * language: Gets the language setting of the current user.
501
+ * setLanguage: Sets the language setting of the current user.
502
+ * @see {@link IUserPreferencesContext}
503
+ */
504
+ const useCurrentUserLanguage = () => {
505
+ const context = React.useContext(CurrentUserPreferenceContext);
506
+ if (!context) {
507
+ throw new Error("useCurrentUserLanguage must be used within the CurrentUserPreferenceProvider");
508
+ }
509
+ return {
510
+ language: context.language,
511
+ setLanguage: context.setLanguage,
512
+ };
513
+ };
514
+ /**
515
+ * This is a hook providing the Current User TimeZone Preference.
516
+ *
517
+ * @requires CurrentUserPreferenceProvider
518
+ * @example
519
+ * import { useCurrentUserTimeZonePreference } from "@trackunit/react-core-hooks";
520
+ * const { timeZonePreference, setTimeZonePreference } = useCurrentUserTimeZonePreference();
521
+ *
522
+ * timeZonePreference: Determines if the user has a timezone preference of "CUSTOM_TIME_ZONE" | "LOCAL_TIME_ZONE" | "MACHINE_TIME_ZONE"
523
+ * setTimeZonePreference: Sets the timezone preference of the current user.
524
+ * @see {@link IUserPreferencesContext}
525
+ */
526
+ const useCurrentUserTimeZonePreference = () => {
527
+ const context = React.useContext(CurrentUserPreferenceContext);
528
+ if (!context) {
529
+ throw new Error("useCurrentUserTimeZone must be used within the CurrentUserPreferenceProvider");
530
+ }
531
+ return {
532
+ timeZonePreference: context.timeZonePreference,
533
+ setTimeZonePreference: context.setTimeZonePreference,
534
+ };
535
+ };
536
+ /**
537
+ * This is a hook providing the Current User language.
538
+ *
539
+ * @requires CurrentUserPreferenceProvider
540
+ * @example
541
+ * import { useCurrentUserSystemOfMeasurement } from "@trackunit/react-core-hooks";
542
+ * const { systemOfMeasurement, setSystemOfMeasurement } = useCurrentUserSystemOfMeasurement();
543
+ *
544
+ * systemOfMeasurement: Gets the system of measurement setting of the current user. "SI" | "US_CUSTOMARY"
545
+ * setSystemOfMeasurement: Sets the system of measurement setting of the current user.
546
+ * @see {@link IUserPreferencesContext}
547
+ */
548
+ const useCurrentUserSystemOfMeasurement = () => {
549
+ const context = React.useContext(CurrentUserPreferenceContext);
550
+ if (!context) {
551
+ throw new Error("useCurrentUserSystemOfMeasurement must be used within the CurrentUserPreferenceProvider");
552
+ }
553
+ return {
554
+ systemOfMeasurement: context.systemOfMeasurement,
555
+ setSystemOfMeasurement: context.setSystemOfMeasurement,
556
+ };
557
+ };
558
+
485
559
  const CurrentUserContext = React__namespace.createContext(null);
486
560
  /**
487
561
  * This is a provider for the CurrentUserContext.
@@ -514,6 +588,7 @@ const useCurrentUser = () => {
514
588
  exports.AnalyticsContext = AnalyticsContext;
515
589
  exports.AnalyticsContextProvider = AnalyticsContextProvider;
516
590
  exports.AssetSortingProvider = AssetSortingProvider;
591
+ exports.CurrentUserPreferenceProvider = CurrentUserPreferenceProvider;
517
592
  exports.CurrentUserProvider = CurrentUserProvider;
518
593
  exports.EnvironmentContextProvider = EnvironmentContextProvider;
519
594
  exports.FilterBarProvider = FilterBarProvider;
@@ -526,6 +601,9 @@ exports.useAnalytics = useAnalytics;
526
601
  exports.useAssetRuntime = useAssetRuntime;
527
602
  exports.useAssetSorting = useAssetSorting;
528
603
  exports.useCurrentUser = useCurrentUser;
604
+ exports.useCurrentUserLanguage = useCurrentUserLanguage;
605
+ exports.useCurrentUserSystemOfMeasurement = useCurrentUserSystemOfMeasurement;
606
+ exports.useCurrentUserTimeZonePreference = useCurrentUserTimeZonePreference;
529
607
  exports.useCustomFieldRuntime = useCustomFieldRuntime;
530
608
  exports.useCustomFieldRuntimeForEntity = useCustomFieldRuntimeForEntity;
531
609
  exports.useEnvironment = useEnvironment;
package/index.esm.js CHANGED
@@ -456,6 +456,80 @@ function useTextSearch(items, props) {
456
456
  return [result, searchText, setSearchText];
457
457
  }
458
458
 
459
+ const CurrentUserPreferenceContext = createContext(null);
460
+ /**
461
+ *
462
+ */
463
+ const CurrentUserPreferenceProvider = (props) => {
464
+ return jsx(CurrentUserPreferenceContext.Provider, Object.assign({}, props));
465
+ };
466
+ /**
467
+ * This is a hook providing the Current User language.
468
+ *
469
+ * @requires CurrentUserPreferenceProvider
470
+ * @example
471
+ * import { useCurrentUserLanguage } from "@trackunit/react-core-hooks";
472
+ * const { language, setLanguage } = useCurrentUserLanguage();
473
+ *
474
+ * language: Gets the language setting of the current user.
475
+ * setLanguage: Sets the language setting of the current user.
476
+ * @see {@link IUserPreferencesContext}
477
+ */
478
+ const useCurrentUserLanguage = () => {
479
+ const context = useContext(CurrentUserPreferenceContext);
480
+ if (!context) {
481
+ throw new Error("useCurrentUserLanguage must be used within the CurrentUserPreferenceProvider");
482
+ }
483
+ return {
484
+ language: context.language,
485
+ setLanguage: context.setLanguage,
486
+ };
487
+ };
488
+ /**
489
+ * This is a hook providing the Current User TimeZone Preference.
490
+ *
491
+ * @requires CurrentUserPreferenceProvider
492
+ * @example
493
+ * import { useCurrentUserTimeZonePreference } from "@trackunit/react-core-hooks";
494
+ * const { timeZonePreference, setTimeZonePreference } = useCurrentUserTimeZonePreference();
495
+ *
496
+ * timeZonePreference: Determines if the user has a timezone preference of "CUSTOM_TIME_ZONE" | "LOCAL_TIME_ZONE" | "MACHINE_TIME_ZONE"
497
+ * setTimeZonePreference: Sets the timezone preference of the current user.
498
+ * @see {@link IUserPreferencesContext}
499
+ */
500
+ const useCurrentUserTimeZonePreference = () => {
501
+ const context = useContext(CurrentUserPreferenceContext);
502
+ if (!context) {
503
+ throw new Error("useCurrentUserTimeZone must be used within the CurrentUserPreferenceProvider");
504
+ }
505
+ return {
506
+ timeZonePreference: context.timeZonePreference,
507
+ setTimeZonePreference: context.setTimeZonePreference,
508
+ };
509
+ };
510
+ /**
511
+ * This is a hook providing the Current User language.
512
+ *
513
+ * @requires CurrentUserPreferenceProvider
514
+ * @example
515
+ * import { useCurrentUserSystemOfMeasurement } from "@trackunit/react-core-hooks";
516
+ * const { systemOfMeasurement, setSystemOfMeasurement } = useCurrentUserSystemOfMeasurement();
517
+ *
518
+ * systemOfMeasurement: Gets the system of measurement setting of the current user. "SI" | "US_CUSTOMARY"
519
+ * setSystemOfMeasurement: Sets the system of measurement setting of the current user.
520
+ * @see {@link IUserPreferencesContext}
521
+ */
522
+ const useCurrentUserSystemOfMeasurement = () => {
523
+ const context = useContext(CurrentUserPreferenceContext);
524
+ if (!context) {
525
+ throw new Error("useCurrentUserSystemOfMeasurement must be used within the CurrentUserPreferenceProvider");
526
+ }
527
+ return {
528
+ systemOfMeasurement: context.systemOfMeasurement,
529
+ setSystemOfMeasurement: context.setSystemOfMeasurement,
530
+ };
531
+ };
532
+
459
533
  const CurrentUserContext = React.createContext(null);
460
534
  /**
461
535
  * This is a provider for the CurrentUserContext.
@@ -485,4 +559,4 @@ const useCurrentUser = () => {
485
559
  return context;
486
560
  };
487
561
 
488
- export { AnalyticsContext, AnalyticsContextProvider, AssetSortingProvider, CurrentUserProvider, EnvironmentContextProvider, FilterBarProvider, GlobalSelectionProvider, OemBrandingContextProvider, ToastProvider, TokenProvider, UserSubscriptionProvider, useAnalytics, useAssetRuntime, useAssetSorting, useCurrentUser, useCustomFieldRuntime, useCustomFieldRuntimeForEntity, useEnvironment, useFilterBarContext, useGlobalSelection, useNavigationRuntime, useOemBrandingContext, useRestRuntime, useSiteRuntime, useTextSearch, useToast, useToken, useURLSynchronization, useUserSubscription };
562
+ export { AnalyticsContext, AnalyticsContextProvider, AssetSortingProvider, CurrentUserPreferenceProvider, CurrentUserProvider, EnvironmentContextProvider, FilterBarProvider, GlobalSelectionProvider, OemBrandingContextProvider, ToastProvider, TokenProvider, UserSubscriptionProvider, useAnalytics, useAssetRuntime, useAssetSorting, useCurrentUser, useCurrentUserLanguage, useCurrentUserSystemOfMeasurement, useCurrentUserTimeZonePreference, useCustomFieldRuntime, useCustomFieldRuntimeForEntity, useEnvironment, useFilterBarContext, useGlobalSelection, useNavigationRuntime, useOemBrandingContext, useRestRuntime, useSiteRuntime, useTextSearch, useToast, useToken, useURLSynchronization, useUserSubscription };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/react-core-hooks",
3
- "version": "0.2.96",
3
+ "version": "0.2.97",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -9,9 +9,9 @@
9
9
  "module": "./index.esm.js",
10
10
  "main": "./index.cjs.js",
11
11
  "dependencies": {
12
- "@trackunit/iris-app-runtime-core": "0.3.78",
13
- "@trackunit/iris-app-runtime-core-api": "0.3.70",
14
- "@trackunit/react-core-contexts-api": "0.2.58",
12
+ "@trackunit/iris-app-runtime-core": "0.3.79",
13
+ "@trackunit/iris-app-runtime-core-api": "0.3.71",
14
+ "@trackunit/react-core-contexts-api": "0.2.59",
15
15
  "@trackunit/shared-utils": "0.0.8",
16
16
  "react": "18.2.0",
17
17
  "react-router-dom": "6.11.2"
package/src/index.d.ts CHANGED
@@ -15,4 +15,5 @@ export * from "./subscription/UserSubscriptionProvider";
15
15
  export * from "./toast/ToastProvider";
16
16
  export * from "./token/TokenProvider";
17
17
  export * from "./useTextSearch";
18
+ export * from "./user/CurrentUserPreferenceProvider";
18
19
  export * from "./user/CurrentUserProvider";
@@ -0,0 +1,59 @@
1
+ import { IUserPreferencesContext } from "@trackunit/react-core-contexts-api";
2
+ import { ReactNode } from "react";
3
+ interface Props {
4
+ value: IUserPreferencesContext;
5
+ children?: ReactNode;
6
+ }
7
+ /**
8
+ *
9
+ */
10
+ export declare const CurrentUserPreferenceProvider: (props: Props) => JSX.Element;
11
+ /**
12
+ * This is a hook providing the Current User language.
13
+ *
14
+ * @requires CurrentUserPreferenceProvider
15
+ * @example
16
+ * import { useCurrentUserLanguage } from "@trackunit/react-core-hooks";
17
+ * const { language, setLanguage } = useCurrentUserLanguage();
18
+ *
19
+ * language: Gets the language setting of the current user.
20
+ * setLanguage: Sets the language setting of the current user.
21
+ * @see {@link IUserPreferencesContext}
22
+ */
23
+ export declare const useCurrentUserLanguage: () => {
24
+ language: string | undefined;
25
+ setLanguage: ((language: string) => void) | undefined;
26
+ };
27
+ /**
28
+ * This is a hook providing the Current User TimeZone Preference.
29
+ *
30
+ * @requires CurrentUserPreferenceProvider
31
+ * @example
32
+ * import { useCurrentUserTimeZonePreference } from "@trackunit/react-core-hooks";
33
+ * const { timeZonePreference, setTimeZonePreference } = useCurrentUserTimeZonePreference();
34
+ *
35
+ * timeZonePreference: Determines if the user has a timezone preference of "CUSTOM_TIME_ZONE" | "LOCAL_TIME_ZONE" | "MACHINE_TIME_ZONE"
36
+ * setTimeZonePreference: Sets the timezone preference of the current user.
37
+ * @see {@link IUserPreferencesContext}
38
+ */
39
+ export declare const useCurrentUserTimeZonePreference: () => {
40
+ timeZonePreference: import("@trackunit/react-core-contexts-api").TimeZonePreferenceType | undefined;
41
+ setTimeZonePreference: ((timeZonePreference: import("@trackunit/react-core-contexts-api").TimeZonePreferenceType) => void) | undefined;
42
+ };
43
+ /**
44
+ * This is a hook providing the Current User language.
45
+ *
46
+ * @requires CurrentUserPreferenceProvider
47
+ * @example
48
+ * import { useCurrentUserSystemOfMeasurement } from "@trackunit/react-core-hooks";
49
+ * const { systemOfMeasurement, setSystemOfMeasurement } = useCurrentUserSystemOfMeasurement();
50
+ *
51
+ * systemOfMeasurement: Gets the system of measurement setting of the current user. "SI" | "US_CUSTOMARY"
52
+ * setSystemOfMeasurement: Sets the system of measurement setting of the current user.
53
+ * @see {@link IUserPreferencesContext}
54
+ */
55
+ export declare const useCurrentUserSystemOfMeasurement: () => {
56
+ systemOfMeasurement: import("@trackunit/react-core-contexts-api").SystemOfMeasurementType | undefined;
57
+ setSystemOfMeasurement: ((systemOfMeasurement: import("@trackunit/react-core-contexts-api").SystemOfMeasurementType) => void) | undefined;
58
+ };
59
+ export {};