@aacigroup/aaci_shared 2.12.1 → 2.12.3

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.
@@ -1,11 +1,11 @@
1
- import React from "react";
2
- import { PostHog } from "../PostHog";
3
- import { FeatureFlagsContextType } from "./FeatureFlagsContext.types";
4
- interface FeatureFlagsProviderProps {
5
- children: React.ReactNode;
1
+ import React, { ReactNode } from 'react';
2
+ export interface FeatureFlagsContextType {
3
+ posthog: boolean;
4
+ isReady: boolean;
5
+ isFeatureFlagEnabled: (flagName: string) => boolean;
6
6
  }
7
- export declare const FeatureFlagsProvider: React.FC<FeatureFlagsProviderProps>;
7
+ export declare const FeatureFlagsProvider: React.FC<{
8
+ children: ReactNode;
9
+ }>;
8
10
  export declare const useFeatureFlags: () => FeatureFlagsContextType;
9
- export declare const usePostHogFeatureFlags: () => PostHog | undefined;
10
- export {};
11
11
  //# sourceMappingURL=FeatureFlagsContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureFlagsContext.d.ts","sourceRoot":"","sources":["../../src/contexts/FeatureFlagsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAEL,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAGrC,UAAU,yBAAyB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsDpE,CAAC;AAEF,eAAO,MAAM,eAAe,QAAO,uBAElC,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,OAAO,GAAG,SAGnD,CAAC"}
1
+ {"version":3,"file":"FeatureFlagsContext.d.ts","sourceRoot":"","sources":["../../src/contexts/FeatureFlagsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,SAAS,EAAuB,MAAM,OAAO,CAAC;AAGzF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACrD;AAQD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CAyFlE,CAAC;AAEF,eAAO,MAAM,eAAe,QAAO,uBAMlC,CAAC"}
@@ -1,46 +1,84 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useMemo, useCallback, useContext } from "react";
3
- import { FeatureFlagsContext, } from "./FeatureFlagsContext.types";
4
- import { TrackingContext } from "./TrackingContext";
5
- export const FeatureFlagsProvider = ({ children, }) => {
6
- const trackingContext = useContext(TrackingContext);
7
- if (!trackingContext) {
8
- throw new Error('FeatureFlagsProvider must be used within TrackingProvider. ' +
9
- 'Please wrap your app with TrackingProvider first.');
10
- }
11
- const posthog = trackingContext.posthog;
12
- const isFeatureFlagEnabled = useCallback((flag) => {
13
- try {
2
+ import { createContext, useContext, useState, useEffect } from 'react';
3
+ import { usePostHog } from './TrackingContext';
4
+ const FeatureFlagsContext = createContext({
5
+ posthog: false,
6
+ isReady: false,
7
+ isFeatureFlagEnabled: () => false,
8
+ });
9
+ export const FeatureFlagsProvider = ({ children }) => {
10
+ const posthog = usePostHog();
11
+ const [isReady, setIsReady] = useState(false);
12
+ useEffect(() => {
13
+ if (!posthog)
14
+ return;
15
+ const checkPostHogReady = () => {
14
16
  const instance = posthog.getInstance();
15
- return (instance === null || instance === void 0 ? void 0 : instance.isFeatureEnabled(flag)) || false;
17
+ const isInitialized = posthog.getIsInitialized();
18
+ if (!instance || !isInitialized) {
19
+ return false;
20
+ }
21
+ try {
22
+ const hasFeatureFlags = Boolean(instance.featureFlags ||
23
+ instance.feature_flags ||
24
+ instance._featureFlags ||
25
+ (instance.config && instance.config.loaded_feature_flags));
26
+ return hasFeatureFlags && typeof instance.isFeatureEnabled === 'function';
27
+ }
28
+ catch (error) {
29
+ return false;
30
+ }
31
+ };
32
+ const initialCheck = checkPostHogReady();
33
+ if (initialCheck) {
34
+ setIsReady(true);
35
+ return;
16
36
  }
17
- catch (error) {
18
- console.error(`FeatureFlags: Error with flag "${flag}":`, error);
37
+ let attempts = 0;
38
+ const maxAttempts = 20;
39
+ const baseDelay = 100;
40
+ const pollForReadiness = () => {
41
+ attempts++;
42
+ if (checkPostHogReady()) {
43
+ setIsReady(true);
44
+ return;
45
+ }
46
+ if (attempts < maxAttempts) {
47
+ const delay = Math.min(baseDelay * Math.pow(1.5, attempts), 3000);
48
+ setTimeout(pollForReadiness, delay);
49
+ }
50
+ };
51
+ setTimeout(pollForReadiness, 1000);
52
+ }, [posthog]);
53
+ const isFeatureFlagEnabled = (flagName) => {
54
+ if (!isReady || !posthog) {
19
55
  return false;
20
56
  }
21
- }, [posthog]);
22
- const getFeatureFlag = useCallback((flag) => {
23
57
  try {
24
58
  const instance = posthog.getInstance();
25
- return instance === null || instance === void 0 ? void 0 : instance.getFeatureFlag(flag);
59
+ if (!(instance === null || instance === void 0 ? void 0 : instance.isFeatureEnabled)) {
60
+ return false;
61
+ }
62
+ const result = instance.isFeatureEnabled(flagName);
63
+ return Boolean(result);
26
64
  }
27
65
  catch (error) {
28
- console.error(`FeatureFlags: Error with flag "${flag}":`, error);
29
- return undefined;
66
+ console.error(`Error checking feature flag ${flagName}:`, error);
67
+ return false;
30
68
  }
31
- }, [posthog]);
32
- const contextValue = useMemo(() => ({
33
- posthog,
69
+ };
70
+ const contextValue = {
71
+ posthog: Boolean(posthog),
72
+ isReady,
34
73
  isFeatureFlagEnabled,
35
- getFeatureFlag,
36
- }), [posthog, isFeatureFlagEnabled, getFeatureFlag]);
74
+ };
37
75
  return (_jsx(FeatureFlagsContext.Provider, { value: contextValue, children: children }));
38
76
  };
39
77
  export const useFeatureFlags = () => {
40
- return useContext(FeatureFlagsContext);
41
- };
42
- export const usePostHogFeatureFlags = () => {
43
- const { posthog } = useContext(FeatureFlagsContext);
44
- return posthog;
78
+ const context = useContext(FeatureFlagsContext);
79
+ if (!context) {
80
+ throw new Error('useFeatureFlags must be used within a FeatureFlagsProvider');
81
+ }
82
+ return context;
45
83
  };
46
84
  //# sourceMappingURL=FeatureFlagsContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureFlagsContext.js","sourceRoot":"","sources":["../../src/contexts/FeatureFlagsContext.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEhE,OAAO,EACL,mBAAmB,GAEpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMpD,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CAAC,EACxE,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAEpD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,6DAA6D;YAC7D,mDAAmD,CACpD,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;IAExC,MAAM,oBAAoB,GAAG,WAAW,CACtC,CAAC,IAAY,EAAW,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,gBAAgB,CAAC,IAAI,CAAC,KAAI,KAAK,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,IAAY,EAAgC,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,YAAY,GAA4B,OAAO,CACnD,GAAG,EAAE,CAAC,CAAC;QACL,OAAO;QACP,oBAAoB;QACpB,cAAc;KACf,CAAC,EACF,CAAC,OAAO,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAChD,CAAC;IAEF,OAAO,CACL,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC9C,QAAQ,GACoB,CAChC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,GAA4B,EAAE;IAC3D,OAAO,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAwB,EAAE;IAC9D,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"FeatureFlagsContext.js","sourceRoot":"","sources":["../../src/contexts/FeatureFlagsContext.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export interface FeatureFlagsContextType {
3
3
  posthog: PostHog | undefined;
4
4
  isFeatureFlagEnabled: (flag: string) => boolean;
5
5
  getFeatureFlag: (flag: string) => string | boolean | undefined;
6
+ isReady: boolean;
6
7
  }
7
8
  export declare const FeatureFlagsContext: import("react").Context<FeatureFlagsContextType>;
8
9
  //# sourceMappingURL=FeatureFlagsContext.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureFlagsContext.types.d.ts","sourceRoot":"","sources":["../../src/contexts/FeatureFlagsContext.types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAChE;AASD,eAAO,MAAM,mBAAmB,kDAA8D,CAAC"}
1
+ {"version":3,"file":"FeatureFlagsContext.types.d.ts","sourceRoot":"","sources":["../../src/contexts/FeatureFlagsContext.types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/D,OAAO,EAAE,OAAO,CAAC;CAClB;AAUD,eAAO,MAAM,mBAAmB,kDAA8D,CAAC"}
@@ -3,6 +3,7 @@ const defaultContextValue = {
3
3
  posthog: undefined,
4
4
  isFeatureFlagEnabled: () => false,
5
5
  getFeatureFlag: () => undefined,
6
+ isReady: false,
6
7
  };
7
8
  export const FeatureFlagsContext = createContext(defaultContextValue);
8
9
  //# sourceMappingURL=FeatureFlagsContext.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureFlagsContext.types.js","sourceRoot":"","sources":["../../src/contexts/FeatureFlagsContext.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAUtC,MAAM,mBAAmB,GAA4B;IACnD,OAAO,EAAE,SAAS;IAClB,oBAAoB,EAAE,GAAG,EAAE,CAAC,KAAK;IACjC,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAA0B,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"FeatureFlagsContext.types.js","sourceRoot":"","sources":["../../src/contexts/FeatureFlagsContext.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAWtC,MAAM,mBAAmB,GAA4B;IACnD,OAAO,EAAE,SAAS;IAClB,oBAAoB,EAAE,GAAG,EAAE,CAAC,KAAK;IACjC,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;IAC/B,OAAO,EAAE,KAAK;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAA0B,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ interface UseFeatureFlagWithReadyOptions {
2
+ timeout?: number;
3
+ defaultValue?: boolean;
4
+ }
5
+ interface UseFeatureFlagWithReadyReturn {
6
+ flagValue: boolean | null;
7
+ isReady: boolean;
8
+ isEnabled: boolean;
9
+ error: Error | null;
10
+ }
11
+ export declare const useFeatureFlagWithReady: (flagName: string, options?: UseFeatureFlagWithReadyOptions) => UseFeatureFlagWithReadyReturn;
12
+ export declare const useFeatureFlag: (flagName: string) => {
13
+ flagValue: boolean | null;
14
+ isReady: boolean;
15
+ isEnabled: boolean;
16
+ };
17
+ interface UseFeatureFlagNavigationOptions {
18
+ timeout?: number;
19
+ fallbackTimeout?: number;
20
+ enableScrollToTop?: boolean;
21
+ }
22
+ interface UseFeatureFlagNavigationReturn {
23
+ navigate: (navigateTo: (route: string) => void, fallbackAction?: () => void) => void;
24
+ isEnabled: boolean;
25
+ isReady: boolean;
26
+ error: Error | null;
27
+ }
28
+ export declare const useFeatureFlagNavigation: (flagName: string, enabledRoute: string, options?: UseFeatureFlagNavigationOptions) => UseFeatureFlagNavigationReturn;
29
+ export declare const useSimpleFeatureFlagNavigation: (flagName: string, enabledRoute: string, enableScrollToTop?: boolean) => {
30
+ navigate: (navigateTo: (route: string) => void, fallbackAction?: () => void) => void;
31
+ isEnabled: boolean;
32
+ isReady: boolean;
33
+ };
34
+ export declare const usePostHogReady: () => boolean;
35
+ export {};
36
+ //# sourceMappingURL=FeatureFlagsHooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureFlagsHooks.d.ts","sourceRoot":"","sources":["../../src/contexts/FeatureFlagsHooks.tsx"],"names":[],"mappings":"AAIA,UAAU,8BAA8B;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,6BAA6B;IACrC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAQD,eAAO,MAAM,uBAAuB,GAClC,UAAU,MAAM,EAChB,UAAS,8BAAmC,KAC3C,6BAyEF,CAAC;AAOF,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM;;;;CAa9C,CAAC;AAEF,UAAU,+BAA+B;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,8BAA8B;IACtC,QAAQ,EAAE,CACR,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACnC,cAAc,CAAC,EAAE,MAAM,IAAI,KACxB,IAAI,CAAC;IACV,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AASD,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,cAAc,MAAM,EACpB,UAAS,+BAAoC,KAC5C,8BAuEF,CAAC;AASF,eAAO,MAAM,8BAA8B,GACzC,UAAU,MAAM,EAChB,cAAc,MAAM,EACpB,oBAAmB,OAAc;2BAKnB,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,mBAClB,MAAM,IAAI;;;CAuB9B,CAAC;AAMF,eAAO,MAAM,eAAe,QAAO,OAGlC,CAAC"}
@@ -0,0 +1,166 @@
1
+ import { useState, useEffect, useCallback, useMemo, useRef } from 'react';
2
+ import { useFeatureFlags } from './FeatureFlagsContext';
3
+ import { usePostHog } from './TrackingContext';
4
+ export const useFeatureFlagWithReady = (flagName, options = {}) => {
5
+ const { timeout = 500, defaultValue = false } = options;
6
+ const [isReady, setIsReady] = useState(false);
7
+ const [flagValue, setFlagValue] = useState(null);
8
+ const [error, setError] = useState(null);
9
+ const { isFeatureFlagEnabled } = useFeatureFlags();
10
+ const posthog = usePostHog();
11
+ const timeoutRef = useRef(null);
12
+ const isPostHogInitialized = useMemo(() => {
13
+ try {
14
+ const instance = posthog === null || posthog === void 0 ? void 0 : posthog.getInstance();
15
+ return !!(instance && (posthog === null || posthog === void 0 ? void 0 : posthog.getIsInitialized()));
16
+ }
17
+ catch {
18
+ return false;
19
+ }
20
+ }, [posthog]);
21
+ useEffect(() => {
22
+ if (!isPostHogInitialized || isReady) {
23
+ if (!isPostHogInitialized && isReady) {
24
+ setIsReady(false);
25
+ setFlagValue(null);
26
+ setError(null);
27
+ }
28
+ return;
29
+ }
30
+ if (timeoutRef.current) {
31
+ clearTimeout(timeoutRef.current);
32
+ }
33
+ timeoutRef.current = setTimeout(() => {
34
+ try {
35
+ const value = isFeatureFlagEnabled(flagName);
36
+ setFlagValue(value);
37
+ setIsReady(true);
38
+ setError(null);
39
+ }
40
+ catch (err) {
41
+ const errorObj = err instanceof Error ? err : new Error(String(err));
42
+ setError(errorObj);
43
+ setFlagValue(defaultValue);
44
+ setIsReady(true);
45
+ }
46
+ timeoutRef.current = null;
47
+ }, timeout);
48
+ return () => {
49
+ if (timeoutRef.current) {
50
+ clearTimeout(timeoutRef.current);
51
+ timeoutRef.current = null;
52
+ }
53
+ };
54
+ }, [isPostHogInitialized, flagName, isFeatureFlagEnabled, timeout, defaultValue, isReady]);
55
+ useEffect(() => {
56
+ return () => {
57
+ if (timeoutRef.current) {
58
+ clearTimeout(timeoutRef.current);
59
+ }
60
+ };
61
+ }, []);
62
+ return {
63
+ flagValue,
64
+ isReady,
65
+ isEnabled: flagValue === true,
66
+ error
67
+ };
68
+ };
69
+ export const useFeatureFlag = (flagName) => {
70
+ const { isFeatureFlagEnabled, isReady } = useFeatureFlags();
71
+ const flagValue = useMemo(() => {
72
+ if (!isReady)
73
+ return null;
74
+ return isFeatureFlagEnabled(flagName);
75
+ }, [isReady, isFeatureFlagEnabled, flagName]);
76
+ return {
77
+ flagValue,
78
+ isReady,
79
+ isEnabled: flagValue === true,
80
+ };
81
+ };
82
+ export const useFeatureFlagNavigation = (flagName, enabledRoute, options = {}) => {
83
+ const { timeout = 500, fallbackTimeout = 50, enableScrollToTop = true } = options;
84
+ const { flagValue, isReady, error } = useFeatureFlagWithReady(flagName, { timeout });
85
+ const { isFeatureFlagEnabled } = useFeatureFlags();
86
+ const fallbackTimeoutRef = useRef(null);
87
+ const navigate = useCallback((navigateTo, fallbackAction) => {
88
+ const executeNavigation = (flagEnabled) => {
89
+ if (flagEnabled) {
90
+ navigateTo(enabledRoute);
91
+ if (enableScrollToTop) {
92
+ window.scrollTo({ top: 0, behavior: 'smooth' });
93
+ }
94
+ }
95
+ else if (fallbackAction) {
96
+ fallbackAction();
97
+ }
98
+ };
99
+ if (!isReady || flagValue === null) {
100
+ if (fallbackTimeoutRef.current) {
101
+ clearTimeout(fallbackTimeoutRef.current);
102
+ }
103
+ fallbackTimeoutRef.current = setTimeout(() => {
104
+ try {
105
+ const currentValue = isFeatureFlagEnabled(flagName);
106
+ executeNavigation(currentValue);
107
+ }
108
+ catch {
109
+ executeNavigation(false);
110
+ }
111
+ fallbackTimeoutRef.current = null;
112
+ }, fallbackTimeout);
113
+ return;
114
+ }
115
+ executeNavigation(flagValue);
116
+ }, [
117
+ flagValue,
118
+ isReady,
119
+ flagName,
120
+ enabledRoute,
121
+ enableScrollToTop,
122
+ fallbackTimeout,
123
+ isFeatureFlagEnabled
124
+ ]);
125
+ useEffect(() => {
126
+ return () => {
127
+ if (fallbackTimeoutRef.current) {
128
+ clearTimeout(fallbackTimeoutRef.current);
129
+ }
130
+ };
131
+ }, []);
132
+ return {
133
+ navigate,
134
+ isEnabled: flagValue === true,
135
+ isReady,
136
+ error
137
+ };
138
+ };
139
+ export const useSimpleFeatureFlagNavigation = (flagName, enabledRoute, enableScrollToTop = true) => {
140
+ const { flagValue, isReady } = useFeatureFlag(flagName);
141
+ const navigate = useCallback((navigateTo, fallbackAction) => {
142
+ if (!isReady) {
143
+ console.log(`[FeatureFlags] PostHog not ready yet, waiting...`);
144
+ return;
145
+ }
146
+ if (flagValue) {
147
+ navigateTo(enabledRoute);
148
+ if (enableScrollToTop) {
149
+ window.scrollTo({ top: 0, behavior: 'smooth' });
150
+ }
151
+ }
152
+ else if (fallbackAction) {
153
+ fallbackAction();
154
+ }
155
+ }, [flagValue, isReady, enabledRoute, enableScrollToTop]);
156
+ return {
157
+ navigate,
158
+ isEnabled: flagValue === true,
159
+ isReady,
160
+ };
161
+ };
162
+ export const usePostHogReady = () => {
163
+ const { isReady } = useFeatureFlags();
164
+ return isReady;
165
+ };
166
+ //# sourceMappingURL=FeatureFlagsHooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureFlagsHooks.js","sourceRoot":"","sources":["../../src/contexts/FeatureFlagsHooks.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TrackingContext.d.ts","sourceRoot":"","sources":["../../src/contexts/TrackingContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,SAAS,EAAgC,MAAM,OAAO,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEzE,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,0DAA4D,CAAC;AAEzF,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,GAAI,sBAAsB,qBAAqB,4CAiE3E,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,WAMjC,CAAC;AAEF,eAAO,MAAM,UAAU,QAAO,OAM7B,CAAC;AAGF,eAAO,MAAM,aAAa,QAAO,eAAe,GAAG,IAOlD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,OAAO,GAAG,IAO7C,CAAC"}
1
+ {"version":3,"file":"TrackingContext.d.ts","sourceRoot":"","sources":["../../src/contexts/TrackingContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,SAAS,EAAgC,MAAM,OAAO,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEzE,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,0DAA4D,CAAC;AAEzF,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,GAAI,sBAAsB,qBAAqB,4CA8E3E,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,WAMjC,CAAC;AAEF,eAAO,MAAM,UAAU,QAAO,OAM7B,CAAC;AAGF,eAAO,MAAM,aAAa,QAAO,eAAe,GAAG,IAOlD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,OAAO,GAAG,IAO7C,CAAC"}
@@ -26,6 +26,7 @@ export const TrackingProvider = ({ children, config }) => {
26
26
  console.log('[TrackingContext] Internal user flag:', isInternalValue);
27
27
  }, [config]);
28
28
  const trackers = useMemo(() => {
29
+ console.log('🐛 [TrackingContext] Creating trackers...');
29
30
  const leadTracker = new LeadTracker({
30
31
  apiUrl: config.apiUrl,
31
32
  apiKey: config.apiKey,
@@ -42,9 +43,20 @@ export const TrackingProvider = ({ children, config }) => {
42
43
  ...(config.posthogDevKey && { devApiKey: config.posthogDevKey }),
43
44
  };
44
45
  const posthog = new PostHog(posthogConfig);
45
- posthog.init();
46
46
  return { leadTracker, posthog };
47
47
  }, [config, isInternal]);
48
+ useEffect(() => {
49
+ if (trackers === null || trackers === void 0 ? void 0 : trackers.posthog) {
50
+ console.log('🐛 [TrackingContext] Initializing PostHog...');
51
+ trackers.posthog.init()
52
+ .then(() => {
53
+ console.log('🐛 [TrackingContext] PostHog initialized successfully!');
54
+ })
55
+ .catch((error) => {
56
+ console.error('🐛 [TrackingContext] PostHog initialization failed:', error);
57
+ });
58
+ }
59
+ }, [trackers]);
48
60
  return (_jsx(TrackingContext.Provider, { value: trackers, children: children }));
49
61
  };
50
62
  export const useLeadTracker = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"TrackingContext.js","sourceRoot":"","sources":["../../src/contexts/TrackingContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrackingContext.js","sourceRoot":"","sources":["../../src/contexts/TrackingContext.tsx"],"names":[],"mappings":"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"}
package/dist/react.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { TrackingProvider, TrackingContext, useLeadTracker, usePostHog, useStoredLead, useStoredAddress } from './contexts/TrackingContext';
2
- export { FeatureFlagsProvider, useFeatureFlags, usePostHogFeatureFlags } from './contexts/FeatureFlagsContext';
2
+ export { FeatureFlagsProvider, useFeatureFlags } from './contexts/FeatureFlagsContext';
3
+ export { useFeatureFlagWithReady, useFeatureFlag, useFeatureFlagNavigation, useSimpleFeatureFlagNavigation, usePostHogReady } from './contexts/FeatureFlagsHooks';
3
4
  export type { TrackingConfig } from './types';
4
5
  export type { FeatureFlagsContextType } from './contexts/FeatureFlagsContext.types';
5
6
  export type { TrackingContextType } from './contexts/TrackingContext';
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACvB,MAAM,gCAAgC,CAAC;AAExC,YAAY,EACV,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,uBAAuB,EACxB,MAAM,sCAAsC,CAAC;AAE9C,YAAY,EACV,mBAAmB,EACpB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,oBAAoB,EACpB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,wBAAwB,EACxB,8BAA8B,EAC9B,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,uBAAuB,EACxB,MAAM,sCAAsC,CAAC;AAE9C,YAAY,EACV,mBAAmB,EACpB,MAAM,4BAA4B,CAAC"}
package/dist/react.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { TrackingProvider, TrackingContext, useLeadTracker, usePostHog, useStoredLead, useStoredAddress } from './contexts/TrackingContext';
2
- export { FeatureFlagsProvider, useFeatureFlags, usePostHogFeatureFlags } from './contexts/FeatureFlagsContext';
2
+ export { FeatureFlagsProvider, useFeatureFlags } from './contexts/FeatureFlagsContext';
3
+ export { useFeatureFlagWithReady, useFeatureFlag, useFeatureFlagNavigation, useSimpleFeatureFlagNavigation, usePostHogReady } from './contexts/FeatureFlagsHooks';
3
4
  //# sourceMappingURL=react.js.map
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACvB,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,oBAAoB,EACpB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,wBAAwB,EACxB,8BAA8B,EAC9B,eAAe,EAChB,MAAM,8BAA8B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aacigroup/aaci_shared",
3
- "version": "2.12.1",
3
+ "version": "2.12.3",
4
4
  "description": "Shared tracking utilities for AACI Group projects with React Context support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",