@oxyhq/services 23.0.1 → 23.0.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.
package/README.md CHANGED
@@ -694,7 +694,7 @@ Typed returns are defined in `ui/hooks/queries/paymentTypes.ts` (`Subscription`,
694
694
 
695
695
  ## Sign-In Token Planting
696
696
 
697
- `@oxyhq/core` `OxyServices.verifyChallenge()` plants `setTokens(accessToken, refreshToken ?? '')` internally before returning. `useAuthOperations.performSignIn` no longer needs to hand-plant the token or call a session-token fallback — just await `verifyChallenge` and proceed.
697
+ `@oxyhq/core` `OxyServices.verifyChallenge()` plants `setTokens(accessToken)` internally before returning. `useAuthOperations.performSignIn` no longer needs to hand-plant the token or call a session-token fallback — just await `verifyChallenge` and proceed.
698
698
 
699
699
  ## Requirements
700
700
 
@@ -15,8 +15,13 @@ var _react = require("react");
15
15
  * design-system fields Bloom's nav header supports: the single trailing
16
16
  * `primaryAction` CTA (Upload / Save), a trailing icon `actions` row, a header
17
17
  * `search` / `segments` in the large-title zone, an `onImage` `tone` over media,
18
- * and a wizard `progress` bar. Object/slot fields MUST be referentially stable
19
- * (memoize them with `useMemo`) so the header does not thrash.
18
+ * and a wizard `progress` bar.
19
+ *
20
+ * Only the NODE fields (`left`/`right`/`titleContent`, and an action's `icon`)
21
+ * must be referentially stable — a node can only be compared by identity, so an
22
+ * inline one thrashes the header. The rich OBJECT fields are compared by value
23
+ * (see {@link surfaceHeaderContentEqual}), so an inline `primaryAction` /
24
+ * `actions` / `search` / `segments` / `progress` is safe to pass.
20
25
  */
21
26
 
22
27
  /**
@@ -26,22 +31,74 @@ var _react = require("react");
26
31
  * a headerless surface), so {@link useSurfaceHeader} is a safe no-op there.
27
32
  */
28
33
  const SurfaceHeaderContext = exports.SurfaceHeaderContext = /*#__PURE__*/(0, _react.createContext)(null);
34
+ function primaryActionEqual(a, b) {
35
+ if (a === b) return true;
36
+ if (!a || !b) return false;
37
+ // `onPress` is a fresh closure each render — its identity never changes what
38
+ // the button renders, so compare only the render-affecting scalars.
39
+ return a.label === b.label && !!a.disabled === !!b.disabled && !!a.loading === !!b.loading;
40
+ }
41
+ function actionsEqual(a, b) {
42
+ if (a === b) return true;
43
+ if (!a || !b || a.length !== b.length) return false;
44
+ for (let i = 0; i < a.length; i += 1) {
45
+ const x = a[i];
46
+ const y = b[i];
47
+ if (!x || !y) return false;
48
+ // `icon` is a node (identity); `onPress` is ignored, like `primaryAction`'s.
49
+ if (x.accessibilityLabel !== y.accessibilityLabel || !!x.disabled !== !!y.disabled || x.icon !== y.icon) {
50
+ return false;
51
+ }
52
+ }
53
+ return true;
54
+ }
55
+ function searchEqual(a, b) {
56
+ if (a === b) return true;
57
+ if (!a || !b) return false;
58
+ return a.value === b.value && a.placeholder === b.placeholder;
59
+ }
60
+ function segmentsEqual(a, b) {
61
+ if (a === b) return true;
62
+ if (!a || !b || a.value !== b.value || a.items.length !== b.items.length) return false;
63
+ for (let i = 0; i < a.items.length; i += 1) {
64
+ const x = a.items[i];
65
+ const y = b.items[i];
66
+ if (!x || !y || x.key !== y.key || x.label !== y.label) return false;
67
+ }
68
+ return true;
69
+ }
70
+ function progressEqual(a, b) {
71
+ if (a === b) return true;
72
+ if (!a || !b) return false;
73
+ return a.step === b.step && a.total === b.total;
74
+ }
29
75
 
30
76
  /**
31
- * Shallow value-equality for a surface's header contribution.
77
+ * Value-equality for a surface's header contribution.
78
+ *
79
+ * This MIRRORS Bloom's own `configsEqual` (`@oxyhq/bloom/dialog`), which guards
80
+ * the header store one layer down — deliberately field for field. The two must
81
+ * not diverge: this comparator is the gate that decides whether the host's
82
+ * `setContent` fires, so a comparator STRICTER than Bloom's re-introduces the
83
+ * update loop Bloom's own guard was written to prevent.
84
+ *
85
+ * Scalars (`title`/`subtitle`/`largeTitle`/`tone`) compare by value. The rich
86
+ * object fields (`primaryAction`/`actions`/`search`/`segments`/`progress`)
87
+ * compare by their render-affecting scalars, so a screen may build them inline:
88
+ * a fresh object with unchanged contents is NOT a change. Only the node fields
89
+ * (`titleContent`/`left`/`right`, and an action's `icon`) compare by identity —
90
+ * there is nothing else to compare a `ReactNode` by — so those, and only those,
91
+ * carry the memoize-me contract.
32
92
  *
33
- * Scalars (`title`/`subtitle`/`largeTitle`/`tone`) compare by value; the object
34
- * and node fields (`titleContent`/`left`/`right`/`primaryAction`/`actions`/
35
- * `search`/`segments`/`progress`) compare by identity callers memoize them, per
36
- * this hook's contract. Function-typed affordances compare by PRESENCE, never
37
- * identity: `onBack` legitimately gets a fresh closure each render, and its
38
- * identity never changes what the header renders, so it must not count as a
39
- * change (that is exactly what would drive the update loop).
93
+ * Function-typed affordances compare by PRESENCE, never identity: `onBack`
94
+ * legitimately gets a fresh closure each render and its identity never changes
95
+ * what the header renders, so it must not count as a change (that is exactly
96
+ * what would drive the update loop).
40
97
  */
41
98
  function surfaceHeaderContentEqual(a, b) {
42
99
  if (a === b) return true;
43
100
  if (!a || !b) return false;
44
- return a.title === b.title && a.titleContent === b.titleContent && a.subtitle === b.subtitle && a.largeTitle === b.largeTitle && a.left === b.left && a.right === b.right && !!a.onBack === !!b.onBack && a.primaryAction === b.primaryAction && a.actions === b.actions && a.search === b.search && a.segments === b.segments && a.tone === b.tone && a.progress === b.progress;
101
+ return a.title === b.title && a.titleContent === b.titleContent && a.subtitle === b.subtitle && a.largeTitle === b.largeTitle && a.left === b.left && a.right === b.right && !!a.onBack === !!b.onBack && a.tone === b.tone && primaryActionEqual(a.primaryAction, b.primaryAction) && actionsEqual(a.actions, b.actions) && searchEqual(a.search, b.search) && segmentsEqual(a.segments, b.segments) && progressEqual(a.progress, b.progress);
45
102
  }
46
103
 
47
104
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","SurfaceHeaderContext","exports","createContext","surfaceHeaderContentEqual","a","b","title","titleContent","subtitle","largeTitle","left","right","onBack","primaryAction","actions","search","segments","tone","progress","useSurfaceHeader","content","ctx","useContext","set","setContent","setRef","useRef","current","lastRef","undefined","useLayoutEffect","s","next"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSurfaceHeader.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,gBAAG,IAAAE,oBAAa,EAAmC,IAAI,CAAC;;AAEzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,yBAAyBA,CAChCC,CAA8B,EAC9BC,CAA8B,EACrB;EACT,IAAID,CAAC,KAAKC,CAAC,EAAE,OAAO,IAAI;EACxB,IAAI,CAACD,CAAC,IAAI,CAACC,CAAC,EAAE,OAAO,KAAK;EAC1B,OACED,CAAC,CAACE,KAAK,KAAKD,CAAC,CAACC,KAAK,IACnBF,CAAC,CAACG,YAAY,KAAKF,CAAC,CAACE,YAAY,IACjCH,CAAC,CAACI,QAAQ,KAAKH,CAAC,CAACG,QAAQ,IACzBJ,CAAC,CAACK,UAAU,KAAKJ,CAAC,CAACI,UAAU,IAC7BL,CAAC,CAACM,IAAI,KAAKL,CAAC,CAACK,IAAI,IACjBN,CAAC,CAACO,KAAK,KAAKN,CAAC,CAACM,KAAK,IACnB,CAAC,CAACP,CAAC,CAACQ,MAAM,KAAK,CAAC,CAACP,CAAC,CAACO,MAAM,IACzBR,CAAC,CAACS,aAAa,KAAKR,CAAC,CAACQ,aAAa,IACnCT,CAAC,CAACU,OAAO,KAAKT,CAAC,CAACS,OAAO,IACvBV,CAAC,CAACW,MAAM,KAAKV,CAAC,CAACU,MAAM,IACrBX,CAAC,CAACY,QAAQ,KAAKX,CAAC,CAACW,QAAQ,IACzBZ,CAAC,CAACa,IAAI,KAAKZ,CAAC,CAACY,IAAI,IACjBb,CAAC,CAACc,QAAQ,KAAKb,CAAC,CAACa,QAAQ;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAACC,OAAgD,EAAQ;EACvF,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACtB,oBAAoB,CAAC;EAC5C,MAAMuB,GAAG,GAAGF,GAAG,EAAEG,UAAU;EAC3B,MAAMC,MAAM,GAAG,IAAAC,aAAM,EAACH,GAAG,CAAC;EAC1BE,MAAM,CAACE,OAAO,GAAGJ,GAAG;EACpB;EACA,MAAMK,OAAO,GAAG,IAAAF,aAAM,EAA0CG,SAAS,CAAC;;EAE1E;EACA;EACA,IAAAC,sBAAe,EAAC,MAAM;IACpB,MAAMC,CAAC,GAAGN,MAAM,CAACE,OAAO;IACxB,IAAI,CAACI,CAAC,EAAE;IACR,MAAMC,IAAI,GAAGZ,OAAO,IAAI,IAAI;IAC5B,IAAIQ,OAAO,CAACD,OAAO,KAAKE,SAAS,IAAI1B,yBAAyB,CAACyB,OAAO,CAACD,OAAO,EAAEK,IAAI,CAAC,EAAE;IACvFJ,OAAO,CAACD,OAAO,GAAGK,IAAI;IACtBD,CAAC,CAACC,IAAI,CAAC;EACT,CAAC,CAAC;;EAEF;EACA,IAAAF,sBAAe,EACb,MAAM,MAAM;IACVF,OAAO,CAACD,OAAO,GAAGE,SAAS;IAC3BJ,MAAM,CAACE,OAAO,GAAG,IAAI,CAAC;EACxB,CAAC,EACD,EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","SurfaceHeaderContext","exports","createContext","primaryActionEqual","a","b","label","disabled","loading","actionsEqual","length","i","x","y","accessibilityLabel","icon","searchEqual","value","placeholder","segmentsEqual","items","key","progressEqual","step","total","surfaceHeaderContentEqual","title","titleContent","subtitle","largeTitle","left","right","onBack","tone","primaryAction","actions","search","segments","progress","useSurfaceHeader","content","ctx","useContext","set","setContent","setRef","useRef","current","lastRef","undefined","useLayoutEffect","s","next"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSurfaceHeader.ts"],"mappings":"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","ignoreList":[]}
@@ -358,7 +358,12 @@ const useFileUploadState = ({
358
358
  endUpload();
359
359
  }
360
360
  };
361
- const handleCancelUpload = () => {
361
+
362
+ // Memoized because the orchestrator builds the upload-preview header's back
363
+ // NODE from it (`fmHeaderBack`): a node can only be compared by identity, so
364
+ // a fresh closure here re-creates the node every render and thrashes the
365
+ // surface-header bridge into an unbounded update loop (React error #185).
366
+ const handleCancelUpload = (0, _react.useCallback)(() => {
362
367
  clearPostSelectTimer();
363
368
 
364
369
  // Cleanup preview URLs
@@ -367,7 +372,7 @@ const useFileUploadState = ({
367
372
  }
368
373
  setPendingFiles([]);
369
374
  setShowUploadPreview(false);
370
- };
375
+ }, [clearPostSelectTimer, pendingFiles]);
371
376
  const removePendingFile = id => {
372
377
  const file = pendingFiles.find(pf => pf.id === id);
373
378
  if (!file) return;
@@ -384,8 +389,13 @@ const useFileUploadState = ({
384
389
  /**
385
390
  * Handle file upload - opens document picker and processes selected files
386
391
  * Expo 54 compatible - works on web, iOS, and Android
392
+ *
393
+ * Memoized because the orchestrator feeds it to the picker header's
394
+ * `primaryAction` (the Upload CTA) through a `useMemo`: a fresh closure each
395
+ * render invalidates that memo every render, which is the input the
396
+ * surface-header bridge is guarding against.
387
397
  */
388
- const handleFileUpload = async () => {
398
+ const handleFileUpload = (0, _react.useCallback)(async () => {
389
399
  // Prevent concurrent document picker calls
390
400
  if (isPickingDocument) {
391
401
  _bloom.toast.error(t('fileManagement.toasts.waitForSelection'));
@@ -478,7 +488,7 @@ const useFileUploadState = ({
478
488
  // Always reset the picking state, even if there was an error
479
489
  setIsPickingDocument(false);
480
490
  }
481
- };
491
+ }, [isPickingDocument, imagesOnly, handleFileSelection, t]);
482
492
  return {
483
493
  isPickingDocument,
484
494
  pendingFiles,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactQuery","_bloom","_queryKeys","_useFileQueries","_fileManagement","_shared","MIN_BANNER_MS","revokePreviewUrl","preview","startsWith","URL","revokeObjectURL","useFileUploadState","targetUserId","uploadFileMutation","defaultVisibility","selectMode","multiSelect","afterSelect","onSelect","onPicked","goBack","onClose","imagesOnly","selectedIds","setSelectedIds","t","isPickingDocument","setIsPickingDocument","useState","pendingFiles","setPendingFiles","showUploadPreview","setShowUploadPreview","uploading","setUploading","uploadProgress","setUploadProgress","queryClient","useQueryClient","uploadStartRef","useRef","postSelectTimerRef","endUploadTimerRef","isActiveRef","clearPostSelectTimer","useCallback","current","clearTimeout","clearEndUploadTimer","useEffect","endUpload","started","elapsed","Date","now","remaining","setTimeout","processFileUploads","selectedFiles","length","uploadedFiles","total","maxSize","oversizedFiles","filter","file","candidateSize","fileList","map","f","candidateName","join","toast","error","files","successCount","failureCount","errors","i","raw","fileName","fileSize","fileType","candidateType","optimisticId","Math","random","toString","slice","push","previewUri","candidateUri","optimisticMetadata","localPreviewUri","optimisticFile","id","filename","contentType","chunkSize","uploadDate","toISOString","metadata","variants","prependFileToCache","result","mutateAsync","visibility","merged","originalName","sha256","mime","size","createdAt","replaceFileInCache","removeFileFromCache","errorMessage","getErrorMessage","success","count","errorDetails","invalidateQueries","queryKey","queryKeys","list","handleFileSelection","MAX_FILE_SIZE","processedFiles","name","undefined","Number","isNaN","formatFileSize","fileUri","File","Blob","createObjectURL","createPendingUploadFile","handleConfirmUpload","filesToUpload","pf","fileToSelect","has","prev","Set","add","handleCancelUpload","removePendingFile","find","updated","handleFileUpload","picker","loadDocumentPicker","getDocumentAsync","type","multiple","copyToCacheDirectory","canceled","assets","conversionPromises","doc","index","convertDocumentPickerAssetToFile","then","catch","convertedFiles","Promise","all","includes","exports","_default","default"],"sourceRoot":"../../../../../../src","sources":["ui/screens/fileManagement/hooks/useFileUploadState.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactQuery","_bloom","_queryKeys","_useFileQueries","_fileManagement","_shared","MIN_BANNER_MS","revokePreviewUrl","preview","startsWith","URL","revokeObjectURL","useFileUploadState","targetUserId","uploadFileMutation","defaultVisibility","selectMode","multiSelect","afterSelect","onSelect","onPicked","goBack","onClose","imagesOnly","selectedIds","setSelectedIds","t","isPickingDocument","setIsPickingDocument","useState","pendingFiles","setPendingFiles","showUploadPreview","setShowUploadPreview","uploading","setUploading","uploadProgress","setUploadProgress","queryClient","useQueryClient","uploadStartRef","useRef","postSelectTimerRef","endUploadTimerRef","isActiveRef","clearPostSelectTimer","useCallback","current","clearTimeout","clearEndUploadTimer","useEffect","endUpload","started","elapsed","Date","now","remaining","setTimeout","processFileUploads","selectedFiles","length","uploadedFiles","total","maxSize","oversizedFiles","filter","file","candidateSize","fileList","map","f","candidateName","join","toast","error","files","successCount","failureCount","errors","i","raw","fileName","fileSize","fileType","candidateType","optimisticId","Math","random","toString","slice","push","previewUri","candidateUri","optimisticMetadata","localPreviewUri","optimisticFile","id","filename","contentType","chunkSize","uploadDate","toISOString","metadata","variants","prependFileToCache","result","mutateAsync","visibility","merged","originalName","sha256","mime","size","createdAt","replaceFileInCache","removeFileFromCache","errorMessage","getErrorMessage","success","count","errorDetails","invalidateQueries","queryKey","queryKeys","list","handleFileSelection","MAX_FILE_SIZE","processedFiles","name","undefined","Number","isNaN","formatFileSize","fileUri","File","Blob","createObjectURL","createPendingUploadFile","handleConfirmUpload","filesToUpload","pf","fileToSelect","has","prev","Set","add","handleCancelUpload","removePendingFile","find","updated","handleFileUpload","picker","loadDocumentPicker","getDocumentAsync","type","multiple","copyToCacheDirectory","canceled","assets","conversionPromises","doc","index","convertDocumentPickerAssetToFile","then","catch","convertedFiles","Promise","all","includes","exports","_default","default"],"sourceRoot":"../../../../../../src","sources":["ui/screens/fileManagement/hooks/useFileUploadState.ts"],"mappings":"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","ignoreList":[]}
@@ -11,8 +11,13 @@ import { createContext, useContext, useLayoutEffect, useRef } from 'react';
11
11
  * design-system fields Bloom's nav header supports: the single trailing
12
12
  * `primaryAction` CTA (Upload / Save), a trailing icon `actions` row, a header
13
13
  * `search` / `segments` in the large-title zone, an `onImage` `tone` over media,
14
- * and a wizard `progress` bar. Object/slot fields MUST be referentially stable
15
- * (memoize them with `useMemo`) so the header does not thrash.
14
+ * and a wizard `progress` bar.
15
+ *
16
+ * Only the NODE fields (`left`/`right`/`titleContent`, and an action's `icon`)
17
+ * must be referentially stable — a node can only be compared by identity, so an
18
+ * inline one thrashes the header. The rich OBJECT fields are compared by value
19
+ * (see {@link surfaceHeaderContentEqual}), so an inline `primaryAction` /
20
+ * `actions` / `search` / `segments` / `progress` is safe to pass.
16
21
  */
17
22
 
18
23
  /**
@@ -22,22 +27,74 @@ import { createContext, useContext, useLayoutEffect, useRef } from 'react';
22
27
  * a headerless surface), so {@link useSurfaceHeader} is a safe no-op there.
23
28
  */
24
29
  export const SurfaceHeaderContext = /*#__PURE__*/createContext(null);
30
+ function primaryActionEqual(a, b) {
31
+ if (a === b) return true;
32
+ if (!a || !b) return false;
33
+ // `onPress` is a fresh closure each render — its identity never changes what
34
+ // the button renders, so compare only the render-affecting scalars.
35
+ return a.label === b.label && !!a.disabled === !!b.disabled && !!a.loading === !!b.loading;
36
+ }
37
+ function actionsEqual(a, b) {
38
+ if (a === b) return true;
39
+ if (!a || !b || a.length !== b.length) return false;
40
+ for (let i = 0; i < a.length; i += 1) {
41
+ const x = a[i];
42
+ const y = b[i];
43
+ if (!x || !y) return false;
44
+ // `icon` is a node (identity); `onPress` is ignored, like `primaryAction`'s.
45
+ if (x.accessibilityLabel !== y.accessibilityLabel || !!x.disabled !== !!y.disabled || x.icon !== y.icon) {
46
+ return false;
47
+ }
48
+ }
49
+ return true;
50
+ }
51
+ function searchEqual(a, b) {
52
+ if (a === b) return true;
53
+ if (!a || !b) return false;
54
+ return a.value === b.value && a.placeholder === b.placeholder;
55
+ }
56
+ function segmentsEqual(a, b) {
57
+ if (a === b) return true;
58
+ if (!a || !b || a.value !== b.value || a.items.length !== b.items.length) return false;
59
+ for (let i = 0; i < a.items.length; i += 1) {
60
+ const x = a.items[i];
61
+ const y = b.items[i];
62
+ if (!x || !y || x.key !== y.key || x.label !== y.label) return false;
63
+ }
64
+ return true;
65
+ }
66
+ function progressEqual(a, b) {
67
+ if (a === b) return true;
68
+ if (!a || !b) return false;
69
+ return a.step === b.step && a.total === b.total;
70
+ }
25
71
 
26
72
  /**
27
- * Shallow value-equality for a surface's header contribution.
73
+ * Value-equality for a surface's header contribution.
74
+ *
75
+ * This MIRRORS Bloom's own `configsEqual` (`@oxyhq/bloom/dialog`), which guards
76
+ * the header store one layer down — deliberately field for field. The two must
77
+ * not diverge: this comparator is the gate that decides whether the host's
78
+ * `setContent` fires, so a comparator STRICTER than Bloom's re-introduces the
79
+ * update loop Bloom's own guard was written to prevent.
80
+ *
81
+ * Scalars (`title`/`subtitle`/`largeTitle`/`tone`) compare by value. The rich
82
+ * object fields (`primaryAction`/`actions`/`search`/`segments`/`progress`)
83
+ * compare by their render-affecting scalars, so a screen may build them inline:
84
+ * a fresh object with unchanged contents is NOT a change. Only the node fields
85
+ * (`titleContent`/`left`/`right`, and an action's `icon`) compare by identity —
86
+ * there is nothing else to compare a `ReactNode` by — so those, and only those,
87
+ * carry the memoize-me contract.
28
88
  *
29
- * Scalars (`title`/`subtitle`/`largeTitle`/`tone`) compare by value; the object
30
- * and node fields (`titleContent`/`left`/`right`/`primaryAction`/`actions`/
31
- * `search`/`segments`/`progress`) compare by identity callers memoize them, per
32
- * this hook's contract. Function-typed affordances compare by PRESENCE, never
33
- * identity: `onBack` legitimately gets a fresh closure each render, and its
34
- * identity never changes what the header renders, so it must not count as a
35
- * change (that is exactly what would drive the update loop).
89
+ * Function-typed affordances compare by PRESENCE, never identity: `onBack`
90
+ * legitimately gets a fresh closure each render and its identity never changes
91
+ * what the header renders, so it must not count as a change (that is exactly
92
+ * what would drive the update loop).
36
93
  */
37
94
  function surfaceHeaderContentEqual(a, b) {
38
95
  if (a === b) return true;
39
96
  if (!a || !b) return false;
40
- return a.title === b.title && a.titleContent === b.titleContent && a.subtitle === b.subtitle && a.largeTitle === b.largeTitle && a.left === b.left && a.right === b.right && !!a.onBack === !!b.onBack && a.primaryAction === b.primaryAction && a.actions === b.actions && a.search === b.search && a.segments === b.segments && a.tone === b.tone && a.progress === b.progress;
97
+ return a.title === b.title && a.titleContent === b.titleContent && a.subtitle === b.subtitle && a.largeTitle === b.largeTitle && a.left === b.left && a.right === b.right && !!a.onBack === !!b.onBack && a.tone === b.tone && primaryActionEqual(a.primaryAction, b.primaryAction) && actionsEqual(a.actions, b.actions) && searchEqual(a.search, b.search) && segmentsEqual(a.segments, b.segments) && progressEqual(a.progress, b.progress);
41
98
  }
42
99
 
43
100
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useLayoutEffect","useRef","SurfaceHeaderContext","surfaceHeaderContentEqual","a","b","title","titleContent","subtitle","largeTitle","left","right","onBack","primaryAction","actions","search","segments","tone","progress","useSurfaceHeader","content","ctx","set","setContent","setRef","current","lastRef","undefined","s","next"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSurfaceHeader.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,eAAe,EAAEC,MAAM,QAAQ,OAAO;;AAG1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,gBAAGJ,aAAa,CAAmC,IAAI,CAAC;;AAEzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,yBAAyBA,CAChCC,CAA8B,EAC9BC,CAA8B,EACrB;EACT,IAAID,CAAC,KAAKC,CAAC,EAAE,OAAO,IAAI;EACxB,IAAI,CAACD,CAAC,IAAI,CAACC,CAAC,EAAE,OAAO,KAAK;EAC1B,OACED,CAAC,CAACE,KAAK,KAAKD,CAAC,CAACC,KAAK,IACnBF,CAAC,CAACG,YAAY,KAAKF,CAAC,CAACE,YAAY,IACjCH,CAAC,CAACI,QAAQ,KAAKH,CAAC,CAACG,QAAQ,IACzBJ,CAAC,CAACK,UAAU,KAAKJ,CAAC,CAACI,UAAU,IAC7BL,CAAC,CAACM,IAAI,KAAKL,CAAC,CAACK,IAAI,IACjBN,CAAC,CAACO,KAAK,KAAKN,CAAC,CAACM,KAAK,IACnB,CAAC,CAACP,CAAC,CAACQ,MAAM,KAAK,CAAC,CAACP,CAAC,CAACO,MAAM,IACzBR,CAAC,CAACS,aAAa,KAAKR,CAAC,CAACQ,aAAa,IACnCT,CAAC,CAACU,OAAO,KAAKT,CAAC,CAACS,OAAO,IACvBV,CAAC,CAACW,MAAM,KAAKV,CAAC,CAACU,MAAM,IACrBX,CAAC,CAACY,QAAQ,KAAKX,CAAC,CAACW,QAAQ,IACzBZ,CAAC,CAACa,IAAI,KAAKZ,CAAC,CAACY,IAAI,IACjBb,CAAC,CAACc,QAAQ,KAAKb,CAAC,CAACa,QAAQ;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAACC,OAAgD,EAAQ;EACvF,MAAMC,GAAG,GAAGtB,UAAU,CAACG,oBAAoB,CAAC;EAC5C,MAAMoB,GAAG,GAAGD,GAAG,EAAEE,UAAU;EAC3B,MAAMC,MAAM,GAAGvB,MAAM,CAACqB,GAAG,CAAC;EAC1BE,MAAM,CAACC,OAAO,GAAGH,GAAG;EACpB;EACA,MAAMI,OAAO,GAAGzB,MAAM,CAA0C0B,SAAS,CAAC;;EAE1E;EACA;EACA3B,eAAe,CAAC,MAAM;IACpB,MAAM4B,CAAC,GAAGJ,MAAM,CAACC,OAAO;IACxB,IAAI,CAACG,CAAC,EAAE;IACR,MAAMC,IAAI,GAAGT,OAAO,IAAI,IAAI;IAC5B,IAAIM,OAAO,CAACD,OAAO,KAAKE,SAAS,IAAIxB,yBAAyB,CAACuB,OAAO,CAACD,OAAO,EAAEI,IAAI,CAAC,EAAE;IACvFH,OAAO,CAACD,OAAO,GAAGI,IAAI;IACtBD,CAAC,CAACC,IAAI,CAAC;EACT,CAAC,CAAC;;EAEF;EACA7B,eAAe,CACb,MAAM,MAAM;IACV0B,OAAO,CAACD,OAAO,GAAGE,SAAS;IAC3BH,MAAM,CAACC,OAAO,GAAG,IAAI,CAAC;EACxB,CAAC,EACD,EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useLayoutEffect","useRef","SurfaceHeaderContext","primaryActionEqual","a","b","label","disabled","loading","actionsEqual","length","i","x","y","accessibilityLabel","icon","searchEqual","value","placeholder","segmentsEqual","items","key","progressEqual","step","total","surfaceHeaderContentEqual","title","titleContent","subtitle","largeTitle","left","right","onBack","tone","primaryAction","actions","search","segments","progress","useSurfaceHeader","content","ctx","set","setContent","setRef","current","lastRef","undefined","s","next"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSurfaceHeader.ts"],"mappings":"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","ignoreList":[]}
@@ -355,7 +355,12 @@ export const useFileUploadState = ({
355
355
  endUpload();
356
356
  }
357
357
  };
358
- const handleCancelUpload = () => {
358
+
359
+ // Memoized because the orchestrator builds the upload-preview header's back
360
+ // NODE from it (`fmHeaderBack`): a node can only be compared by identity, so
361
+ // a fresh closure here re-creates the node every render and thrashes the
362
+ // surface-header bridge into an unbounded update loop (React error #185).
363
+ const handleCancelUpload = useCallback(() => {
359
364
  clearPostSelectTimer();
360
365
 
361
366
  // Cleanup preview URLs
@@ -364,7 +369,7 @@ export const useFileUploadState = ({
364
369
  }
365
370
  setPendingFiles([]);
366
371
  setShowUploadPreview(false);
367
- };
372
+ }, [clearPostSelectTimer, pendingFiles]);
368
373
  const removePendingFile = id => {
369
374
  const file = pendingFiles.find(pf => pf.id === id);
370
375
  if (!file) return;
@@ -381,8 +386,13 @@ export const useFileUploadState = ({
381
386
  /**
382
387
  * Handle file upload - opens document picker and processes selected files
383
388
  * Expo 54 compatible - works on web, iOS, and Android
389
+ *
390
+ * Memoized because the orchestrator feeds it to the picker header's
391
+ * `primaryAction` (the Upload CTA) through a `useMemo`: a fresh closure each
392
+ * render invalidates that memo every render, which is the input the
393
+ * surface-header bridge is guarding against.
384
394
  */
385
- const handleFileUpload = async () => {
395
+ const handleFileUpload = useCallback(async () => {
386
396
  // Prevent concurrent document picker calls
387
397
  if (isPickingDocument) {
388
398
  toast.error(t('fileManagement.toasts.waitForSelection'));
@@ -475,7 +485,7 @@ export const useFileUploadState = ({
475
485
  // Always reset the picking state, even if there was an error
476
486
  setIsPickingDocument(false);
477
487
  }
478
- };
488
+ }, [isPickingDocument, imagesOnly, handleFileSelection, t]);
479
489
  return {
480
490
  isPickingDocument,
481
491
  pendingFiles,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","useQueryClient","toast","queryKeys","prependFileToCache","removeFileFromCache","replaceFileInCache","convertDocumentPickerAssetToFile","formatFileSize","createPendingUploadFile","candidateName","candidateSize","candidateType","candidateUri","getErrorMessage","loadDocumentPicker","MIN_BANNER_MS","revokePreviewUrl","preview","startsWith","URL","revokeObjectURL","useFileUploadState","targetUserId","uploadFileMutation","defaultVisibility","selectMode","multiSelect","afterSelect","onSelect","onPicked","goBack","onClose","imagesOnly","selectedIds","setSelectedIds","t","isPickingDocument","setIsPickingDocument","pendingFiles","setPendingFiles","showUploadPreview","setShowUploadPreview","uploading","setUploading","uploadProgress","setUploadProgress","queryClient","uploadStartRef","postSelectTimerRef","endUploadTimerRef","isActiveRef","clearPostSelectTimer","current","clearTimeout","clearEndUploadTimer","endUpload","started","elapsed","Date","now","remaining","setTimeout","processFileUploads","selectedFiles","length","uploadedFiles","total","maxSize","oversizedFiles","filter","file","fileList","map","f","join","error","files","successCount","failureCount","errors","i","raw","fileName","fileSize","fileType","optimisticId","Math","random","toString","slice","push","previewUri","optimisticMetadata","localPreviewUri","optimisticFile","id","filename","contentType","chunkSize","uploadDate","toISOString","metadata","variants","result","mutateAsync","visibility","merged","originalName","sha256","mime","size","createdAt","errorMessage","success","count","errorDetails","invalidateQueries","queryKey","list","handleFileSelection","MAX_FILE_SIZE","processedFiles","name","undefined","Number","isNaN","fileUri","File","Blob","createObjectURL","handleConfirmUpload","filesToUpload","pf","fileToSelect","has","prev","Set","add","handleCancelUpload","removePendingFile","find","updated","handleFileUpload","picker","getDocumentAsync","type","multiple","copyToCacheDirectory","canceled","assets","conversionPromises","doc","index","then","catch","convertedFiles","Promise","all","includes"],"sourceRoot":"../../../../../../src","sources":["ui/screens/fileManagement/hooks/useFileUploadState.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","useQueryClient","toast","queryKeys","prependFileToCache","removeFileFromCache","replaceFileInCache","convertDocumentPickerAssetToFile","formatFileSize","createPendingUploadFile","candidateName","candidateSize","candidateType","candidateUri","getErrorMessage","loadDocumentPicker","MIN_BANNER_MS","revokePreviewUrl","preview","startsWith","URL","revokeObjectURL","useFileUploadState","targetUserId","uploadFileMutation","defaultVisibility","selectMode","multiSelect","afterSelect","onSelect","onPicked","goBack","onClose","imagesOnly","selectedIds","setSelectedIds","t","isPickingDocument","setIsPickingDocument","pendingFiles","setPendingFiles","showUploadPreview","setShowUploadPreview","uploading","setUploading","uploadProgress","setUploadProgress","queryClient","uploadStartRef","postSelectTimerRef","endUploadTimerRef","isActiveRef","clearPostSelectTimer","current","clearTimeout","clearEndUploadTimer","endUpload","started","elapsed","Date","now","remaining","setTimeout","processFileUploads","selectedFiles","length","uploadedFiles","total","maxSize","oversizedFiles","filter","file","fileList","map","f","join","error","files","successCount","failureCount","errors","i","raw","fileName","fileSize","fileType","optimisticId","Math","random","toString","slice","push","previewUri","optimisticMetadata","localPreviewUri","optimisticFile","id","filename","contentType","chunkSize","uploadDate","toISOString","metadata","variants","result","mutateAsync","visibility","merged","originalName","sha256","mime","size","createdAt","errorMessage","success","count","errorDetails","invalidateQueries","queryKey","list","handleFileSelection","MAX_FILE_SIZE","processedFiles","name","undefined","Number","isNaN","fileUri","File","Blob","createObjectURL","handleConfirmUpload","filesToUpload","pf","fileToSelect","has","prev","Set","add","handleCancelUpload","removePendingFile","find","updated","handleFileUpload","picker","getDocumentAsync","type","multiple","copyToCacheDirectory","canceled","assets","conversionPromises","doc","index","then","catch","convertedFiles","Promise","all","includes"],"sourceRoot":"../../../../../../src","sources":["ui/screens/fileManagement/hooks/useFileUploadState.ts"],"mappings":"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","ignoreList":[]}
@@ -8,8 +8,13 @@ import type { DialogHeaderConfig } from '@oxyhq/bloom/dialog';
8
8
  * design-system fields Bloom's nav header supports: the single trailing
9
9
  * `primaryAction` CTA (Upload / Save), a trailing icon `actions` row, a header
10
10
  * `search` / `segments` in the large-title zone, an `onImage` `tone` over media,
11
- * and a wizard `progress` bar. Object/slot fields MUST be referentially stable
12
- * (memoize them with `useMemo`) so the header does not thrash.
11
+ * and a wizard `progress` bar.
12
+ *
13
+ * Only the NODE fields (`left`/`right`/`titleContent`, and an action's `icon`)
14
+ * must be referentially stable — a node can only be compared by identity, so an
15
+ * inline one thrashes the header. The rich OBJECT fields are compared by value
16
+ * (see {@link surfaceHeaderContentEqual}), so an inline `primaryAction` /
17
+ * `actions` / `search` / `segments` / `progress` is safe to pass.
13
18
  */
14
19
  export type SurfaceHeaderContent = Pick<DialogHeaderConfig, 'title' | 'titleContent' | 'subtitle' | 'largeTitle' | 'left' | 'right' | 'onBack' | 'primaryAction' | 'actions' | 'search' | 'segments' | 'tone' | 'progress'>;
15
20
  interface SurfaceHeaderContextValue {
@@ -1 +1 @@
1
- {"version":3,"file":"useSurfaceHeader.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useSurfaceHeader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,kBAAkB,EAChB,OAAO,GACP,cAAc,GACd,UAAU,GACV,YAAY,GACZ,MAAM,GACN,OAAO,GACP,QAAQ,GACR,eAAe,GACf,SAAS,GACT,QAAQ,GACR,UAAU,GACV,MAAM,GACN,UAAU,CACb,CAAC;AAEF,UAAU,yBAAyB;IACjC,UAAU,EAAE,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5D;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,2DAAwD,CAAC;AAoC1F;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CA2BvF"}
1
+ {"version":3,"file":"useSurfaceHeader.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useSurfaceHeader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,kBAAkB,EAChB,OAAO,GACP,cAAc,GACd,UAAU,GACV,YAAY,GACZ,MAAM,GACN,OAAO,GACP,QAAQ,GACR,eAAe,GACf,SAAS,GACT,QAAQ,GACR,UAAU,GACV,MAAM,GACN,UAAU,CACb,CAAC;AAEF,UAAU,yBAAyB;IACjC,UAAU,EAAE,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5D;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,2DAAwD,CAAC;AA0G1F;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CA2BvF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFileUploadState.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/screens/fileManagement/hooks/useFileUploadState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAQlF,OAAO,EAEH,KAAK,iBAAiB,EAQzB,MAAM,WAAW,CAAC;AAEnB,qDAAqD;AACrD,MAAM,WAAW,2BAA2B;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB;AAsBD,8EAA8E;AAC9E,MAAM,WAAW,wBAAwB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IACrD,iBAAiB,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CACtE;AAED,mDAAmD;AACnD,MAAM,WAAW,wBAAwB;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,cAAc,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACnD,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,iLAehC,wBAAwB,KAAG,wBA8b7B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"useFileUploadState.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/screens/fileManagement/hooks/useFileUploadState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAQlF,OAAO,EAEH,KAAK,iBAAiB,EAQzB,MAAM,WAAW,CAAC;AAEnB,qDAAqD;AACrD,MAAM,WAAW,2BAA2B;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB;AAsBD,8EAA8E;AAC9E,MAAM,WAAW,wBAAwB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IACrD,iBAAiB,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CACtE;AAED,mDAAmD;AACnD,MAAM,WAAW,wBAAwB;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,cAAc,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACnD,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,iLAehC,wBAAwB,KAAG,wBAuc7B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -8,8 +8,13 @@ import type { DialogHeaderConfig } from '@oxyhq/bloom/dialog';
8
8
  * design-system fields Bloom's nav header supports: the single trailing
9
9
  * `primaryAction` CTA (Upload / Save), a trailing icon `actions` row, a header
10
10
  * `search` / `segments` in the large-title zone, an `onImage` `tone` over media,
11
- * and a wizard `progress` bar. Object/slot fields MUST be referentially stable
12
- * (memoize them with `useMemo`) so the header does not thrash.
11
+ * and a wizard `progress` bar.
12
+ *
13
+ * Only the NODE fields (`left`/`right`/`titleContent`, and an action's `icon`)
14
+ * must be referentially stable — a node can only be compared by identity, so an
15
+ * inline one thrashes the header. The rich OBJECT fields are compared by value
16
+ * (see {@link surfaceHeaderContentEqual}), so an inline `primaryAction` /
17
+ * `actions` / `search` / `segments` / `progress` is safe to pass.
13
18
  */
14
19
  export type SurfaceHeaderContent = Pick<DialogHeaderConfig, 'title' | 'titleContent' | 'subtitle' | 'largeTitle' | 'left' | 'right' | 'onBack' | 'primaryAction' | 'actions' | 'search' | 'segments' | 'tone' | 'progress'>;
15
20
  interface SurfaceHeaderContextValue {
@@ -1 +1 @@
1
- {"version":3,"file":"useSurfaceHeader.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useSurfaceHeader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,kBAAkB,EAChB,OAAO,GACP,cAAc,GACd,UAAU,GACV,YAAY,GACZ,MAAM,GACN,OAAO,GACP,QAAQ,GACR,eAAe,GACf,SAAS,GACT,QAAQ,GACR,UAAU,GACV,MAAM,GACN,UAAU,CACb,CAAC;AAEF,UAAU,yBAAyB;IACjC,UAAU,EAAE,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5D;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,2DAAwD,CAAC;AAoC1F;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CA2BvF"}
1
+ {"version":3,"file":"useSurfaceHeader.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useSurfaceHeader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,kBAAkB,EAChB,OAAO,GACP,cAAc,GACd,UAAU,GACV,YAAY,GACZ,MAAM,GACN,OAAO,GACP,QAAQ,GACR,eAAe,GACf,SAAS,GACT,QAAQ,GACR,UAAU,GACV,MAAM,GACN,UAAU,CACb,CAAC;AAEF,UAAU,yBAAyB;IACjC,UAAU,EAAE,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5D;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,2DAAwD,CAAC;AA0G1F;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CA2BvF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFileUploadState.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/screens/fileManagement/hooks/useFileUploadState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iDAA8C,CAAC;AAQlF,OAAO,EAEH,KAAK,iBAAiB,EAQzB,MAAM,cAAW,CAAC;AAEnB,qDAAqD;AACrD,MAAM,WAAW,2BAA2B;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB;AAsBD,8EAA8E;AAC9E,MAAM,WAAW,wBAAwB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IACrD,iBAAiB,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CACtE;AAED,mDAAmD;AACnD,MAAM,WAAW,wBAAwB;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,cAAc,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACnD,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,iLAehC,wBAAwB,KAAG,wBA8b7B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"useFileUploadState.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/screens/fileManagement/hooks/useFileUploadState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iDAA8C,CAAC;AAQlF,OAAO,EAEH,KAAK,iBAAiB,EAQzB,MAAM,cAAW,CAAC;AAEnB,qDAAqD;AACrD,MAAM,WAAW,2BAA2B;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB;AAsBD,8EAA8E;AAC9E,MAAM,WAAW,wBAAwB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IACrD,iBAAiB,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CACtE;AAED,mDAAmD;AACnD,MAAM,WAAW,wBAAwB;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,cAAc,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACnD,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,iLAehC,wBAAwB,KAAG,wBAuc7B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "23.0.1",
3
+ "version": "23.0.3",
4
4
  "description": "OxyHQ Expo/React Native SDK — UI components, screens, and native features",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -148,7 +148,7 @@
148
148
  "@commitlint/cli": "^21.2.1",
149
149
  "@commitlint/config-conventional": "^21.2.0",
150
150
  "@expo/vector-icons": "^15.0.3",
151
- "@oxyhq/core": "13.0.0",
151
+ "@oxyhq/core": "13.1.0",
152
152
  "@react-native-async-storage/async-storage": "^2.0.0",
153
153
  "@react-native-community/netinfo": "^11.4.1",
154
154
  "@react-native/babel-preset": "^0.86.0",
@@ -10,8 +10,13 @@ import type { DialogHeaderConfig } from '@oxyhq/bloom/dialog';
10
10
  * design-system fields Bloom's nav header supports: the single trailing
11
11
  * `primaryAction` CTA (Upload / Save), a trailing icon `actions` row, a header
12
12
  * `search` / `segments` in the large-title zone, an `onImage` `tone` over media,
13
- * and a wizard `progress` bar. Object/slot fields MUST be referentially stable
14
- * (memoize them with `useMemo`) so the header does not thrash.
13
+ * and a wizard `progress` bar.
14
+ *
15
+ * Only the NODE fields (`left`/`right`/`titleContent`, and an action's `icon`)
16
+ * must be referentially stable — a node can only be compared by identity, so an
17
+ * inline one thrashes the header. The rich OBJECT fields are compared by value
18
+ * (see {@link surfaceHeaderContentEqual}), so an inline `primaryAction` /
19
+ * `actions` / `search` / `segments` / `progress` is safe to pass.
15
20
  */
16
21
  export type SurfaceHeaderContent = Pick<
17
22
  DialogHeaderConfig,
@@ -42,16 +47,86 @@ interface SurfaceHeaderContextValue {
42
47
  */
43
48
  export const SurfaceHeaderContext = createContext<SurfaceHeaderContextValue | null>(null);
44
49
 
50
+ type HeaderPrimaryAction = NonNullable<SurfaceHeaderContent['primaryAction']>;
51
+ type HeaderAction = NonNullable<SurfaceHeaderContent['actions']>[number];
52
+ type HeaderSearch = NonNullable<SurfaceHeaderContent['search']>;
53
+ type HeaderSegments = NonNullable<SurfaceHeaderContent['segments']>;
54
+ type HeaderProgress = NonNullable<SurfaceHeaderContent['progress']>;
55
+
56
+ function primaryActionEqual(
57
+ a: HeaderPrimaryAction | undefined,
58
+ b: HeaderPrimaryAction | undefined,
59
+ ): boolean {
60
+ if (a === b) return true;
61
+ if (!a || !b) return false;
62
+ // `onPress` is a fresh closure each render — its identity never changes what
63
+ // the button renders, so compare only the render-affecting scalars.
64
+ return a.label === b.label && !!a.disabled === !!b.disabled && !!a.loading === !!b.loading;
65
+ }
66
+
67
+ function actionsEqual(a: HeaderAction[] | undefined, b: HeaderAction[] | undefined): boolean {
68
+ if (a === b) return true;
69
+ if (!a || !b || a.length !== b.length) return false;
70
+ for (let i = 0; i < a.length; i += 1) {
71
+ const x = a[i];
72
+ const y = b[i];
73
+ if (!x || !y) return false;
74
+ // `icon` is a node (identity); `onPress` is ignored, like `primaryAction`'s.
75
+ if (
76
+ x.accessibilityLabel !== y.accessibilityLabel ||
77
+ !!x.disabled !== !!y.disabled ||
78
+ x.icon !== y.icon
79
+ ) {
80
+ return false;
81
+ }
82
+ }
83
+ return true;
84
+ }
85
+
86
+ function searchEqual(a: HeaderSearch | undefined, b: HeaderSearch | undefined): boolean {
87
+ if (a === b) return true;
88
+ if (!a || !b) return false;
89
+ return a.value === b.value && a.placeholder === b.placeholder;
90
+ }
91
+
92
+ function segmentsEqual(a: HeaderSegments | undefined, b: HeaderSegments | undefined): boolean {
93
+ if (a === b) return true;
94
+ if (!a || !b || a.value !== b.value || a.items.length !== b.items.length) return false;
95
+ for (let i = 0; i < a.items.length; i += 1) {
96
+ const x = a.items[i];
97
+ const y = b.items[i];
98
+ if (!x || !y || x.key !== y.key || x.label !== y.label) return false;
99
+ }
100
+ return true;
101
+ }
102
+
103
+ function progressEqual(a: HeaderProgress | undefined, b: HeaderProgress | undefined): boolean {
104
+ if (a === b) return true;
105
+ if (!a || !b) return false;
106
+ return a.step === b.step && a.total === b.total;
107
+ }
108
+
45
109
  /**
46
- * Shallow value-equality for a surface's header contribution.
110
+ * Value-equality for a surface's header contribution.
111
+ *
112
+ * This MIRRORS Bloom's own `configsEqual` (`@oxyhq/bloom/dialog`), which guards
113
+ * the header store one layer down — deliberately field for field. The two must
114
+ * not diverge: this comparator is the gate that decides whether the host's
115
+ * `setContent` fires, so a comparator STRICTER than Bloom's re-introduces the
116
+ * update loop Bloom's own guard was written to prevent.
117
+ *
118
+ * Scalars (`title`/`subtitle`/`largeTitle`/`tone`) compare by value. The rich
119
+ * object fields (`primaryAction`/`actions`/`search`/`segments`/`progress`)
120
+ * compare by their render-affecting scalars, so a screen may build them inline:
121
+ * a fresh object with unchanged contents is NOT a change. Only the node fields
122
+ * (`titleContent`/`left`/`right`, and an action's `icon`) compare by identity —
123
+ * there is nothing else to compare a `ReactNode` by — so those, and only those,
124
+ * carry the memoize-me contract.
47
125
  *
48
- * Scalars (`title`/`subtitle`/`largeTitle`/`tone`) compare by value; the object
49
- * and node fields (`titleContent`/`left`/`right`/`primaryAction`/`actions`/
50
- * `search`/`segments`/`progress`) compare by identity callers memoize them, per
51
- * this hook's contract. Function-typed affordances compare by PRESENCE, never
52
- * identity: `onBack` legitimately gets a fresh closure each render, and its
53
- * identity never changes what the header renders, so it must not count as a
54
- * change (that is exactly what would drive the update loop).
126
+ * Function-typed affordances compare by PRESENCE, never identity: `onBack`
127
+ * legitimately gets a fresh closure each render and its identity never changes
128
+ * what the header renders, so it must not count as a change (that is exactly
129
+ * what would drive the update loop).
55
130
  */
56
131
  function surfaceHeaderContentEqual(
57
132
  a: SurfaceHeaderContent | null,
@@ -67,12 +142,12 @@ function surfaceHeaderContentEqual(
67
142
  a.left === b.left &&
68
143
  a.right === b.right &&
69
144
  !!a.onBack === !!b.onBack &&
70
- a.primaryAction === b.primaryAction &&
71
- a.actions === b.actions &&
72
- a.search === b.search &&
73
- a.segments === b.segments &&
74
145
  a.tone === b.tone &&
75
- a.progress === b.progress
146
+ primaryActionEqual(a.primaryAction, b.primaryAction) &&
147
+ actionsEqual(a.actions, b.actions) &&
148
+ searchEqual(a.search, b.search) &&
149
+ segmentsEqual(a.segments, b.segments) &&
150
+ progressEqual(a.progress, b.progress)
76
151
  );
77
152
  }
78
153
 
@@ -411,7 +411,11 @@ export const useFileUploadState = ({
411
411
  }
412
412
  };
413
413
 
414
- const handleCancelUpload = () => {
414
+ // Memoized because the orchestrator builds the upload-preview header's back
415
+ // NODE from it (`fmHeaderBack`): a node can only be compared by identity, so
416
+ // a fresh closure here re-creates the node every render and thrashes the
417
+ // surface-header bridge into an unbounded update loop (React error #185).
418
+ const handleCancelUpload = useCallback(() => {
415
419
  clearPostSelectTimer();
416
420
 
417
421
  // Cleanup preview URLs
@@ -420,7 +424,7 @@ export const useFileUploadState = ({
420
424
  }
421
425
  setPendingFiles([]);
422
426
  setShowUploadPreview(false);
423
- };
427
+ }, [clearPostSelectTimer, pendingFiles]);
424
428
 
425
429
  const removePendingFile = (id: string) => {
426
430
  const file = pendingFiles.find((pf) => pf.id === id);
@@ -438,8 +442,13 @@ export const useFileUploadState = ({
438
442
  /**
439
443
  * Handle file upload - opens document picker and processes selected files
440
444
  * Expo 54 compatible - works on web, iOS, and Android
445
+ *
446
+ * Memoized because the orchestrator feeds it to the picker header's
447
+ * `primaryAction` (the Upload CTA) through a `useMemo`: a fresh closure each
448
+ * render invalidates that memo every render, which is the input the
449
+ * surface-header bridge is guarding against.
441
450
  */
442
- const handleFileUpload = async () => {
451
+ const handleFileUpload = useCallback(async () => {
443
452
  // Prevent concurrent document picker calls
444
453
  if (isPickingDocument) {
445
454
  toast.error(t('fileManagement.toasts.waitForSelection'));
@@ -538,7 +547,7 @@ export const useFileUploadState = ({
538
547
  // Always reset the picking state, even if there was an error
539
548
  setIsPickingDocument(false);
540
549
  }
541
- };
550
+ }, [isPickingDocument, imagesOnly, handleFileSelection, t]);
542
551
 
543
552
  return {
544
553
  isPickingDocument,