@oxyhq/services 5.17.12 → 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.
Files changed (44) hide show
  1. package/lib/commonjs/index.js +30 -1
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/context/OxyContext.js +64 -5
  4. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  5. package/lib/commonjs/ui/context/OxyContextBase.js.map +1 -1
  6. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +40 -12
  7. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  8. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +13 -2
  9. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  10. package/lib/commonjs/ui/stores/accountStore.js +4 -2
  11. package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
  12. package/lib/commonjs/ui/utils/avatarUtils.js +35 -3
  13. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  14. package/lib/module/index.js +3 -0
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/module/ui/context/OxyContext.js +66 -7
  17. package/lib/module/ui/context/OxyContext.js.map +1 -1
  18. package/lib/module/ui/context/OxyContextBase.js.map +1 -1
  19. package/lib/module/ui/hooks/mutations/useAccountMutations.js +41 -13
  20. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  21. package/lib/module/ui/hooks/queries/useAccountQueries.js +13 -2
  22. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  23. package/lib/module/ui/stores/accountStore.js +4 -2
  24. package/lib/module/ui/stores/accountStore.js.map +1 -1
  25. package/lib/module/ui/utils/avatarUtils.js +34 -3
  26. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  27. package/lib/typescript/index.d.ts +1 -0
  28. package/lib/typescript/index.d.ts.map +1 -1
  29. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  30. package/lib/typescript/ui/context/OxyContextBase.d.ts +1 -0
  31. package/lib/typescript/ui/context/OxyContextBase.d.ts.map +1 -1
  32. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  33. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  34. package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
  35. package/lib/typescript/ui/utils/avatarUtils.d.ts +10 -0
  36. package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/src/index.ts +9 -1
  39. package/src/ui/context/OxyContext.tsx +71 -4
  40. package/src/ui/context/OxyContextBase.tsx +1 -0
  41. package/src/ui/hooks/mutations/useAccountMutations.ts +46 -13
  42. package/src/ui/hooks/queries/useAccountQueries.ts +10 -1
  43. package/src/ui/stores/accountStore.ts +11 -1
  44. package/src/ui/utils/avatarUtils.ts +41 -3
@@ -1 +1 @@
1
- {"version":3,"names":["useAccountStore","queryKeys","invalidateUserQueries","invalidateAccountQueries","updateAvatarVisibility","fileId","oxyServices","contextName","startsWith","assetUpdateVisibility","visError","refreshAvatarInStore","sessionId","avatarFileId","updateAccount","getState","cacheBustedUrl","getFileDownloadUrl","Date","now","avatar","avatarUrl","updateProfileWithAvatar","updates","activeSessionId","queryClient","options","deviceId","hasValidToken","getTokenBySession","tokenError","data","updateProfile","setQueryData","accounts","current","users","profile","error","errorMessage","message","status","response","includes","Error"],"sourceRoot":"../../../../src","sources":["ui/utils/avatarUtils.ts"],"mappings":";;AAEA,SAASA,eAAe,QAAQ,wBAAwB;AAExD,SAASC,SAAS,EAAEC,qBAAqB,EAAEC,wBAAwB,QAAQ,4BAA4B;;AAEvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,sBAAsBA,CAC1CC,MAA0B,EAC1BC,WAAwB,EACxBC,WAAmB,GAAG,aAAa,EACpB;EACf;EACA,IAAI,CAACF,MAAM,IAAIA,MAAM,CAACG,UAAU,CAAC,OAAO,CAAC,EAAE;IACzC;EACF;EAEA,IAAI;IACF,MAAMF,WAAW,CAACG,qBAAqB,CAACJ,MAAM,EAAE,QAAQ,CAAC;IACzD;EACF,CAAC,CAAC,OAAOK,QAAa,EAAE;IACtB;IACA;IACA;EAAA;AAEJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAClCC,SAAiB,EACjBC,YAAoB,EACpBP,WAAwB,EAClB;EACN,MAAM;IAAEQ;EAAc,CAAC,GAAGd,eAAe,CAACe,QAAQ,CAAC,CAAC;EACpD,MAAMC,cAAc,GAAGV,WAAW,CAACW,kBAAkB,CAACJ,YAAY,EAAE,OAAO,CAAC,GAAG,MAAMK,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;EACjGL,aAAa,CAACF,SAAS,EAAE;IACvBQ,MAAM,EAAEP,YAAY;IACpBQ,SAAS,EAAEL;EACb,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeM,uBAAuBA,CAC3CC,OAAsB,EACtBjB,WAAwB,EACxBkB,eAA8B,EAC9BC,WAAwB,EACxBC,OAA+B,EAChB;EACf,MAAM;IAAEC;EAAS,CAAC,GAAGD,OAAO,IAAI,CAAC,CAAC;EAClC;EACA,IAAI,CAACpB,WAAW,CAACsB,aAAa,CAAC,CAAC,IAAIJ,eAAe,EAAE;IACnD,IAAI;MACF,MAAMlB,WAAW,CAACuB,iBAAiB,CAACL,eAAe,EAAEG,QAAQ,CAAC;IAChE,CAAC,CAAC,OAAOG,UAAU,EAAE;MACnB,MAAMA,UAAU;IAClB;EACF;EAEA,IAAI;IACF,MAAMC,IAAI,GAAG,MAAMzB,WAAW,CAAC0B,aAAa,CAACT,OAAO,CAAC;;IAErD;IACAE,WAAW,CAACQ,YAAY,CAAChC,SAAS,CAACiC,QAAQ,CAACC,OAAO,CAAC,CAAC,EAAEJ,IAAI,CAAC;IAC5D,IAAIP,eAAe,EAAE;MACnBC,WAAW,CAACQ,YAAY,CAAChC,SAAS,CAACmC,KAAK,CAACC,OAAO,CAACb,eAAe,CAAC,EAAEO,IAAI,CAAC;IAC1E;;IAEA;IACA,IAAIR,OAAO,CAACH,MAAM,IAAII,eAAe,EAAE;MACrCb,oBAAoB,CAACa,eAAe,EAAED,OAAO,CAACH,MAAM,EAAEd,WAAW,CAAC;IACpE;;IAEA;IACAJ,qBAAqB,CAACuB,WAAW,CAAC;IAClCtB,wBAAwB,CAACsB,WAAW,CAAC;IAErC,OAAOM,IAAI;EACb,CAAC,CAAC,OAAOO,KAAU,EAAE;IACnB,MAAMC,YAAY,GAAGD,KAAK,EAAEE,OAAO,IAAI,EAAE;IACzC,MAAMC,MAAM,GAAGH,KAAK,EAAEG,MAAM,IAAIH,KAAK,EAAEI,QAAQ,EAAED,MAAM;;IAEvD;IACE,IAAIA,MAAM,KAAK,GAAG,IAAIF,YAAY,CAACI,QAAQ,CAAC,yBAAyB,CAAC,IAAIJ,YAAY,CAACI,QAAQ,CAAC,yCAAyC,CAAC,EAAE;MAC1I,MAAM,IAAIC,KAAK,CAAC,8CAA8C,CAAC;IACnE;IAEA,MAAMN,KAAK;EACb;AACF","ignoreList":[]}
1
+ {"version":3,"names":["useAccountStore","queryKeys","invalidateUserQueries","invalidateAccountQueries","updateAvatarVisibility","fileId","oxyServices","contextName","startsWith","assetUpdateVisibility","visError","refreshAvatarInStore","sessionId","avatarFileId","updateAccount","getState","cacheBustedUrl","getFileDownloadUrl","Date","now","avatar","avatarUrl","refreshAccountInStore","userData","displayName","name","full","first","username","undefined","__DEV__","console","log","updateProfileWithAvatar","updates","activeSessionId","queryClient","options","deviceId","hasValidToken","getTokenBySession","tokenError","data","updateProfile","setQueryData","accounts","current","users","profile","error","errorMessage","message","status","response","includes","Error"],"sourceRoot":"../../../../src","sources":["ui/utils/avatarUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -36,4 +36,5 @@ export * from './utils/validationUtils';
36
36
  export { logger, LogLevel, LogContext, logAuth, logApi, logSession, logUser, logDevice, logPayment, logPerformance } from './utils/loggerUtils';
37
37
  export * from './utils/asyncUtils';
38
38
  export * from './utils/hookUtils';
39
+ export { refreshAvatarInStore, refreshAccountInStore, updateAvatarVisibility, updateProfileWithAvatar } from './ui/utils/avatarUtils';
39
40
  //# sourceMappingURL=index.d.ts.map
@@ -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;AAgC/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,CAgczD,CAAC;AAEF,eAAO,MAAM,kBAAkB,mCAAc,CAAC;AAE9C,eAAe,UAAU,CAAC"}
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"}
@@ -44,6 +44,7 @@ export interface OxyContextState {
44
44
  props?: Record<string, unknown>;
45
45
  }) => void;
46
46
  openAvatarPicker: () => void;
47
+ updateProfile: (updates: Partial<User>) => Promise<User>;
47
48
  }
48
49
  export declare const OxyContext: import("react").Context<OxyContextState | null>;
49
50
  export interface OxyContextProviderProps {
@@ -1 +1 @@
1
- {"version":3,"file":"OxyContextBase.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/OxyContextBase.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OxyContextBase.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/OxyContextBase.tsx"],"names":[],"mappings":"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"}
@@ -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;;EAqF5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;SAKQ,MAAM;WAAS,MAAM;WAAS,MAAM;WAAS,MAAM;;;EA8EtF,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
+ {"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,gEAe7D,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
+ {"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,2EAmMzB,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"}
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;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GACvB,IAAI,CAON;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"}
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.12",
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';
@@ -6,7 +6,7 @@ import {
6
6
  useRef,
7
7
  useState,
8
8
  } from 'react';
9
- import { useQueryClient, useQuery } from '@tanstack/react-query';
9
+ import { useQueryClient, useQuery, useMutation } from '@tanstack/react-query';
10
10
  import { toast } from '../../lib/sonner';
11
11
  import { OxyServices } from '../../core';
12
12
  import type { User } from '../../models/interfaces';
@@ -22,12 +22,13 @@ import { useSessionManagement } from '../hooks/useSessionManagement';
22
22
  import { useStorage } from '../hooks/useStorage';
23
23
  import { useAccountStore } from '../stores/accountStore';
24
24
  import { useAuthStore, type AuthState } from '../stores/authStore';
25
- import { queryKeys } from '../hooks/queries/queryKeys';
25
+ import { queryKeys, invalidateAccountQueries, invalidateUserQueries } from '../hooks/queries/queryKeys';
26
26
  import { clearQueryCache } from '../hooks/queryClient';
27
27
  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 { refreshAccountInStore } from '../utils/avatarUtils';
31
32
  import { useShallow } from 'zustand/react/shallow';
32
33
 
33
34
  import {
@@ -173,21 +174,85 @@ export const OxyProvider: React.FC<OxyContextProviderProps> = ({
173
174
  queryClient,
174
175
  });
175
176
 
176
- const { data: userData } = useQuery({
177
+ const { data: userData, refetch: refetchUser } = useQuery({
177
178
  queryKey: queryKeys.accounts.current(),
178
179
  queryFn: async () => {
180
+ if (__DEV__) {
181
+ console.log('[OxyContext] Fetching user data for session:', activeSessionId);
182
+ }
179
183
  if (!activeSessionId) {
180
184
  throw new Error('No active session');
181
185
  }
182
- return await oxyServices.getUserBySession(activeSessionId);
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;
183
191
  },
184
192
  enabled: isAuthenticated && !!activeSessionId && tokenReady,
185
193
  staleTime: 0,
186
194
  gcTime: 0,
187
195
  retry: false,
196
+ refetchOnMount: 'always',
197
+ refetchOnWindowFocus: false,
188
198
  });
189
199
  const user = userData ?? null;
190
200
 
201
+ // Update profile mutation - handles cache invalidation automatically
202
+ const updateProfileMutation = useMutation({
203
+ mutationFn: async (updates: Partial<User>) => {
204
+ if (__DEV__) {
205
+ console.log('[OxyContext] Updating profile:', updates);
206
+ }
207
+ return await oxyServices.updateProfile(updates);
208
+ },
209
+ onSuccess: async (data, updates) => {
210
+ if (__DEV__) {
211
+ console.log('[OxyContext] Profile update successful:', data);
212
+ }
213
+
214
+ // Update cache with server response
215
+ queryClient.setQueryData(queryKeys.accounts.current(), data);
216
+ if (activeSessionId) {
217
+ queryClient.setQueryData(queryKeys.users.profile(activeSessionId), data);
218
+ }
219
+
220
+ // Refresh accountStore with all updated profile data (not just avatar)
221
+ if (activeSessionId && oxyServices) {
222
+ refreshAccountInStore(activeSessionId, data, oxyServices);
223
+ }
224
+
225
+ // Invalidate all related queries to refresh everywhere
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
+ }
246
+ },
247
+ });
248
+
249
+ const updateProfile = useCallback(
250
+ async (updates: Partial<User>): Promise<User> => {
251
+ return await updateProfileMutation.mutateAsync(updates);
252
+ },
253
+ [updateProfileMutation]
254
+ );
255
+
191
256
  const {
192
257
  completeSignIn,
193
258
  logout,
@@ -483,6 +548,7 @@ export const OxyProvider: React.FC<OxyContextProviderProps> = ({
483
548
  useFollow: useFollowHook,
484
549
  showBottomSheet: showBottomSheetForContext,
485
550
  openAvatarPicker,
551
+ updateProfile,
486
552
  }), [
487
553
  activeSessionId,
488
554
  currentDeviceId,
@@ -511,6 +577,7 @@ export const OxyProvider: React.FC<OxyContextProviderProps> = ({
511
577
  user,
512
578
  showBottomSheetForContext,
513
579
  openAvatarPicker,
580
+ updateProfile,
514
581
  ]);
515
582
 
516
583
  return (
@@ -51,6 +51,7 @@ export interface OxyContextState {
51
51
  useFollow?: UseFollowHook;
52
52
  showBottomSheet?: (screenOrConfig: RouteName | { screen: RouteName; props?: Record<string, unknown> }) => void;
53
53
  openAvatarPicker: () => void;
54
+ updateProfile: (updates: Partial<User>) => Promise<User>;
54
55
  }
55
56
 
56
57
  export const OxyContext = createContext<OxyContextState | null>(null);
@@ -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 { refreshAvatarInStore } from '../../utils/avatarUtils';
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
- // If avatar was updated, refresh accountStore with cache-busted URL
91
- if (updates.avatar && activeSessionId && oxyServices) {
92
- refreshAvatarInStore(activeSessionId, updates.avatar, oxyServices);
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
- invalidateUserQueries(queryClient);
97
- invalidateAccountQueries(queryClient);
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 cache-busted URL if avatar was updated
178
- if (data?.avatar && activeSessionId && oxyServices) {
179
- refreshAvatarInStore(activeSessionId, data.avatar, oxyServices);
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
- return await oxyServices.getUserBySession(activeSessionId);
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
- if (existing.avatar === updated.avatar && existing.avatarUrl === updated.avatarUrl) {
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
- // If avatar was updated, refresh accountStore with cache-busted URL
93
- if (updates.avatar && activeSessionId) {
94
- refreshAvatarInStore(activeSessionId, updates.avatar, oxyServices);
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