@oxyhq/services 5.17.13 → 5.17.14
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 +30 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +42 -9
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +40 -12
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +13 -2
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/commonjs/ui/stores/accountStore.js +4 -2
- package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
- package/lib/commonjs/ui/utils/avatarUtils.js +35 -3
- package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +43 -10
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +41 -13
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/module/ui/hooks/queries/useAccountQueries.js +13 -2
- package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/module/ui/stores/accountStore.js +4 -2
- package/lib/module/ui/stores/accountStore.js.map +1 -1
- package/lib/module/ui/utils/avatarUtils.js +34 -3
- package/lib/module/ui/utils/avatarUtils.js.map +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
- package/lib/typescript/ui/utils/avatarUtils.d.ts +10 -0
- package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +9 -1
- package/src/ui/context/OxyContext.tsx +45 -9
- package/src/ui/hooks/mutations/useAccountMutations.ts +46 -13
- package/src/ui/hooks/queries/useAccountQueries.ts +10 -1
- package/src/ui/stores/accountStore.ts +11 -1
- package/src/ui/utils/avatarUtils.ts +41 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,OAAO,EACL,UAAU,EACV,MAAM,EACN,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC;AAgCzD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,OAAO,EACL,UAAU,EACV,MAAM,EACN,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC;AAgCzD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAkgBzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,mCAAc,CAAC;AAE9C,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccountMutations.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/mutations/useAccountMutations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAUvD;;GAEG;AACH,eAAO,MAAM,gBAAgB;;
|
|
1
|
+
{"version":3,"file":"useAccountMutations.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/mutations/useAccountMutations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAUvD;;GAEG;AACH,eAAO,MAAM,gBAAgB;;EA0G5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;SAKQ,MAAM;WAAS,MAAM;WAAS,MAAM;WAAS,MAAM;;;EA0FtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;EAwCpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;cAKoB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;aAAW,MAAM;;;;cAwG5F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa;UAUd,IAAI;iBACG,SAAS,GAAG,QAAQ,GAAG,UAAU;eACnC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;iBACjB,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;WA4B5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccountQueries.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/queries/useAccountQueries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAKvD;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAevF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,yEAepF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"useAccountQueries.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/queries/useAccountQueries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAKvD;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAevF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,yEAepF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAwB7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAejF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAezF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,EAAE,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;;;WAevF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,+DA2ClF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountStore.d.ts","sourceRoot":"","sources":["../../../../src/ui/stores/accountStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,YAAY;IAElB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,YAAY,EAAE,CAAC;IAG9B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAG/B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAGrB,WAAW,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAC3E,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAG9C,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAGjE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAGzC,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,YAAY,EAAE,EAAE,aAAa,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG5I,KAAK,EAAE,MAAM,IAAI,CAAC;CACrB;AA4CD,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"accountStore.d.ts","sourceRoot":"","sources":["../../../../src/ui/stores/accountStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,YAAY;IAElB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,YAAY,EAAE,CAAC;IAG9B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAG/B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAGrB,WAAW,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAC3E,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAG9C,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAGjE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAGzC,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,YAAY,EAAE,EAAE,aAAa,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG5I,KAAK,EAAE,MAAM,IAAI,CAAC;CACrB;AA4CD,eAAO,MAAM,eAAe,2EA6MzB,CAAC;AAGJ,eAAO,MAAM,WAAW,QAAO,YAAY,EAE1C,CAAC;AAEF,eAAO,MAAM,iBAAiB,eAAwC,CAAC;AACvE,eAAO,MAAM,eAAe,qBAAsC,CAAC;AACnE,eAAO,MAAM,wBAAwB,GAAI,WAAW,MAAM,YACE,CAAC"}
|
|
@@ -12,6 +12,7 @@ import { QueryClient } from '@tanstack/react-query';
|
|
|
12
12
|
*/
|
|
13
13
|
export declare function updateAvatarVisibility(fileId: string | undefined, oxyServices: OxyServices, contextName?: string): Promise<void>;
|
|
14
14
|
/**
|
|
15
|
+
* @deprecated Use refreshAccountInStore instead for full profile sync
|
|
15
16
|
* Refreshes avatar in accountStore with cache-busted URL to force image reload.
|
|
16
17
|
*
|
|
17
18
|
* @param sessionId - The session ID for the account to update
|
|
@@ -19,6 +20,15 @@ export declare function updateAvatarVisibility(fileId: string | undefined, oxySe
|
|
|
19
20
|
* @param oxyServices - OxyServices instance to generate download URL
|
|
20
21
|
*/
|
|
21
22
|
export declare function refreshAvatarInStore(sessionId: string, avatarFileId: string, oxyServices: OxyServices): void;
|
|
23
|
+
/**
|
|
24
|
+
* Refreshes all user profile data in accountStore (username, displayName, avatar).
|
|
25
|
+
* This ensures accountStore stays in sync with profile changes.
|
|
26
|
+
*
|
|
27
|
+
* @param sessionId - The session ID for the account to update
|
|
28
|
+
* @param userData - The updated user data
|
|
29
|
+
* @param oxyServices - OxyServices instance to generate download URL
|
|
30
|
+
*/
|
|
31
|
+
export declare function refreshAccountInStore(sessionId: string, userData: Partial<User>, oxyServices: OxyServices): void;
|
|
22
32
|
/**
|
|
23
33
|
* Updates user profile with avatar and handles all side effects (query invalidation, accountStore update).
|
|
24
34
|
* This function can be used from within OxyContext provider without requiring useOxy hook.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatarUtils.d.ts","sourceRoot":"","sources":["../../../../src/ui/utils/avatarUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED
|
|
1
|
+
{"version":3,"file":"avatarUtils.d.ts","sourceRoot":"","sources":["../../../../src/ui/utils/avatarUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GACvB,IAAI,CAON;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,EACvB,WAAW,EAAE,WAAW,GACvB,IAAI,CAuBN;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EACtB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,OAAO,CAAC,IAAI,CAAC,CAyCf"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/services",
|
|
3
|
-
"version": "5.17.
|
|
3
|
+
"version": "5.17.14",
|
|
4
4
|
"description": "Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
package/src/index.ts
CHANGED
|
@@ -193,4 +193,12 @@ export {
|
|
|
193
193
|
logPerformance
|
|
194
194
|
} from './utils/loggerUtils';
|
|
195
195
|
export * from './utils/asyncUtils';
|
|
196
|
-
export * from './utils/hookUtils';
|
|
196
|
+
export * from './utils/hookUtils';
|
|
197
|
+
|
|
198
|
+
// Avatar and account utilities
|
|
199
|
+
export {
|
|
200
|
+
refreshAvatarInStore,
|
|
201
|
+
refreshAccountInStore,
|
|
202
|
+
updateAvatarVisibility,
|
|
203
|
+
updateProfileWithAvatar
|
|
204
|
+
} from './ui/utils/avatarUtils';
|
|
@@ -28,7 +28,7 @@ import type { RouteName } from '../navigation/routes';
|
|
|
28
28
|
import { showBottomSheet as globalShowBottomSheet } from '../navigation/bottomSheetManager';
|
|
29
29
|
import { getStorageKeys } from '../utils/storageHelpers';
|
|
30
30
|
import { isInvalidSessionError, isTimeoutOrNetworkError } from '../utils/errorHandlers';
|
|
31
|
-
import {
|
|
31
|
+
import { refreshAccountInStore } from '../utils/avatarUtils';
|
|
32
32
|
import { useShallow } from 'zustand/react/shallow';
|
|
33
33
|
|
|
34
34
|
import {
|
|
@@ -174,39 +174,75 @@ export const OxyProvider: React.FC<OxyContextProviderProps> = ({
|
|
|
174
174
|
queryClient,
|
|
175
175
|
});
|
|
176
176
|
|
|
177
|
-
const { data: userData } = useQuery({
|
|
177
|
+
const { data: userData, refetch: refetchUser } = useQuery({
|
|
178
178
|
queryKey: queryKeys.accounts.current(),
|
|
179
179
|
queryFn: async () => {
|
|
180
|
+
if (__DEV__) {
|
|
181
|
+
console.log('[OxyContext] Fetching user data for session:', activeSessionId);
|
|
182
|
+
}
|
|
180
183
|
if (!activeSessionId) {
|
|
181
184
|
throw new Error('No active session');
|
|
182
185
|
}
|
|
183
|
-
|
|
186
|
+
const data = await oxyServices.getUserBySession(activeSessionId);
|
|
187
|
+
if (__DEV__) {
|
|
188
|
+
console.log('[OxyContext] User data fetched:', data.username, data.name);
|
|
189
|
+
}
|
|
190
|
+
return data;
|
|
184
191
|
},
|
|
185
192
|
enabled: isAuthenticated && !!activeSessionId && tokenReady,
|
|
186
193
|
staleTime: 0,
|
|
187
194
|
gcTime: 0,
|
|
188
195
|
retry: false,
|
|
196
|
+
refetchOnMount: 'always',
|
|
197
|
+
refetchOnWindowFocus: false,
|
|
189
198
|
});
|
|
190
199
|
const user = userData ?? null;
|
|
191
200
|
|
|
192
201
|
// Update profile mutation - handles cache invalidation automatically
|
|
193
202
|
const updateProfileMutation = useMutation({
|
|
194
203
|
mutationFn: async (updates: Partial<User>) => {
|
|
204
|
+
if (__DEV__) {
|
|
205
|
+
console.log('[OxyContext] Updating profile:', updates);
|
|
206
|
+
}
|
|
195
207
|
return await oxyServices.updateProfile(updates);
|
|
196
208
|
},
|
|
197
|
-
onSuccess: (data, updates) => {
|
|
209
|
+
onSuccess: async (data, updates) => {
|
|
210
|
+
if (__DEV__) {
|
|
211
|
+
console.log('[OxyContext] Profile update successful:', data);
|
|
212
|
+
}
|
|
213
|
+
|
|
198
214
|
// Update cache with server response
|
|
199
215
|
queryClient.setQueryData(queryKeys.accounts.current(), data);
|
|
200
216
|
if (activeSessionId) {
|
|
201
217
|
queryClient.setQueryData(queryKeys.users.profile(activeSessionId), data);
|
|
202
218
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
219
|
+
|
|
220
|
+
// Refresh accountStore with all updated profile data (not just avatar)
|
|
221
|
+
if (activeSessionId && oxyServices) {
|
|
222
|
+
refreshAccountInStore(activeSessionId, data, oxyServices);
|
|
206
223
|
}
|
|
224
|
+
|
|
207
225
|
// Invalidate all related queries to refresh everywhere
|
|
208
|
-
|
|
209
|
-
|
|
226
|
+
await Promise.all([
|
|
227
|
+
invalidateUserQueries(queryClient),
|
|
228
|
+
invalidateAccountQueries(queryClient),
|
|
229
|
+
]);
|
|
230
|
+
|
|
231
|
+
// Force immediate refetch to update UI
|
|
232
|
+
await Promise.all([
|
|
233
|
+
queryClient.refetchQueries({ queryKey: queryKeys.accounts.current(), type: 'active' }),
|
|
234
|
+
refetchUser?.(),
|
|
235
|
+
]);
|
|
236
|
+
|
|
237
|
+
if (__DEV__) {
|
|
238
|
+
console.log('[OxyContext] Profile update complete - cache invalidated and refetched');
|
|
239
|
+
console.log('[OxyContext] Updated user data:', data);
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
onError: (error) => {
|
|
243
|
+
if (__DEV__) {
|
|
244
|
+
console.error('[OxyContext] Profile update failed:', error);
|
|
245
|
+
}
|
|
210
246
|
},
|
|
211
247
|
});
|
|
212
248
|
|
|
@@ -4,7 +4,7 @@ import type { ClientSession } from '../../../models/session';
|
|
|
4
4
|
import { queryKeys, invalidateAccountQueries, invalidateUserQueries } from '../queries/queryKeys';
|
|
5
5
|
import { useOxy } from '../../context/OxyContext';
|
|
6
6
|
import { toast } from '../../../lib/sonner';
|
|
7
|
-
import {
|
|
7
|
+
import { refreshAccountInStore } from '../../utils/avatarUtils';
|
|
8
8
|
|
|
9
9
|
const getDeviceIdForSession = (sessions: ClientSession[] = [], sessionId: string | null) =>
|
|
10
10
|
sessionId ? sessions.find((s) => s.sessionId === sessionId)?.deviceId : undefined;
|
|
@@ -80,21 +80,42 @@ export const useUpdateProfile = () => {
|
|
|
80
80
|
toast.error(error instanceof Error ? error.message : 'Failed to update profile');
|
|
81
81
|
},
|
|
82
82
|
// On success, invalidate and refetch
|
|
83
|
-
onSuccess: (data, updates) => {
|
|
83
|
+
onSuccess: async (data, updates) => {
|
|
84
|
+
if (__DEV__) {
|
|
85
|
+
console.log('[useUpdateProfile] Profile update successful:', data);
|
|
86
|
+
console.log('[useUpdateProfile] Updated fields:', Object.keys(updates));
|
|
87
|
+
}
|
|
88
|
+
|
|
84
89
|
// Update cache with server response
|
|
85
90
|
queryClient.setQueryData(queryKeys.accounts.current(), data);
|
|
86
91
|
if (activeSessionId) {
|
|
87
92
|
queryClient.setQueryData(queryKeys.users.profile(activeSessionId), data);
|
|
88
93
|
}
|
|
89
94
|
|
|
90
|
-
//
|
|
91
|
-
if (
|
|
92
|
-
|
|
95
|
+
// Refresh accountStore with all updated profile data (not just avatar)
|
|
96
|
+
if (activeSessionId && oxyServices) {
|
|
97
|
+
refreshAccountInStore(activeSessionId, data, oxyServices);
|
|
93
98
|
}
|
|
94
99
|
|
|
95
100
|
// Invalidate all related queries to refresh everywhere
|
|
96
|
-
|
|
97
|
-
|
|
101
|
+
await Promise.all([
|
|
102
|
+
invalidateUserQueries(queryClient),
|
|
103
|
+
invalidateAccountQueries(queryClient),
|
|
104
|
+
]);
|
|
105
|
+
|
|
106
|
+
// Force immediate refetch to update UI - refetch ALL active queries
|
|
107
|
+
await queryClient.refetchQueries({
|
|
108
|
+
queryKey: queryKeys.accounts.current(),
|
|
109
|
+
type: 'active',
|
|
110
|
+
exact: false // Also refetch derived queries
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
if (__DEV__) {
|
|
114
|
+
console.log('[useUpdateProfile] Profile update complete - cache invalidated and refetched');
|
|
115
|
+
// Log current cache state
|
|
116
|
+
const currentUser = queryClient.getQueryData(queryKeys.accounts.current());
|
|
117
|
+
console.log('[useUpdateProfile] Current cached user:', currentUser);
|
|
118
|
+
}
|
|
98
119
|
},
|
|
99
120
|
});
|
|
100
121
|
};
|
|
@@ -168,21 +189,33 @@ export const useUploadAvatar = () => {
|
|
|
168
189
|
}
|
|
169
190
|
toast.error(error instanceof Error ? error.message : 'Failed to upload avatar');
|
|
170
191
|
},
|
|
171
|
-
onSuccess: (data) => {
|
|
192
|
+
onSuccess: async (data) => {
|
|
193
|
+
if (__DEV__) {
|
|
194
|
+
console.log('[useUploadAvatar] Avatar upload successful:', data);
|
|
195
|
+
}
|
|
196
|
+
|
|
172
197
|
queryClient.setQueryData(queryKeys.accounts.current(), data);
|
|
173
198
|
if (activeSessionId) {
|
|
174
199
|
queryClient.setQueryData(queryKeys.users.profile(activeSessionId), data);
|
|
175
200
|
}
|
|
176
201
|
|
|
177
|
-
// Refresh accountStore with
|
|
178
|
-
if (
|
|
179
|
-
|
|
202
|
+
// Refresh accountStore with all updated profile data (including avatar)
|
|
203
|
+
if (activeSessionId && oxyServices) {
|
|
204
|
+
refreshAccountInStore(activeSessionId, data, oxyServices);
|
|
180
205
|
}
|
|
181
206
|
|
|
182
207
|
// Invalidate all related queries to refresh everywhere
|
|
183
|
-
invalidateUserQueries(queryClient);
|
|
184
|
-
invalidateAccountQueries(queryClient);
|
|
208
|
+
await invalidateUserQueries(queryClient);
|
|
209
|
+
await invalidateAccountQueries(queryClient);
|
|
210
|
+
|
|
211
|
+
// Explicitly refetch to ensure UI updates
|
|
212
|
+
await queryClient.refetchQueries({ queryKey: queryKeys.accounts.current() });
|
|
213
|
+
|
|
185
214
|
toast.success('Avatar updated successfully');
|
|
215
|
+
|
|
216
|
+
if (__DEV__) {
|
|
217
|
+
console.log('[useUploadAvatar] Avatar update complete - cache invalidated and refetched');
|
|
218
|
+
}
|
|
186
219
|
},
|
|
187
220
|
});
|
|
188
221
|
};
|
|
@@ -53,14 +53,23 @@ export const useCurrentUser = (options?: { enabled?: boolean }) => {
|
|
|
53
53
|
return useQuery({
|
|
54
54
|
queryKey: queryKeys.accounts.current(),
|
|
55
55
|
queryFn: async () => {
|
|
56
|
+
if (__DEV__) {
|
|
57
|
+
console.log('[useCurrentUser] Fetching user data for session:', activeSessionId);
|
|
58
|
+
}
|
|
56
59
|
if (!activeSessionId) {
|
|
57
60
|
throw new Error('No active session');
|
|
58
61
|
}
|
|
59
|
-
|
|
62
|
+
const userData = await oxyServices.getUserBySession(activeSessionId);
|
|
63
|
+
if (__DEV__) {
|
|
64
|
+
console.log('[useCurrentUser] Fetched user:', userData.username, userData.name);
|
|
65
|
+
}
|
|
66
|
+
return userData;
|
|
60
67
|
},
|
|
61
68
|
enabled: (options?.enabled !== false) && isAuthenticated && !!activeSessionId,
|
|
62
69
|
staleTime: 0, // Always fetch fresh - Services never caches profile
|
|
63
70
|
gcTime: 0, // No garbage collection time - always fetch fresh
|
|
71
|
+
refetchOnMount: 'always', // Always refetch on mount
|
|
72
|
+
refetchOnWindowFocus: false,
|
|
64
73
|
});
|
|
65
74
|
};
|
|
66
75
|
|
|
@@ -112,6 +112,8 @@ export const useAccountStore = create<AccountState>((set, get) => ({
|
|
|
112
112
|
return existing &&
|
|
113
113
|
existing.sessionId === newAccount.sessionId &&
|
|
114
114
|
existing.userId === newAccount.userId &&
|
|
115
|
+
existing.username === newAccount.username &&
|
|
116
|
+
existing.displayName === newAccount.displayName &&
|
|
115
117
|
existing.avatar === newAccount.avatar &&
|
|
116
118
|
existing.avatarUrl === newAccount.avatarUrl;
|
|
117
119
|
});
|
|
@@ -150,7 +152,15 @@ export const useAccountStore = create<AccountState>((set, get) => ({
|
|
|
150
152
|
if (!existing) return {} as any;
|
|
151
153
|
|
|
152
154
|
const updated = { ...existing, ...updates };
|
|
153
|
-
|
|
155
|
+
// Check if any meaningful field has changed
|
|
156
|
+
const hasChanges =
|
|
157
|
+
existing.username !== updated.username ||
|
|
158
|
+
existing.displayName !== updated.displayName ||
|
|
159
|
+
existing.avatar !== updated.avatar ||
|
|
160
|
+
existing.avatarUrl !== updated.avatarUrl ||
|
|
161
|
+
existing.userId !== updated.userId;
|
|
162
|
+
|
|
163
|
+
if (!hasChanges) {
|
|
154
164
|
return {} as any; // No change
|
|
155
165
|
}
|
|
156
166
|
|
|
@@ -34,6 +34,7 @@ export async function updateAvatarVisibility(
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
|
+
* @deprecated Use refreshAccountInStore instead for full profile sync
|
|
37
38
|
* Refreshes avatar in accountStore with cache-busted URL to force image reload.
|
|
38
39
|
*
|
|
39
40
|
* @param sessionId - The session ID for the account to update
|
|
@@ -53,6 +54,43 @@ export function refreshAvatarInStore(
|
|
|
53
54
|
});
|
|
54
55
|
}
|
|
55
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Refreshes all user profile data in accountStore (username, displayName, avatar).
|
|
59
|
+
* This ensures accountStore stays in sync with profile changes.
|
|
60
|
+
*
|
|
61
|
+
* @param sessionId - The session ID for the account to update
|
|
62
|
+
* @param userData - The updated user data
|
|
63
|
+
* @param oxyServices - OxyServices instance to generate download URL
|
|
64
|
+
*/
|
|
65
|
+
export function refreshAccountInStore(
|
|
66
|
+
sessionId: string,
|
|
67
|
+
userData: Partial<User>,
|
|
68
|
+
oxyServices: OxyServices
|
|
69
|
+
): void {
|
|
70
|
+
const { updateAccount } = useAccountStore.getState();
|
|
71
|
+
|
|
72
|
+
const displayName = userData.name?.full || userData.name?.first || userData.username || 'Account';
|
|
73
|
+
const avatarUrl = userData.avatar
|
|
74
|
+
? oxyServices.getFileDownloadUrl(userData.avatar, 'thumb') + `?t=${Date.now()}`
|
|
75
|
+
: undefined;
|
|
76
|
+
|
|
77
|
+
if (__DEV__) {
|
|
78
|
+
console.log('[AccountStore] Refreshing account in store:', {
|
|
79
|
+
sessionId,
|
|
80
|
+
username: userData.username,
|
|
81
|
+
displayName,
|
|
82
|
+
avatar: userData.avatar,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
updateAccount(sessionId, {
|
|
87
|
+
username: userData.username,
|
|
88
|
+
displayName,
|
|
89
|
+
avatar: userData.avatar,
|
|
90
|
+
avatarUrl,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
56
94
|
/**
|
|
57
95
|
* Updates user profile with avatar and handles all side effects (query invalidation, accountStore update).
|
|
58
96
|
* This function can be used from within OxyContext provider without requiring useOxy hook.
|
|
@@ -89,9 +127,9 @@ export async function updateProfileWithAvatar(
|
|
|
89
127
|
queryClient.setQueryData(queryKeys.users.profile(activeSessionId), data);
|
|
90
128
|
}
|
|
91
129
|
|
|
92
|
-
//
|
|
93
|
-
if (
|
|
94
|
-
|
|
130
|
+
// Refresh accountStore with all updated profile data
|
|
131
|
+
if (activeSessionId) {
|
|
132
|
+
refreshAccountInStore(activeSessionId, data, oxyServices);
|
|
95
133
|
}
|
|
96
134
|
|
|
97
135
|
// Invalidate all related queries to refresh everywhere
|