@terreno/rtk 0.7.2 → 0.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"emptyApi.js","sourceRoot":"","sources":["../src/emptyApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emptyApi.js","sourceRoot":"","sources":["../src/emptyApi.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,4 +8,6 @@ export * from "./mongooseSlice";
8
8
  export * from "./platform";
9
9
  export * from "./socket";
10
10
  export * from "./tagGenerator";
11
+ export * from "./useFeatureFlags";
12
+ export * from "./useUpgradeCheck";
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -8,4 +8,6 @@ export * from "./mongooseSlice";
8
8
  export * from "./platform";
9
9
  export * from "./socket";
10
10
  export * from "./tagGenerator";
11
+ export * from "./useFeatureFlags";
12
+ export * from "./useUpgradeCheck";
11
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { Api } from "@reduxjs/toolkit/query/react";
2
+ type FlagValues = Record<string, boolean | string | null>;
3
+ interface UseFeatureFlagsResult {
4
+ flags: FlagValues;
5
+ getFlag: (key: string) => boolean;
6
+ getVariant: (key: string) => string | null;
7
+ isLoading: boolean;
8
+ error: unknown;
9
+ refetch: () => void;
10
+ }
11
+ /**
12
+ * Creates feature flag accessors from an RTK Query API instance.
13
+ *
14
+ * Injects a `GET {basePath}/evaluate` endpoint into the API and returns
15
+ * accessors for reading flag values. Fetches once on mount and caches via
16
+ * RTK Query. Both `api` and `basePath` should be stable references.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const { getFlag, getVariant } = useFeatureFlags(terrenoApi);
21
+ *
22
+ * const showNewCheckout = getFlag("new-checkout-flow"); // true | false
23
+ * const variant = getVariant("checkout-experiment"); // "control" | "variant-a" | null
24
+ * ```
25
+ */
26
+ export declare const useFeatureFlags: (api: Api<any, any, any, any>, basePath?: string) => UseFeatureFlagsResult;
27
+ export {};
28
+ //# sourceMappingURL=useFeatureFlags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeatureFlags.d.ts","sourceRoot":"","sources":["../src/useFeatureFlags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,8BAA8B,CAAC;AAGtD,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE1D,UAAU,qBAAqB;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,eAAe,GAE1B,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5B,iBAA2B,KAC1B,qBAuFF,CAAC"}
@@ -0,0 +1,86 @@
1
+ import { useCallback, useEffect, useMemo, useRef } from "react";
2
+ /**
3
+ * Creates feature flag accessors from an RTK Query API instance.
4
+ *
5
+ * Injects a `GET {basePath}/evaluate` endpoint into the API and returns
6
+ * accessors for reading flag values. Fetches once on mount and caches via
7
+ * RTK Query. Both `api` and `basePath` should be stable references.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const { getFlag, getVariant } = useFeatureFlags(terrenoApi);
12
+ *
13
+ * const showNewCheckout = getFlag("new-checkout-flow"); // true | false
14
+ * const variant = getVariant("checkout-experiment"); // "control" | "variant-a" | null
15
+ * ```
16
+ */
17
+ export const useFeatureFlags = (
18
+ // biome-ignore lint/suspicious/noExplicitAny: RTK Query API generic typing is intentionally flexible here.
19
+ api, basePath = "/feature-flags") => {
20
+ const enhancedApi = useMemo(() => api.injectEndpoints({
21
+ endpoints: (builder) => ({
22
+ evaluateFeatureFlags: builder.query({
23
+ query: () => ({
24
+ method: "GET",
25
+ url: `${basePath}/evaluate`,
26
+ }),
27
+ }),
28
+ }),
29
+ overrideExisting: false,
30
+ }), [api, basePath]);
31
+ // biome-ignore lint/suspicious/noExplicitAny: Endpoint hook is injected dynamically by RTK Query.
32
+ const useEvaluateQuery = enhancedApi.useEvaluateFeatureFlagsQuery;
33
+ const { data, isLoading, error, refetch } = useEvaluateQuery();
34
+ const evaluateStartedAtRef = useRef(null);
35
+ const flags = data ?? {};
36
+ // Log when evaluate request enters loading state so client timing can be measured.
37
+ useEffect(() => {
38
+ if (!isLoading || evaluateStartedAtRef.current !== null) {
39
+ return;
40
+ }
41
+ evaluateStartedAtRef.current = Date.now();
42
+ console.debug("[feature-flags] evaluate request started", {
43
+ basePath,
44
+ });
45
+ }, [basePath, isLoading]);
46
+ // Log evaluate success with duration and number of resolved flag values.
47
+ useEffect(() => {
48
+ if (!data || evaluateStartedAtRef.current === null) {
49
+ return;
50
+ }
51
+ const durationMs = Date.now() - evaluateStartedAtRef.current;
52
+ evaluateStartedAtRef.current = null;
53
+ console.debug("[feature-flags] evaluate request completed", {
54
+ basePath,
55
+ durationMs,
56
+ evaluatedFlagCount: Object.keys(flags).length,
57
+ evaluatedFlags: flags,
58
+ });
59
+ }, [basePath, data, flags]);
60
+ // Log evaluate failures with duration so request issues can be correlated.
61
+ useEffect(() => {
62
+ if (!error || evaluateStartedAtRef.current === null) {
63
+ return;
64
+ }
65
+ const durationMs = Date.now() - evaluateStartedAtRef.current;
66
+ evaluateStartedAtRef.current = null;
67
+ console.debug("[feature-flags] evaluate request failed", {
68
+ basePath,
69
+ durationMs,
70
+ error,
71
+ });
72
+ }, [basePath, error]);
73
+ const getFlag = useCallback((key) => {
74
+ const value = flags[key];
75
+ return value === true;
76
+ }, [flags]);
77
+ const getVariant = useCallback((key) => {
78
+ const value = flags[key];
79
+ if (typeof value === "string") {
80
+ return value;
81
+ }
82
+ return null;
83
+ }, [flags]);
84
+ return { error, flags, getFlag, getVariant, isLoading, refetch };
85
+ };
86
+ //# sourceMappingURL=useFeatureFlags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeatureFlags.js","sourceRoot":"","sources":["../src/useFeatureFlags.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ interface UseUpgradeCheckResult {
2
+ canUpdate: boolean;
3
+ isRequired: boolean;
4
+ requiredMessage?: string;
5
+ onUpdate: () => void;
6
+ }
7
+ export declare const useUpgradeCheck: () => UseUpgradeCheckResult;
8
+ export {};
9
+ //# sourceMappingURL=useUpgradeCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUpgradeCheck.d.ts","sourceRoot":"","sources":["../src/useUpgradeCheck.ts"],"names":[],"mappings":"AAQA,UAAU,qBAAqB;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,QAAO,qBAsElC,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { useToast } from "@terreno/ui";
2
+ import Constants from "expo-constants";
3
+ import { useCallback, useEffect, useState } from "react";
4
+ import { Linking } from "react-native";
5
+ import { useLazyGetVersionCheckQuery } from "./emptyApi";
6
+ import { IsWeb } from "./platform";
7
+ export const useUpgradeCheck = () => {
8
+ const [isRequired, setIsRequired] = useState(false);
9
+ const [requiredMessage, setRequiredMessage] = useState();
10
+ const [updateUrl, setUpdateUrl] = useState();
11
+ const [warningMessage, setWarningMessage] = useState();
12
+ const toast = useToast();
13
+ const [triggerVersionCheck, result] = useLazyGetVersionCheckQuery();
14
+ const buildNumber = Constants.expoConfig?.extra?.buildNumber;
15
+ const onUpdate = useCallback(() => {
16
+ if (IsWeb) {
17
+ window.location.reload();
18
+ return;
19
+ }
20
+ if (updateUrl) {
21
+ void Linking.openURL(updateUrl).catch((err) => {
22
+ console.warn("Failed to open update URL", err);
23
+ });
24
+ }
25
+ else {
26
+ console.warn("useUpgradeCheck: no update URL available for mobile update");
27
+ }
28
+ }, [updateUrl]);
29
+ // Show warning toast in a separate effect. ToastProvider initializes its ref
30
+ // in useEffect, so we may need to retry when toast becomes available.
31
+ useEffect(() => {
32
+ if (!warningMessage)
33
+ return;
34
+ const toastId = toast.warn(warningMessage, { persistent: true });
35
+ if (toastId) {
36
+ setWarningMessage(undefined);
37
+ }
38
+ else {
39
+ console.warn("useUpgradeCheck: toast not yet available, will retry on next render");
40
+ }
41
+ }, [warningMessage, toast]);
42
+ useEffect(() => {
43
+ if (buildNumber === undefined || buildNumber === null) {
44
+ return;
45
+ }
46
+ const platform = IsWeb ? "web" : "mobile";
47
+ void triggerVersionCheck({ platform, version: buildNumber });
48
+ }, [buildNumber, triggerVersionCheck]);
49
+ // Process the version-check response: block on required, warn on warning
50
+ useEffect(() => {
51
+ if (result.isError) {
52
+ console.debug("Version check failed, continuing normally", result.error);
53
+ return;
54
+ }
55
+ if (!result.isSuccess || !result.data) {
56
+ return;
57
+ }
58
+ const { message, status, updateUrl: responseUpdateUrl } = result.data;
59
+ if (status === "required") {
60
+ setIsRequired(true);
61
+ setRequiredMessage(message);
62
+ }
63
+ else if (status === "warning" && message) {
64
+ setWarningMessage(message);
65
+ }
66
+ if (responseUpdateUrl) {
67
+ setUpdateUrl(responseUpdateUrl);
68
+ }
69
+ }, [result.data, result.error, result.isError, result.isSuccess]);
70
+ const canUpdate = IsWeb || !!updateUrl;
71
+ return { canUpdate, isRequired, onUpdate, requiredMessage };
72
+ };
73
+ //# sourceMappingURL=useUpgradeCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUpgradeCheck.js","sourceRoot":"","sources":["../src/useUpgradeCheck.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "@better-auth/expo": "^1.2.8",
4
4
  "@react-native-async-storage/async-storage": "2.2.0",
5
5
  "@reduxjs/toolkit": "^2.11.1",
6
- "@terreno/ui": "0.7.2",
6
+ "@terreno/ui": "0.8.0",
7
7
  "async-mutex": "^0.5.0",
8
8
  "axios": "^1.13.2",
9
9
  "axios-retry": "^4.5.0",
@@ -30,6 +30,16 @@
30
30
  "react": "19.1.0",
31
31
  "typescript": "~5.9.2"
32
32
  },
33
+ "exports": {
34
+ ".": {
35
+ "default": "./dist/index.js",
36
+ "types": "./dist/index.d.ts"
37
+ },
38
+ "./buildNumber": {
39
+ "default": "./dist/buildNumber.js",
40
+ "types": "./dist/buildNumber.d.ts"
41
+ }
42
+ },
33
43
  "files": [
34
44
  "dist/**/*",
35
45
  "src/**/*"
@@ -50,5 +60,5 @@
50
60
  "test:ci": "echo 'No tests'"
51
61
  },
52
62
  "types": "dist/index.d.ts",
53
- "version": "0.7.2"
63
+ "version": "0.8.0"
54
64
  }
@@ -0,0 +1,69 @@
1
+ import {execSync} from "node:child_process";
2
+
3
+ /**
4
+ * Coerce a value to a valid build number (finite positive integer), or undefined.
5
+ * Useful for validating build numbers from environment variables, config overrides, etc.
6
+ */
7
+ export const coerceBuildNumber = (value: unknown): number | undefined => {
8
+ if (value === undefined || value === null) {
9
+ return undefined;
10
+ }
11
+ const n = typeof value === "number" ? value : parseInt(String(value), 10);
12
+ return Number.isFinite(n) ? n : undefined;
13
+ };
14
+
15
+ interface ResolveBuildNumberOptions {
16
+ /** Hard-coded override — set to a number to test version-check behavior locally. */
17
+ override?: number;
18
+ /** Existing build number from Expo config (`config.extra?.buildNumber`). */
19
+ configValue?: unknown;
20
+ /** Environment variable name to read (default: `"EXPO_PUBLIC_BUILD_NUMBER"`). */
21
+ envVar?: string;
22
+ }
23
+
24
+ /**
25
+ * Resolve a build number using the standard Terreno priority chain:
26
+ * 1. `override` (for local testing)
27
+ * 2. `configValue` (from existing Expo config / EAS Build)
28
+ * 3. `EXPO_PUBLIC_BUILD_NUMBER` env var (or custom `envVar`)
29
+ * 4. `git rev-list --count HEAD`
30
+ * 5. `undefined` (version check will be skipped)
31
+ *
32
+ * Import this in your `app.config.ts` to avoid duplicating the resolution logic:
33
+ * ```ts
34
+ * import {resolveBuildNumber} from "@terreno/rtk/buildNumber";
35
+ *
36
+ * export default ({config}) => ({
37
+ * ...config,
38
+ * extra: {...config.extra, buildNumber: resolveBuildNumber({configValue: config.extra?.buildNumber})},
39
+ * });
40
+ * ```
41
+ */
42
+ export const resolveBuildNumber = (options: ResolveBuildNumberOptions = {}): number | undefined => {
43
+ const {override, configValue, envVar = "EXPO_PUBLIC_BUILD_NUMBER"} = options;
44
+
45
+ const fromOverride = coerceBuildNumber(override);
46
+ if (fromOverride !== undefined) {
47
+ return fromOverride;
48
+ }
49
+
50
+ const fromConfig = coerceBuildNumber(configValue);
51
+ if (fromConfig !== undefined) {
52
+ return fromConfig;
53
+ }
54
+
55
+ const envValue = process.env[envVar];
56
+ if (envValue) {
57
+ const fromEnv = coerceBuildNumber(envValue);
58
+ if (fromEnv !== undefined) {
59
+ return fromEnv;
60
+ }
61
+ }
62
+
63
+ try {
64
+ return parseInt(execSync("git rev-list --count HEAD").toString().trim(), 10);
65
+ } catch {
66
+ // Leave undefined so the version check is skipped in environments without git
67
+ return undefined;
68
+ }
69
+ };
package/src/emptyApi.ts CHANGED
@@ -22,6 +22,15 @@ import {IsWeb} from "./platform";
22
22
 
23
23
  const log = AUTH_DEBUG ? (s: string): void => console.debug(`[auth] ${s}`) : (): void => {};
24
24
 
25
+ /** Response from Terreno `GET /version-check` (VersionCheckPlugin). */
26
+ export interface VersionCheckResponse {
27
+ message?: string;
28
+ requiredVersion?: number;
29
+ status: "ok" | "warning" | "required";
30
+ updateUrl?: string;
31
+ warningVersion?: number;
32
+ }
33
+
25
34
  axiosRetry(axios, {retries: 3, retryDelay: axiosRetry.exponentialDelay});
26
35
 
27
36
  const mutex = new Mutex();
@@ -205,7 +214,11 @@ export const staggeredBaseQuery = retry(
205
214
  await mutex.waitForUnlock();
206
215
  let token = await getAuthToken();
207
216
 
208
- if (["emailLogin", "emailSignUp", "googleLogin", "getZoomSignature"].includes(api.endpoint)) {
217
+ if (
218
+ ["emailLogin", "emailSignUp", "getVersionCheck", "getZoomSignature", "googleLogin"].includes(
219
+ api.endpoint
220
+ )
221
+ ) {
209
222
  // just pass thru the request without token validation for login/signup requests
210
223
  // (even if there's a stale token in storage)
211
224
  return getBaseQuery(args, api, extraOptions, token);
@@ -328,8 +341,16 @@ export const staggeredBaseQuery = retry(
328
341
  export const emptySplitApi = createApi({
329
342
  baseQuery: staggeredBaseQuery,
330
343
  endpoints: (builder) => ({
344
+ getVersionCheck: builder.query<VersionCheckResponse, {platform: string; version: number}>({
345
+ query: ({platform, version}) => ({
346
+ params: {platform, version},
347
+ url: "/version-check",
348
+ }),
349
+ }),
331
350
  // biome-ignore lint/suspicious/noExplicitAny: Generic
332
351
  ...generateProfileEndpoints(builder as any, "users"), // using 'users' here since it is highly intertwined with Users
333
352
  }),
334
353
  reducerPath: "terreno-rtk",
335
354
  });
355
+
356
+ export const {useGetVersionCheckQuery, useLazyGetVersionCheckQuery} = emptySplitApi;
package/src/index.ts CHANGED
@@ -8,3 +8,5 @@ export * from "./mongooseSlice";
8
8
  export * from "./platform";
9
9
  export * from "./socket";
10
10
  export * from "./tagGenerator";
11
+ export * from "./useFeatureFlags";
12
+ export * from "./useUpgradeCheck";
@@ -0,0 +1,121 @@
1
+ import type {Api} from "@reduxjs/toolkit/query/react";
2
+ import {useCallback, useEffect, useMemo, useRef} from "react";
3
+
4
+ type FlagValues = Record<string, boolean | string | null>;
5
+
6
+ interface UseFeatureFlagsResult {
7
+ flags: FlagValues;
8
+ getFlag: (key: string) => boolean;
9
+ getVariant: (key: string) => string | null;
10
+ isLoading: boolean;
11
+ error: unknown;
12
+ refetch: () => void;
13
+ }
14
+
15
+ /**
16
+ * Creates feature flag accessors from an RTK Query API instance.
17
+ *
18
+ * Injects a `GET {basePath}/evaluate` endpoint into the API and returns
19
+ * accessors for reading flag values. Fetches once on mount and caches via
20
+ * RTK Query. Both `api` and `basePath` should be stable references.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const { getFlag, getVariant } = useFeatureFlags(terrenoApi);
25
+ *
26
+ * const showNewCheckout = getFlag("new-checkout-flow"); // true | false
27
+ * const variant = getVariant("checkout-experiment"); // "control" | "variant-a" | null
28
+ * ```
29
+ */
30
+ export const useFeatureFlags = (
31
+ // biome-ignore lint/suspicious/noExplicitAny: RTK Query API generic typing is intentionally flexible here.
32
+ api: Api<any, any, any, any>,
33
+ basePath = "/feature-flags"
34
+ ): UseFeatureFlagsResult => {
35
+ const enhancedApi = useMemo(
36
+ () =>
37
+ api.injectEndpoints({
38
+ endpoints: (builder) => ({
39
+ evaluateFeatureFlags: builder.query<FlagValues, void>({
40
+ query: () => ({
41
+ method: "GET",
42
+ url: `${basePath}/evaluate`,
43
+ }),
44
+ }),
45
+ }),
46
+ overrideExisting: false,
47
+ }),
48
+ [api, basePath]
49
+ );
50
+
51
+ // biome-ignore lint/suspicious/noExplicitAny: Endpoint hook is injected dynamically by RTK Query.
52
+ const useEvaluateQuery = (enhancedApi as any).useEvaluateFeatureFlagsQuery;
53
+ const {data, isLoading, error, refetch} = useEvaluateQuery();
54
+ const evaluateStartedAtRef = useRef<number | null>(null);
55
+
56
+ const flags: FlagValues = data ?? {};
57
+
58
+ // Log when evaluate request enters loading state so client timing can be measured.
59
+ useEffect((): void => {
60
+ if (!isLoading || evaluateStartedAtRef.current !== null) {
61
+ return;
62
+ }
63
+
64
+ evaluateStartedAtRef.current = Date.now();
65
+ console.debug("[feature-flags] evaluate request started", {
66
+ basePath,
67
+ });
68
+ }, [basePath, isLoading]);
69
+
70
+ // Log evaluate success with duration and number of resolved flag values.
71
+ useEffect((): void => {
72
+ if (!data || evaluateStartedAtRef.current === null) {
73
+ return;
74
+ }
75
+
76
+ const durationMs = Date.now() - evaluateStartedAtRef.current;
77
+ evaluateStartedAtRef.current = null;
78
+ console.debug("[feature-flags] evaluate request completed", {
79
+ basePath,
80
+ durationMs,
81
+ evaluatedFlagCount: Object.keys(flags).length,
82
+ evaluatedFlags: flags,
83
+ });
84
+ }, [basePath, data, flags]);
85
+
86
+ // Log evaluate failures with duration so request issues can be correlated.
87
+ useEffect((): void => {
88
+ if (!error || evaluateStartedAtRef.current === null) {
89
+ return;
90
+ }
91
+
92
+ const durationMs = Date.now() - evaluateStartedAtRef.current;
93
+ evaluateStartedAtRef.current = null;
94
+ console.debug("[feature-flags] evaluate request failed", {
95
+ basePath,
96
+ durationMs,
97
+ error,
98
+ });
99
+ }, [basePath, error]);
100
+
101
+ const getFlag = useCallback(
102
+ (key: string): boolean => {
103
+ const value = flags[key];
104
+ return value === true;
105
+ },
106
+ [flags]
107
+ );
108
+
109
+ const getVariant = useCallback(
110
+ (key: string): string | null => {
111
+ const value = flags[key];
112
+ if (typeof value === "string") {
113
+ return value;
114
+ }
115
+ return null;
116
+ },
117
+ [flags]
118
+ );
119
+
120
+ return {error, flags, getFlag, getVariant, isLoading, refetch};
121
+ };
@@ -0,0 +1,86 @@
1
+ import {useToast} from "@terreno/ui";
2
+ import Constants from "expo-constants";
3
+ import {useCallback, useEffect, useState} from "react";
4
+ import {Linking} from "react-native";
5
+
6
+ import {useLazyGetVersionCheckQuery} from "./emptyApi";
7
+ import {IsWeb} from "./platform";
8
+
9
+ interface UseUpgradeCheckResult {
10
+ canUpdate: boolean;
11
+ isRequired: boolean;
12
+ requiredMessage?: string;
13
+ onUpdate: () => void;
14
+ }
15
+
16
+ export const useUpgradeCheck = (): UseUpgradeCheckResult => {
17
+ const [isRequired, setIsRequired] = useState(false);
18
+ const [requiredMessage, setRequiredMessage] = useState<string>();
19
+ const [updateUrl, setUpdateUrl] = useState<string>();
20
+ const [warningMessage, setWarningMessage] = useState<string>();
21
+ const toast = useToast();
22
+ const [triggerVersionCheck, result] = useLazyGetVersionCheckQuery();
23
+ const buildNumber = Constants.expoConfig?.extra?.buildNumber as number | undefined;
24
+
25
+ const onUpdate = useCallback(() => {
26
+ if (IsWeb) {
27
+ window.location.reload();
28
+ return;
29
+ }
30
+ if (updateUrl) {
31
+ void Linking.openURL(updateUrl).catch((err: unknown) => {
32
+ console.warn("Failed to open update URL", err);
33
+ });
34
+ } else {
35
+ console.warn("useUpgradeCheck: no update URL available for mobile update");
36
+ }
37
+ }, [updateUrl]);
38
+
39
+ // Show warning toast in a separate effect. ToastProvider initializes its ref
40
+ // in useEffect, so we may need to retry when toast becomes available.
41
+ useEffect(() => {
42
+ if (!warningMessage) return;
43
+ const toastId = toast.warn(warningMessage, {persistent: true});
44
+ if (toastId) {
45
+ setWarningMessage(undefined);
46
+ } else {
47
+ console.warn("useUpgradeCheck: toast not yet available, will retry on next render");
48
+ }
49
+ }, [warningMessage, toast]);
50
+
51
+ useEffect(() => {
52
+ if (buildNumber === undefined || buildNumber === null) {
53
+ return;
54
+ }
55
+
56
+ const platform = IsWeb ? "web" : "mobile";
57
+ void triggerVersionCheck({platform, version: buildNumber});
58
+ }, [buildNumber, triggerVersionCheck]);
59
+
60
+ // Process the version-check response: block on required, warn on warning
61
+ useEffect(() => {
62
+ if (result.isError) {
63
+ console.debug("Version check failed, continuing normally", result.error);
64
+ return;
65
+ }
66
+ if (!result.isSuccess || !result.data) {
67
+ return;
68
+ }
69
+ const {message, status, updateUrl: responseUpdateUrl} = result.data;
70
+
71
+ if (status === "required") {
72
+ setIsRequired(true);
73
+ setRequiredMessage(message);
74
+ } else if (status === "warning" && message) {
75
+ setWarningMessage(message);
76
+ }
77
+
78
+ if (responseUpdateUrl) {
79
+ setUpdateUrl(responseUpdateUrl);
80
+ }
81
+ }, [result.data, result.error, result.isError, result.isSuccess]);
82
+
83
+ const canUpdate = IsWeb || !!updateUrl;
84
+
85
+ return {canUpdate, isRequired, onUpdate, requiredMessage};
86
+ };