@oxyhq/services 26.2.0 → 27.0.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.
- package/lib/commonjs/index.js +21 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/requestSurfaces.js +14 -6
- package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +16 -3
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/userCache.js +164 -10
- package/lib/commonjs/ui/hooks/queries/userCache.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +6 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/CreateAccountScreen.js +73 -40
- package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/utils/avatarUtils.js +5 -0
- package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
- package/lib/module/index.js +4 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/authChooser/requestSurfaces.js +15 -7
- package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +16 -3
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/module/ui/hooks/queries/userCache.js +161 -10
- package/lib/module/ui/hooks/queries/userCache.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +6 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/CreateAccountScreen.js +74 -41
- package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/module/ui/utils/avatarUtils.js +5 -0
- package/lib/module/ui/utils/avatarUtils.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -2
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts +6 -1
- package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/userCache.d.ts +79 -2
- package/lib/typescript/commonjs/ui/hooks/queries/userCache.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -2
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts +6 -1
- package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/userCache.d.ts +79 -2
- package/lib/typescript/module/ui/hooks/queries/userCache.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +15 -3
- package/src/ui/components/authChooser/requestSurfaces.tsx +12 -4
- package/src/ui/hooks/mutations/useAccountMutations.ts +20 -3
- package/src/ui/hooks/queries/__tests__/userCacheClear.test.ts +301 -0
- package/src/ui/hooks/queries/userCache.ts +211 -10
- package/src/ui/screens/AccountSettingsScreen.tsx +9 -1
- package/src/ui/screens/CreateAccountScreen.tsx +66 -36
- package/src/ui/utils/avatarUtils.ts +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["authenticatedApiCall","useAccountStore","useAuthStore","queryKeys","invalidateUserQueries","invalidateAccountQueries","refreshAvatarInStore","sessionId","avatarFileId","oxyServices","updateAccount","getState","cacheBustedUrl","getFileDownloadUrl","Date","now","avatar","avatarUrl","updateProfileWithAvatar","updates","activeSessionId","queryClient","syncSession","data","updateProfile","setQueryData","accounts","current","users","profile","setUser","undefined"],"sourceRoot":"../../../../src","sources":["ui/utils/avatarUtils.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,aAAa;AAGlD,SAASC,eAAe,QAAQ,2BAAwB;AACxD,SAASC,YAAY,QAAQ,wBAAqB;AAElD,SAASC,SAAS,EAAEC,qBAAqB,EAAEC,wBAAwB,QAAQ,+BAA4B;;
|
|
1
|
+
{"version":3,"names":["authenticatedApiCall","useAccountStore","useAuthStore","queryKeys","invalidateUserQueries","invalidateAccountQueries","clearedFieldsFromProfileUpdate","upsertCachedUser","refreshAvatarInStore","sessionId","avatarFileId","oxyServices","updateAccount","getState","cacheBustedUrl","getFileDownloadUrl","Date","now","avatar","avatarUrl","updateProfileWithAvatar","updates","activeSessionId","queryClient","syncSession","data","updateProfile","setQueryData","accounts","current","users","profile","setUser","cleared","id","length","undefined"],"sourceRoot":"../../../../src","sources":["ui/utils/avatarUtils.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,aAAa;AAGlD,SAASC,eAAe,QAAQ,2BAAwB;AACxD,SAASC,YAAY,QAAQ,wBAAqB;AAElD,SAASC,SAAS,EAAEC,qBAAqB,EAAEC,wBAAwB,QAAQ,+BAA4B;AACvG,SACEC,8BAA8B,EAC9BC,gBAAgB,QACX,+BAA4B;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAClCC,SAAiB,EACjBC,YAAoB,EACpBC,WAAwB,EAClB;EACN,MAAM;IAAEC;EAAc,CAAC,GAAGX,eAAe,CAACY,QAAQ,CAAC,CAAC;EACpD,MAAMC,cAAc,GAAG,GAAGH,WAAW,CAACI,kBAAkB,CAACL,YAAY,EAAE,OAAO,CAAC,MAAMM,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;EACjGL,aAAa,CAACH,SAAS,EAAE;IACvBS,MAAM,EAAER,YAAY;IACpBS,SAAS,EAAEL;EACb,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeM,uBAAuBA,CAC3CC,OAA0B,EAC1BV,WAAwB,EACxBW,eAA8B,EAC9BC,WAAwB,EACxBC,WAAiC,EAClB;EACf,MAAMC,IAAI,GAAG,MAAMzB,oBAAoB,CACrCW,WAAW,EACXW,eAAe,EACf,MAAMX,WAAW,CAACe,aAAa,CAACL,OAAO,CAAC,EACxCG,WACF,CAAC;;EAED;EACAD,WAAW,CAACI,YAAY,CAACxB,SAAS,CAACyB,QAAQ,CAACC,OAAO,CAACP,eAAe,CAAC,EAAEG,IAAI,CAAC;EAC3E,IAAIH,eAAe,EAAE;IACnBC,WAAW,CAACI,YAAY,CAACxB,SAAS,CAAC2B,KAAK,CAACC,OAAO,CAACT,eAAe,CAAC,EAAEG,IAAI,CAAC;EAC1E;;EAEA;EACAvB,YAAY,CAACW,QAAQ,CAAC,CAAC,CAACmB,OAAO,CAACP,IAAI,CAAC;EAErC,MAAMQ,OAAO,GAAG3B,8BAA8B,CAACe,OAAO,CAAC;EACvDd,gBAAgB,CAACgB,WAAW,EAAEE,IAAI,EAAEA,IAAI,CAACS,EAAE,EAAE;IAC3CD,OAAO,EAAEA,OAAO,CAACE,MAAM,GAAG,CAAC,GAAGF,OAAO,GAAGG;EAC1C,CAAC,CAAC;;EAEF;EACA;EACA;EACA,IAAI,OAAOf,OAAO,CAACH,MAAM,KAAK,QAAQ,IAAII,eAAe,EAAE;IACzD,IAAID,OAAO,CAACH,MAAM,EAAE;MAClBV,oBAAoB,CAACc,eAAe,EAAED,OAAO,CAACH,MAAM,EAAEP,WAAW,CAAC;IACpE,CAAC,MAAM;MACLV,eAAe,CAACY,QAAQ,CAAC,CAAC,CAACD,aAAa,CAACU,eAAe,EAAE;QACxDJ,MAAM,EAAEkB,SAAS;QACjBjB,SAAS,EAAEiB;MACb,CAAC,CAAC;IACJ;EACF;;EAEA;EACAhC,qBAAqB,CAACmB,WAAW,CAAC;EAClClB,wBAAwB,CAACkB,WAAW,CAAC;EAErC,OAAOE,IAAI;AACb","ignoreList":[]}
|
|
@@ -46,8 +46,8 @@ export { createProfileMutation, createGenericMutation, } from './ui/hooks/mutati
|
|
|
46
46
|
export type { ProfileMutationConfig, GenericMutationConfig, } from './ui/hooks/mutations/mutationFactory';
|
|
47
47
|
export { mutationKeys } from './ui/hooks/mutations/mutationKeys';
|
|
48
48
|
export { queryKeys, invalidateAccountQueries, invalidateUserQueries, invalidateSessionQueries, invalidateDeviceQueries, invalidatePrivacyQueries, invalidateSecurityQueries, invalidateStorageQueries, invalidatePaymentsQueries, invalidateConnectedAppsQueries, invalidateAuthMethodsQueries, } from './ui/hooks/queries/queryKeys';
|
|
49
|
-
export { upsertCachedUser, upsertCachedUsers } from './ui/hooks/queries/userCache';
|
|
50
|
-
export type { CacheableUser } from './ui/hooks/queries/userCache';
|
|
49
|
+
export { upsertCachedUser, upsertCachedUsers, CLEARABLE_USER_FIELDS, clearedFieldsFromProfileUpdate, clearedFieldsFromAccountUpdate, } from './ui/hooks/queries/userCache';
|
|
50
|
+
export type { CacheableUser, ClearableUserField, UpsertCachedUserOptions, } from './ui/hooks/queries/userCache';
|
|
51
51
|
export { useMutationStatus } from './ui/hooks/useMutationStatus';
|
|
52
52
|
export type { MutationStatus } from './ui/hooks/useMutationStatus';
|
|
53
53
|
export { useOnlineStatus } from './ui/hooks/useOnlineStatus';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAYH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIhF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAKzE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACH,aAAa,EACb,SAAS,IAAI,cAAc,EAC3B,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACnB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKjF,OAAO,EACH,cAAc,EACd,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACH,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,GACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACH,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EACH,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,yBAAyB,GAC5B,MAAM,sCAAsC,CAAC;AAG9C,YAAY,EACR,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,GAC7B,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,GAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,eAAe,GAClB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACH,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACR,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAQjE,OAAO,EACH,SAAS,EACT,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,GAC/B,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,12 @@ import type React from 'react';
|
|
|
15
15
|
import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
|
|
16
16
|
import type { CommonsDeliveryRoute, SignInProgress } from '@oxyhq/core';
|
|
17
17
|
import type { Theme, Translate } from './types';
|
|
18
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* The indeterminate leading visual: the request exists but has nothing to show yet.
|
|
20
|
+
* Uses RN's ActivityIndicator — `@oxyhq/bloom/loading` can tree-shake to `undefined`
|
|
21
|
+
* in rolldown-vite production bundles when co-imported with `@oxyhq/bloom/button`
|
|
22
|
+
* (auth.oxy.so/authorize blank screen, React #130).
|
|
23
|
+
*/
|
|
19
24
|
export declare const PreparingSurface: React.FC;
|
|
20
25
|
/** The leading glyph for a route whose surface is elsewhere (the phone, Commons). */
|
|
21
26
|
export declare const RouteGlyph: React.FC<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestSurfaces.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/authChooser/requestSurfaces.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,sBAAsB,MAAM,2CAA2C,CAAC;AAK/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAShD
|
|
1
|
+
{"version":3,"file":"requestSurfaces.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/authChooser/requestSurfaces.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,sBAAsB,MAAM,2CAA2C,CAAC;AAK/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAShD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAGpC,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,OAAO,sBAAsB,CAAC,QAAQ,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;CACf,CAEA,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,CAAC,EAAE,SAAS,CAAA;CAAE,CAa7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,KAAK,CAAC;IACb,CAAC,EAAE,SAAS,CAAC;IACb,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAcA,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,CAAC,EAAE,SAAS,CAAC;CACd,CAmBA,CAAC"}
|
|
@@ -208,7 +208,7 @@ export declare const useUpdateAccountSettings: () => {
|
|
|
208
208
|
};
|
|
209
209
|
isManagedAccount?: boolean;
|
|
210
210
|
managedBy?: string;
|
|
211
|
-
|
|
211
|
+
accountCategories?: import("@oxyhq/contracts").AccountCategoryId[];
|
|
212
212
|
languages?: string[];
|
|
213
213
|
notificationPreferences?: NotificationPreferences;
|
|
214
214
|
userPreferences?: UserPreferences;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccountMutations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/mutations/useAccountMutations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,IAAI,EACJ,eAAe,EAChB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useAccountMutations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/mutations/useAccountMutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,9 +36,37 @@
|
|
|
36
36
|
* never overwritten by a degraded/empty one (empty username, the
|
|
37
37
|
* `'Unknown user'` ghost-author sentinel, `null` avatar).
|
|
38
38
|
*
|
|
39
|
+
* EXPRESSING A DELIBERATE CLEAR ("remove my picture")
|
|
40
|
+
* ---------------------------------------------------
|
|
41
|
+
* The anti-degradation rule above is right for a sparse source and wrong for a
|
|
42
|
+
* user who just emptied the field — and the two are NOT distinguishable from the
|
|
43
|
+
* payload. Measured against oxy-api's canonical serializer (`formatUserResponse`
|
|
44
|
+
* in `packages/api/src/utils/userTransform.ts`, which passes every field through
|
|
45
|
+
* `typeof value === 'string' ? value : undefined`): an account whose avatar,
|
|
46
|
+
* bio and display name were all just CLEARED serializes to
|
|
47
|
+
* `{"id":…,"publicKey":…,"username":…,"name":{},"languages":[]}` — byte-identical
|
|
48
|
+
* to the same account read as a sparse projection. There is no `null` and no
|
|
49
|
+
* `''` on the wire to key on. The information that a field was deliberately
|
|
50
|
+
* emptied exists ONLY at the call site that performed the write.
|
|
51
|
+
*
|
|
52
|
+
* So the caller declares it: `upsertCachedUser(qc, user, viewerId, { cleared:
|
|
53
|
+
* ['avatar'] })`. For a declared field an incoming EMPTY value means the field
|
|
54
|
+
* IS empty and the stale value is dropped; a MEANINGFUL incoming value still
|
|
55
|
+
* wins as usual (so `{ cleared: ['name.displayName'] }` on a personal account,
|
|
56
|
+
* where clearing the explicit name makes the server return the COMPOSED one,
|
|
57
|
+
* keeps the composed name rather than blanking it).
|
|
58
|
+
*
|
|
59
|
+
* A blanket "this source is authoritative, treat every absent field as cleared"
|
|
60
|
+
* flag was considered and rejected: because the two payloads are byte-identical,
|
|
61
|
+
* such a flag is an unverifiable promise about provenance, and the failure mode
|
|
62
|
+
* of getting it wrong is blanking real identity data in every Oxy app. Naming
|
|
63
|
+
* the fields states something the caller actually observed — which fields the
|
|
64
|
+
* user emptied — and bounds the damage to exactly those.
|
|
65
|
+
*
|
|
39
66
|
* It is a cache write only — zero network, one `setQueryData` per key.
|
|
40
67
|
*/
|
|
41
|
-
import type { UserNameResponse } from "@oxyhq/contracts";
|
|
68
|
+
import type { UserNameResponse, UserProfileUpdate } from "@oxyhq/contracts";
|
|
69
|
+
import type { UpdateAccountInput } from "@oxyhq/core";
|
|
42
70
|
import type { QueryClient } from "@tanstack/react-query";
|
|
43
71
|
/**
|
|
44
72
|
* A user-shaped object that can be upserted into the cache. Intentionally
|
|
@@ -76,6 +104,47 @@ export interface CacheableUser {
|
|
|
76
104
|
} | null;
|
|
77
105
|
[key: string]: unknown;
|
|
78
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* The profile fields a user can genuinely EMPTY through a real Oxy write, and
|
|
109
|
+
* for which "empty" is a state every renderer already handles.
|
|
110
|
+
*
|
|
111
|
+
* Deliberately a closed list rather than "any field": a clear DELETES data from
|
|
112
|
+
* the cache, so the blast radius of a mistaken declaration is bounded here
|
|
113
|
+
* instead of resting on each call site. `username` is absent because an account
|
|
114
|
+
* always has one; `_count` and `relationship` are absent because they are
|
|
115
|
+
* server-derived, never user-emptied — and dropping a viewer `relationship` is
|
|
116
|
+
* the exact "Follows you vanishes" bug this module exists to prevent.
|
|
117
|
+
*
|
|
118
|
+
* Each entry is clearable through a shipped write path: `avatar`, `bio`,
|
|
119
|
+
* `description` and `name.displayName` via `UserProfileUpdate` (`''` clears) and
|
|
120
|
+
* `UpdateAccountInput` (`null` clears avatar/bio; `accountCategories: []`
|
|
121
|
+
* clears the ordered category list), and `color` via its nullable field.
|
|
122
|
+
*/
|
|
123
|
+
export declare const CLEARABLE_USER_FIELDS: readonly ["avatar", "bio", "description", "color", "accountCategories", "name.displayName"];
|
|
124
|
+
/** A field nameable in {@link UpsertCachedUserOptions.cleared}. */
|
|
125
|
+
export type ClearableUserField = (typeof CLEARABLE_USER_FIELDS)[number];
|
|
126
|
+
/**
|
|
127
|
+
* Fields the caller deliberately emptied in a `PUT /users/me` patch. The wire
|
|
128
|
+
* response omits cleared scalars, so the cache needs this list to drop stale
|
|
129
|
+
* values immediately instead of waiting for a refetch that merges the same
|
|
130
|
+
* sparse payload.
|
|
131
|
+
*/
|
|
132
|
+
export declare function clearedFieldsFromProfileUpdate(updates: UserProfileUpdate): ClearableUserField[];
|
|
133
|
+
/**
|
|
134
|
+
* Same contract as {@link clearedFieldsFromProfileUpdate} for managed-account
|
|
135
|
+
* `PATCH /accounts/:id` writes (`null` clears avatar/bio/category).
|
|
136
|
+
*/
|
|
137
|
+
export declare function clearedFieldsFromAccountUpdate(input: UpdateAccountInput): ClearableUserField[];
|
|
138
|
+
/** Options for {@link upsertCachedUser}. */
|
|
139
|
+
export interface UpsertCachedUserOptions {
|
|
140
|
+
/**
|
|
141
|
+
* Fields the write that produced this user DELIBERATELY emptied. For each,
|
|
142
|
+
* an incoming empty value stops meaning "this source does not carry it" and
|
|
143
|
+
* starts meaning "it is empty" — so the stale value is dropped rather than
|
|
144
|
+
* preserved. Everything not named here keeps the anti-degradation guard.
|
|
145
|
+
*/
|
|
146
|
+
cleared?: readonly ClearableUserField[];
|
|
147
|
+
}
|
|
79
148
|
/**
|
|
80
149
|
* Merge-upsert a (possibly partial) user into the SDK's user query cache under
|
|
81
150
|
* both the by-id key and, when a username is present, the viewer-scoped
|
|
@@ -85,12 +154,20 @@ export interface CacheableUser {
|
|
|
85
154
|
* @param user A `User`-shaped object (may be sparse).
|
|
86
155
|
* @param viewerId The active viewer id for the by-username key. Defaults to
|
|
87
156
|
* the current auth-store user id.
|
|
157
|
+
* @param options `cleared` names the fields the write deliberately emptied
|
|
158
|
+
* — the ONLY way "remove my picture" can propagate, since a
|
|
159
|
+
* cleared field and an uncarried one are byte-identical on
|
|
160
|
+
* the wire (see the module docs).
|
|
88
161
|
*/
|
|
89
|
-
export declare function upsertCachedUser(queryClient: QueryClient, user: CacheableUser, viewerId?: string): void;
|
|
162
|
+
export declare function upsertCachedUser(queryClient: QueryClient, user: CacheableUser, viewerId?: string, options?: UpsertCachedUserOptions): void;
|
|
90
163
|
/**
|
|
91
164
|
* Batch merge-upsert many users at once (for a feed / list / search response).
|
|
92
165
|
* Resolves the viewer id once and upserts each user cumulatively — a user that
|
|
93
166
|
* appears twice merges both slices into the single cache entry.
|
|
167
|
+
*
|
|
168
|
+
* Takes NO `cleared`, deliberately: a batch is a multi-user projection, so it is
|
|
169
|
+
* exactly the sparse source the anti-degradation guard exists for, and one
|
|
170
|
+
* declaration could not be true of every user in the array anyway.
|
|
94
171
|
*/
|
|
95
172
|
export declare function upsertCachedUsers(queryClient: QueryClient, users: readonly CacheableUser[] | null | undefined, viewerId?: string): void;
|
|
96
173
|
//# sourceMappingURL=userCache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCache.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/queries/userCache.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"userCache.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/queries/userCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACjC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,qEAAqE;IACrE,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D;;;;OAIG;IACH,YAAY,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACtE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAKD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qBAAqB,6FAOxB,CAAC;AAEX,mEAAmE;AACnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,iBAAiB,GACxB,kBAAkB,EAAE,CAsBtB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC7C,KAAK,EAAE,kBAAkB,GACvB,kBAAkB,EAAE,CAuBtB;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACvC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACxC;AAgQD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC/B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,aAAa,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAC/B,IAAI,CAyBN;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAChC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,IAAI,GAAG,SAAS,EAClD,QAAQ,CAAC,EAAE,MAAM,GACf,IAAI,CAMN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountSettingsScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountSettingsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AccountSettingsScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountSettingsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAgB3D;;;;;;GAMG;AACH,QAAA,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA6OpD,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateAccountScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/CreateAccountScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateAccountScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/CreateAccountScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAmG3D;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkVlD,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatarUtils.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/avatarUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"avatarUtils.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/avatarUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOzD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GACvB,IAAI,CAON;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAyCf"}
|
|
@@ -46,8 +46,8 @@ export { createProfileMutation, createGenericMutation, } from './ui/hooks/mutati
|
|
|
46
46
|
export type { ProfileMutationConfig, GenericMutationConfig, } from './ui/hooks/mutations/mutationFactory.js';
|
|
47
47
|
export { mutationKeys } from './ui/hooks/mutations/mutationKeys.js';
|
|
48
48
|
export { queryKeys, invalidateAccountQueries, invalidateUserQueries, invalidateSessionQueries, invalidateDeviceQueries, invalidatePrivacyQueries, invalidateSecurityQueries, invalidateStorageQueries, invalidatePaymentsQueries, invalidateConnectedAppsQueries, invalidateAuthMethodsQueries, } from './ui/hooks/queries/queryKeys.js';
|
|
49
|
-
export { upsertCachedUser, upsertCachedUsers } from './ui/hooks/queries/userCache.js';
|
|
50
|
-
export type { CacheableUser } from './ui/hooks/queries/userCache.js';
|
|
49
|
+
export { upsertCachedUser, upsertCachedUsers, CLEARABLE_USER_FIELDS, clearedFieldsFromProfileUpdate, clearedFieldsFromAccountUpdate, } from './ui/hooks/queries/userCache.js';
|
|
50
|
+
export type { CacheableUser, ClearableUserField, UpsertCachedUserOptions, } from './ui/hooks/queries/userCache.js';
|
|
51
51
|
export { useMutationStatus } from './ui/hooks/useMutationStatus.js';
|
|
52
52
|
export type { MutationStatus } from './ui/hooks/useMutationStatus.js';
|
|
53
53
|
export { useOnlineStatus } from './ui/hooks/useOnlineStatus.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAYH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAA6B,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAAyB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,4BAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAoB,CAAC;AAC7C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAoB,CAAC;AAIhF,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAA8B,CAAC;AAKzE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA0B,CAAC;AAC3D,OAAO,EACH,aAAa,EACb,SAAS,IAAI,cAAc,EAC3B,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACnB,MAAM,2BAAwB,CAAC;AAKhC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,yBAAsB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAA+B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,yBAAsB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,0BAAuB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAAuB,CAAC;AAKjF,OAAO,EACH,cAAc,EACd,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACnB,MAAM,yCAAsC,CAAC;AAC9C,OAAO,EACH,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,GACzB,MAAM,0CAAuC,CAAC;AAC/C,OAAO,EACH,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,0CAAuC,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAmC,CAAC;AACnE,OAAO,EACH,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,yBAAyB,GAC5B,MAAM,yCAAsC,CAAC;AAG9C,YAAY,EACR,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,GAC7B,MAAM,oCAAiC,CAAC;AAKzC,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,GAChB,MAAM,6CAA0C,CAAC;AAClD,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,eAAe,GAClB,MAAM,8CAA2C,CAAC;AACnD,OAAO,EACH,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,yCAAsC,CAAC;AAC9C,YAAY,EACR,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,yCAAsC,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAmC,CAAC;AAQjE,OAAO,EACH,SAAS,EACT,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,GAC/B,MAAM,iCAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,12 @@ import type React from 'react';
|
|
|
15
15
|
import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
|
|
16
16
|
import type { CommonsDeliveryRoute, SignInProgress } from '@oxyhq/core';
|
|
17
17
|
import type { Theme, Translate } from './types.js';
|
|
18
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* The indeterminate leading visual: the request exists but has nothing to show yet.
|
|
20
|
+
* Uses RN's ActivityIndicator — `@oxyhq/bloom/loading` can tree-shake to `undefined`
|
|
21
|
+
* in rolldown-vite production bundles when co-imported with `@oxyhq/bloom/button`
|
|
22
|
+
* (auth.oxy.so/authorize blank screen, React #130).
|
|
23
|
+
*/
|
|
19
24
|
export declare const PreparingSurface: React.FC;
|
|
20
25
|
/** The leading glyph for a route whose surface is elsewhere (the phone, Commons). */
|
|
21
26
|
export declare const RouteGlyph: React.FC<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestSurfaces.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/authChooser/requestSurfaces.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,sBAAsB,MAAM,2CAA2C,CAAC;AAK/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAS,CAAC;AAShD
|
|
1
|
+
{"version":3,"file":"requestSurfaces.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/authChooser/requestSurfaces.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,sBAAsB,MAAM,2CAA2C,CAAC;AAK/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAS,CAAC;AAShD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAGpC,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,OAAO,sBAAsB,CAAC,QAAQ,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;CACf,CAEA,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,CAAC,EAAE,SAAS,CAAA;CAAE,CAa7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,KAAK,CAAC;IACb,CAAC,EAAE,SAAS,CAAC;IACb,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAcA,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,CAAC,EAAE,SAAS,CAAC;CACd,CAmBA,CAAC"}
|
|
@@ -208,7 +208,7 @@ export declare const useUpdateAccountSettings: () => {
|
|
|
208
208
|
};
|
|
209
209
|
isManagedAccount?: boolean;
|
|
210
210
|
managedBy?: string;
|
|
211
|
-
|
|
211
|
+
accountCategories?: import("@oxyhq/contracts").AccountCategoryId[];
|
|
212
212
|
languages?: string[];
|
|
213
213
|
notificationPreferences?: NotificationPreferences;
|
|
214
214
|
userPreferences?: UserPreferences;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccountMutations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/mutations/useAccountMutations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,IAAI,EACJ,eAAe,EAChB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useAccountMutations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/mutations/useAccountMutations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,IAAI,EACJ,eAAe,EAChB,MAAM,aAAa,CAAC;AAoBrB;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;aAioBrB,CAAC;YAAkC,CAAC;mBACtC,CAAF;;aAMc,CAAC;YAAkC,CAAC;mBAE7B,CAAC;;;;;;;;;;;;;;;;;;;;;mBAwBsN,CAAC;UAAgC,CAAC;aAAmC,CAAC;aAAmC,CAAC;;;mBAAuE,CAAC;UAAgC,CAAC;aAAmC,CAAC;aAAmC,CAAC;;;;;;;;;;EAxjB1gB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;SAMQ,MAAM;WAAS,MAAM;WAAS,MAAM;WAAS,MAAM;;;EA4EtF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,UAAU,8BAA8B;IACtC,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC;;;;OAIG;IACH,WAAW,EAAE,IAAI,CAAC;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB;sBAoFf,OAAO,CAAC,eAAe,CAAC,KAAG,IAAI;2BAQpB,OAAO,CAAC,eAAe,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;sBARnD,OAAO,CAAC,eAAe,CAAC,KAAG,IAAI;2BAQpB,OAAO,CAAC,eAAe,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;sBARnD,OAAO,CAAC,eAAe,CAAC,KAAG,IAAI;2BAQpB,OAAO,CAAC,eAAe,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;sBARnD,OAAO,CAAC,eAAe,CAAC,KAAG,IAAI;2BAQpB,OAAO,CAAC,eAAe,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;iBA7O9D,CAAC;uBAA6B,CAAC;iBAAuB,CAAC;cAC/C,CAAC;;;qBACK,CAAC;qBAA2B,CAAC;;;;;;;;;;;oBA+BR,CAAC;kBAAwB,CAAC;mBACnD,CAAC;;;mBAEG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;CAiNzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;cAMoB,OAAO,CAAC,eAAe,CAAC;aAAW,MAAM;;;;cAgJjG,CAAC;AAEF,4CAA4C;AAC5C,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CACxI;AAED,4EAA4E;AAC5E,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,eAAO,MAAM,gCAAgC;;EAmD5C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;EA+CpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,uFAoBjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa;UAWd,gBAAgB;iBACT,SAAS,GAAG,QAAQ,GAAG,UAAU;eACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;iBACrB,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;WAS5C,CAAC"}
|
|
@@ -36,9 +36,37 @@
|
|
|
36
36
|
* never overwritten by a degraded/empty one (empty username, the
|
|
37
37
|
* `'Unknown user'` ghost-author sentinel, `null` avatar).
|
|
38
38
|
*
|
|
39
|
+
* EXPRESSING A DELIBERATE CLEAR ("remove my picture")
|
|
40
|
+
* ---------------------------------------------------
|
|
41
|
+
* The anti-degradation rule above is right for a sparse source and wrong for a
|
|
42
|
+
* user who just emptied the field — and the two are NOT distinguishable from the
|
|
43
|
+
* payload. Measured against oxy-api's canonical serializer (`formatUserResponse`
|
|
44
|
+
* in `packages/api/src/utils/userTransform.ts`, which passes every field through
|
|
45
|
+
* `typeof value === 'string' ? value : undefined`): an account whose avatar,
|
|
46
|
+
* bio and display name were all just CLEARED serializes to
|
|
47
|
+
* `{"id":…,"publicKey":…,"username":…,"name":{},"languages":[]}` — byte-identical
|
|
48
|
+
* to the same account read as a sparse projection. There is no `null` and no
|
|
49
|
+
* `''` on the wire to key on. The information that a field was deliberately
|
|
50
|
+
* emptied exists ONLY at the call site that performed the write.
|
|
51
|
+
*
|
|
52
|
+
* So the caller declares it: `upsertCachedUser(qc, user, viewerId, { cleared:
|
|
53
|
+
* ['avatar'] })`. For a declared field an incoming EMPTY value means the field
|
|
54
|
+
* IS empty and the stale value is dropped; a MEANINGFUL incoming value still
|
|
55
|
+
* wins as usual (so `{ cleared: ['name.displayName'] }` on a personal account,
|
|
56
|
+
* where clearing the explicit name makes the server return the COMPOSED one,
|
|
57
|
+
* keeps the composed name rather than blanking it).
|
|
58
|
+
*
|
|
59
|
+
* A blanket "this source is authoritative, treat every absent field as cleared"
|
|
60
|
+
* flag was considered and rejected: because the two payloads are byte-identical,
|
|
61
|
+
* such a flag is an unverifiable promise about provenance, and the failure mode
|
|
62
|
+
* of getting it wrong is blanking real identity data in every Oxy app. Naming
|
|
63
|
+
* the fields states something the caller actually observed — which fields the
|
|
64
|
+
* user emptied — and bounds the damage to exactly those.
|
|
65
|
+
*
|
|
39
66
|
* It is a cache write only — zero network, one `setQueryData` per key.
|
|
40
67
|
*/
|
|
41
|
-
import type { UserNameResponse } from "@oxyhq/contracts";
|
|
68
|
+
import type { UserNameResponse, UserProfileUpdate } from "@oxyhq/contracts";
|
|
69
|
+
import type { UpdateAccountInput } from "@oxyhq/core";
|
|
42
70
|
import type { QueryClient } from "@tanstack/react-query";
|
|
43
71
|
/**
|
|
44
72
|
* A user-shaped object that can be upserted into the cache. Intentionally
|
|
@@ -76,6 +104,47 @@ export interface CacheableUser {
|
|
|
76
104
|
} | null;
|
|
77
105
|
[key: string]: unknown;
|
|
78
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* The profile fields a user can genuinely EMPTY through a real Oxy write, and
|
|
109
|
+
* for which "empty" is a state every renderer already handles.
|
|
110
|
+
*
|
|
111
|
+
* Deliberately a closed list rather than "any field": a clear DELETES data from
|
|
112
|
+
* the cache, so the blast radius of a mistaken declaration is bounded here
|
|
113
|
+
* instead of resting on each call site. `username` is absent because an account
|
|
114
|
+
* always has one; `_count` and `relationship` are absent because they are
|
|
115
|
+
* server-derived, never user-emptied — and dropping a viewer `relationship` is
|
|
116
|
+
* the exact "Follows you vanishes" bug this module exists to prevent.
|
|
117
|
+
*
|
|
118
|
+
* Each entry is clearable through a shipped write path: `avatar`, `bio`,
|
|
119
|
+
* `description` and `name.displayName` via `UserProfileUpdate` (`''` clears) and
|
|
120
|
+
* `UpdateAccountInput` (`null` clears avatar/bio; `accountCategories: []`
|
|
121
|
+
* clears the ordered category list), and `color` via its nullable field.
|
|
122
|
+
*/
|
|
123
|
+
export declare const CLEARABLE_USER_FIELDS: readonly ["avatar", "bio", "description", "color", "accountCategories", "name.displayName"];
|
|
124
|
+
/** A field nameable in {@link UpsertCachedUserOptions.cleared}. */
|
|
125
|
+
export type ClearableUserField = (typeof CLEARABLE_USER_FIELDS)[number];
|
|
126
|
+
/**
|
|
127
|
+
* Fields the caller deliberately emptied in a `PUT /users/me` patch. The wire
|
|
128
|
+
* response omits cleared scalars, so the cache needs this list to drop stale
|
|
129
|
+
* values immediately instead of waiting for a refetch that merges the same
|
|
130
|
+
* sparse payload.
|
|
131
|
+
*/
|
|
132
|
+
export declare function clearedFieldsFromProfileUpdate(updates: UserProfileUpdate): ClearableUserField[];
|
|
133
|
+
/**
|
|
134
|
+
* Same contract as {@link clearedFieldsFromProfileUpdate} for managed-account
|
|
135
|
+
* `PATCH /accounts/:id` writes (`null` clears avatar/bio/category).
|
|
136
|
+
*/
|
|
137
|
+
export declare function clearedFieldsFromAccountUpdate(input: UpdateAccountInput): ClearableUserField[];
|
|
138
|
+
/** Options for {@link upsertCachedUser}. */
|
|
139
|
+
export interface UpsertCachedUserOptions {
|
|
140
|
+
/**
|
|
141
|
+
* Fields the write that produced this user DELIBERATELY emptied. For each,
|
|
142
|
+
* an incoming empty value stops meaning "this source does not carry it" and
|
|
143
|
+
* starts meaning "it is empty" — so the stale value is dropped rather than
|
|
144
|
+
* preserved. Everything not named here keeps the anti-degradation guard.
|
|
145
|
+
*/
|
|
146
|
+
cleared?: readonly ClearableUserField[];
|
|
147
|
+
}
|
|
79
148
|
/**
|
|
80
149
|
* Merge-upsert a (possibly partial) user into the SDK's user query cache under
|
|
81
150
|
* both the by-id key and, when a username is present, the viewer-scoped
|
|
@@ -85,12 +154,20 @@ export interface CacheableUser {
|
|
|
85
154
|
* @param user A `User`-shaped object (may be sparse).
|
|
86
155
|
* @param viewerId The active viewer id for the by-username key. Defaults to
|
|
87
156
|
* the current auth-store user id.
|
|
157
|
+
* @param options `cleared` names the fields the write deliberately emptied
|
|
158
|
+
* — the ONLY way "remove my picture" can propagate, since a
|
|
159
|
+
* cleared field and an uncarried one are byte-identical on
|
|
160
|
+
* the wire (see the module docs).
|
|
88
161
|
*/
|
|
89
|
-
export declare function upsertCachedUser(queryClient: QueryClient, user: CacheableUser, viewerId?: string): void;
|
|
162
|
+
export declare function upsertCachedUser(queryClient: QueryClient, user: CacheableUser, viewerId?: string, options?: UpsertCachedUserOptions): void;
|
|
90
163
|
/**
|
|
91
164
|
* Batch merge-upsert many users at once (for a feed / list / search response).
|
|
92
165
|
* Resolves the viewer id once and upserts each user cumulatively — a user that
|
|
93
166
|
* appears twice merges both slices into the single cache entry.
|
|
167
|
+
*
|
|
168
|
+
* Takes NO `cleared`, deliberately: a batch is a multi-user projection, so it is
|
|
169
|
+
* exactly the sparse source the anti-degradation guard exists for, and one
|
|
170
|
+
* declaration could not be true of every user in the array anyway.
|
|
94
171
|
*/
|
|
95
172
|
export declare function upsertCachedUsers(queryClient: QueryClient, users: readonly CacheableUser[] | null | undefined, viewerId?: string): void;
|
|
96
173
|
//# sourceMappingURL=userCache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCache.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/queries/userCache.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"userCache.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/queries/userCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACjC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,qEAAqE;IACrE,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D;;;;OAIG;IACH,YAAY,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACtE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAKD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qBAAqB,6FAOxB,CAAC;AAEX,mEAAmE;AACnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,iBAAiB,GACxB,kBAAkB,EAAE,CAsBtB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC7C,KAAK,EAAE,kBAAkB,GACvB,kBAAkB,EAAE,CAuBtB;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACvC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACxC;AAgQD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC/B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,aAAa,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAC/B,IAAI,CAyBN;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAChC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,IAAI,GAAG,SAAS,EAClD,QAAQ,CAAC,EAAE,MAAM,GACf,IAAI,CAMN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountSettingsScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountSettingsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AccountSettingsScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountSettingsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAgB3D;;;;;;GAMG;AACH,QAAA,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA6OpD,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateAccountScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/CreateAccountScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateAccountScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/CreateAccountScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAmG3D;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkVlD,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatarUtils.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/avatarUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"avatarUtils.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/avatarUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOzD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GACvB,IAAI,CAON;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAyCf"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/services",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "27.0.0",
|
|
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",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
}
|
|
139
139
|
},
|
|
140
140
|
"dependencies": {
|
|
141
|
-
"@oxyhq/contracts": "0.
|
|
141
|
+
"@oxyhq/contracts": "0.23.0",
|
|
142
142
|
"@simplewebauthn/browser": "^13.3.0",
|
|
143
143
|
"color": "^4.2.3"
|
|
144
144
|
},
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
"@commitlint/cli": "^21.2.1",
|
|
148
148
|
"@commitlint/config-conventional": "^21.2.0",
|
|
149
149
|
"@expo/vector-icons": "^15.0.3",
|
|
150
|
-
"@oxyhq/core": "
|
|
150
|
+
"@oxyhq/core": "19.0.0",
|
|
151
151
|
"@react-native-async-storage/async-storage": "^2.0.0",
|
|
152
152
|
"@react-native-community/netinfo": "^11.4.1",
|
|
153
153
|
"@react-native/babel-preset": "^0.86.0",
|
|
@@ -190,7 +190,7 @@
|
|
|
190
190
|
"peerDependencies": {
|
|
191
191
|
"@expo/vector-icons": "^15.0.3",
|
|
192
192
|
"@oxyhq/bloom": ">=0.59.0",
|
|
193
|
-
"@oxyhq/core": "^
|
|
193
|
+
"@oxyhq/core": "^19.0.0",
|
|
194
194
|
"@react-native-async-storage/async-storage": "^2.0.0",
|
|
195
195
|
"@react-native-community/netinfo": ">=11.4.1",
|
|
196
196
|
"@tanstack/query-async-storage-persister": "^5.101",
|
package/src/index.ts
CHANGED
|
@@ -173,9 +173,21 @@ export {
|
|
|
173
173
|
// SDK's user query cache under both keys it owns (by-id + viewer-scoped
|
|
174
174
|
// by-username). Consumers route ALL cache seeds (feed / list / search / profile
|
|
175
175
|
// hydration) through this so a sparse source can never strip a field an
|
|
176
|
-
// authoritative fetch already stored.
|
|
177
|
-
|
|
178
|
-
|
|
176
|
+
// authoritative fetch already stored. A write that DELIBERATELY empties a field
|
|
177
|
+
// ("remove my picture") says so with `{ cleared: [...] }` — the payload cannot
|
|
178
|
+
// express it, see the module docs.
|
|
179
|
+
export {
|
|
180
|
+
upsertCachedUser,
|
|
181
|
+
upsertCachedUsers,
|
|
182
|
+
CLEARABLE_USER_FIELDS,
|
|
183
|
+
clearedFieldsFromProfileUpdate,
|
|
184
|
+
clearedFieldsFromAccountUpdate,
|
|
185
|
+
} from './ui/hooks/queries/userCache';
|
|
186
|
+
export type {
|
|
187
|
+
CacheableUser,
|
|
188
|
+
ClearableUserField,
|
|
189
|
+
UpsertCachedUserOptions,
|
|
190
|
+
} from './ui/hooks/queries/userCache';
|
|
179
191
|
|
|
180
192
|
// Mutation status aggregator (for "Syncing..." indicators)
|
|
181
193
|
export { useMutationStatus } from './ui/hooks/useMutationStatus';
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import type React from 'react';
|
|
16
|
-
import { View } from 'react-native';
|
|
16
|
+
import { ActivityIndicator, View } from 'react-native';
|
|
17
17
|
import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
|
|
18
18
|
import QRCode from 'react-native-qrcode-svg';
|
|
19
19
|
import { Button } from '@oxyhq/bloom/button';
|
|
20
|
-
import {
|
|
20
|
+
import { useTheme } from '@oxyhq/bloom/theme';
|
|
21
21
|
import { Text } from '@oxyhq/bloom/typography';
|
|
22
22
|
import type { CommonsDeliveryRoute, SignInProgress } from '@oxyhq/core';
|
|
23
23
|
import { authChooserStyles as styles } from './styles';
|
|
@@ -30,8 +30,16 @@ const QR_SIZE = 196;
|
|
|
30
30
|
/** The leading route glyph, sized to sit where the QR plate otherwise would. */
|
|
31
31
|
const ROUTE_GLYPH_SIZE = 44;
|
|
32
32
|
|
|
33
|
-
/**
|
|
34
|
-
|
|
33
|
+
/**
|
|
34
|
+
* The indeterminate leading visual: the request exists but has nothing to show yet.
|
|
35
|
+
* Uses RN's ActivityIndicator — `@oxyhq/bloom/loading` can tree-shake to `undefined`
|
|
36
|
+
* in rolldown-vite production bundles when co-imported with `@oxyhq/bloom/button`
|
|
37
|
+
* (auth.oxy.so/authorize blank screen, React #130).
|
|
38
|
+
*/
|
|
39
|
+
export const PreparingSurface: React.FC = () => {
|
|
40
|
+
const theme = useTheme();
|
|
41
|
+
return <ActivityIndicator size="large" color={theme.colors.primary} />;
|
|
42
|
+
};
|
|
35
43
|
|
|
36
44
|
/** The leading glyph for a route whose surface is elsewhere (the phone, Commons). */
|
|
37
45
|
export const RouteGlyph: React.FC<{
|
|
@@ -20,6 +20,11 @@ import { useOxy } from '../../context/OxyContext';
|
|
|
20
20
|
import { toast } from '@oxyhq/bloom/toast';
|
|
21
21
|
import { refreshAvatarInStore } from '../../utils/avatarUtils';
|
|
22
22
|
import { useAuthStore } from '../../stores/authStore';
|
|
23
|
+
import { useAccountStore } from '../../stores/accountStore';
|
|
24
|
+
import {
|
|
25
|
+
clearedFieldsFromProfileUpdate,
|
|
26
|
+
upsertCachedUser,
|
|
27
|
+
} from '../queries/userCache';
|
|
23
28
|
|
|
24
29
|
/**
|
|
25
30
|
* Update user profile with optimistic updates and offline queue support
|
|
@@ -104,9 +109,21 @@ export const useUpdateProfile = () => {
|
|
|
104
109
|
// Update authStore so frontend components see the changes immediately
|
|
105
110
|
useAuthStore.getState().setUser(data);
|
|
106
111
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
112
|
+
const cleared = clearedFieldsFromProfileUpdate(updates);
|
|
113
|
+
upsertCachedUser(queryClient, data, data.id, {
|
|
114
|
+
cleared: cleared.length > 0 ? cleared : undefined,
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
// Avatar add/remove: keep the account switcher in sync with profile writes
|
|
118
|
+
if (typeof updates.avatar === 'string' && activeSessionId) {
|
|
119
|
+
if (updates.avatar && oxyServices) {
|
|
120
|
+
refreshAvatarInStore(activeSessionId, updates.avatar, oxyServices);
|
|
121
|
+
} else {
|
|
122
|
+
useAccountStore.getState().updateAccount(activeSessionId, {
|
|
123
|
+
avatar: undefined,
|
|
124
|
+
avatarUrl: undefined,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
110
127
|
}
|
|
111
128
|
|
|
112
129
|
// Invalidate all related queries so every consumer (the account dialog,
|