@replyke/core 7.0.0-beta.47 → 7.0.0-beta.48
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/dist/cjs/hooks/user/index.d.ts +1 -0
- package/dist/cjs/hooks/user/useUserActions.js +19 -2
- package/dist/cjs/hooks/user/useUserActions.js.map +1 -1
- package/dist/cjs/hooks/users/index.d.ts +0 -1
- package/dist/cjs/hooks/users/index.js +1 -3
- package/dist/cjs/hooks/users/index.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +2 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces/models/User.d.ts +1 -1
- package/dist/cjs/store/api/userApi.d.ts +9 -1
- package/dist/cjs/store/api/userApi.js +61 -10
- package/dist/cjs/store/api/userApi.js.map +1 -1
- package/dist/cjs/store/slices/entityListsSlice.d.ts +168 -168
- package/dist/cjs/store/slices/userSlice.d.ts +696 -0
- package/dist/esm/hooks/user/index.d.ts +1 -0
- package/dist/esm/hooks/user/useUserActions.js +19 -2
- package/dist/esm/hooks/user/useUserActions.js.map +1 -1
- package/dist/esm/hooks/users/index.d.ts +0 -1
- package/dist/esm/hooks/users/index.js +0 -1
- package/dist/esm/hooks/users/index.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces/models/User.d.ts +1 -1
- package/dist/esm/store/api/userApi.d.ts +9 -1
- package/dist/esm/store/api/userApi.js +61 -10
- package/dist/esm/store/api/userApi.js.map +1 -1
- package/dist/esm/store/slices/entityListsSlice.d.ts +168 -168
- package/dist/esm/store/slices/userSlice.d.ts +696 -0
- package/package.json +1 -1
- package/dist/cjs/hooks/users/useUpdateUser.d.ts +0 -26
- package/dist/cjs/hooks/users/useUpdateUser.js +0 -124
- package/dist/cjs/hooks/users/useUpdateUser.js.map +0 -1
- package/dist/esm/hooks/users/useUpdateUser.d.ts +0 -26
- package/dist/esm/hooks/users/useUpdateUser.js +0 -119
- package/dist/esm/hooks/users/useUpdateUser.js.map +0 -1
|
@@ -64,7 +64,7 @@ export function useUserActions() {
|
|
|
64
64
|
}, [dispatch]);
|
|
65
65
|
// Update user with optimistic updates for instant UI feedback
|
|
66
66
|
var updateUser = useCallback(function (projectId, userId, update, currentUser) { return __awaiter(_this, void 0, void 0, function () {
|
|
67
|
-
var originalUser, result, error_1, errorMessage;
|
|
67
|
+
var originalUser, optimisticUpdate, result, error_1, errorMessage;
|
|
68
68
|
return __generator(this, function (_a) {
|
|
69
69
|
switch (_a.label) {
|
|
70
70
|
case 0:
|
|
@@ -74,8 +74,25 @@ export function useUserActions() {
|
|
|
74
74
|
dispatch(setUpdating(true));
|
|
75
75
|
dispatch(clearError());
|
|
76
76
|
originalUser = currentUser;
|
|
77
|
+
optimisticUpdate = {};
|
|
78
|
+
if (update.name !== undefined)
|
|
79
|
+
optimisticUpdate.name = update.name;
|
|
80
|
+
if (update.username !== undefined)
|
|
81
|
+
optimisticUpdate.username = update.username;
|
|
82
|
+
if (update.bio !== undefined)
|
|
83
|
+
optimisticUpdate.bio = update.bio;
|
|
84
|
+
if (update.birthdate !== undefined)
|
|
85
|
+
optimisticUpdate.birthdate = update.birthdate;
|
|
86
|
+
if (update.metadata !== undefined)
|
|
87
|
+
optimisticUpdate.metadata = update.metadata;
|
|
88
|
+
// Only apply avatar optimistically if it's a string URL (not a file upload)
|
|
89
|
+
if (typeof update.avatar === 'string' || update.avatar === null) {
|
|
90
|
+
optimisticUpdate.avatar = update.avatar;
|
|
91
|
+
}
|
|
77
92
|
// OPTIMISTIC UPDATE: Apply changes immediately for instant UI feedback
|
|
78
|
-
|
|
93
|
+
if (Object.keys(optimisticUpdate).length > 0) {
|
|
94
|
+
dispatch(updateUserOptimistic(optimisticUpdate));
|
|
95
|
+
}
|
|
79
96
|
_a.label = 1;
|
|
80
97
|
case 1:
|
|
81
98
|
_a.trys.push([1, 3, 4, 5]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserActions.js","sourceRoot":"","sources":["../../../../src/hooks/user/useUserActions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,QAAQ,EACR,UAAU,EACV,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,qBAAqB,GAEtB,MAAM,yBAAyB,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,cAAc;IAA9B,
|
|
1
|
+
{"version":3,"file":"useUserActions.js","sourceRoot":"","sources":["../../../../src/hooks/user/useUserActions.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,3 @@ export { default as useFetchUserByUsername } from "./useFetchUserByUsername";
|
|
|
4
4
|
export { default as useCheckUsernameAvailability } from "./useCheckUsernameAvailability";
|
|
5
5
|
export { default as useFetchUserSuggestions } from "./useFetchUserSuggestions";
|
|
6
6
|
export { default as useMentions } from "./useMentions";
|
|
7
|
-
export { default as useUpdateUser } from "./useUpdateUser";
|
|
@@ -4,5 +4,4 @@ export { default as useFetchUserByUsername } from "./useFetchUserByUsername";
|
|
|
4
4
|
export { default as useCheckUsernameAvailability } from "./useCheckUsernameAvailability";
|
|
5
5
|
export { default as useFetchUserSuggestions } from "./useFetchUserSuggestions";
|
|
6
6
|
export { default as useMentions } from "./useMentions";
|
|
7
|
-
export { default as useUpdateUser } from "./useUpdateUser";
|
|
8
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/hooks/users/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/hooks/users/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { ReplykeProvider, EntityProvider, CommentSectionProvider, SpaceProvider,
|
|
|
10
10
|
export { useProject, useProjectData } from "./hooks/projects";
|
|
11
11
|
export { useSignTestingJwt } from "./hooks/crypto";
|
|
12
12
|
export { useAuth, type UseAuthValues } from "./hooks/auth";
|
|
13
|
-
export { useUser, useUserActions, type UseUserProps, type UseUserValues, } from "./hooks/user";
|
|
13
|
+
export { useUser, useUserActions, type UseUserProps, type UseUserValues, type UpdateUserParams, } from "./hooks/user";
|
|
14
14
|
export { useAppNotifications, useAppNotificationsActions, type UseAppNotificationsProps, type UseAppNotificationsValues, } from "./hooks/app-notifications";
|
|
15
15
|
export { useCollections, useCollectionsActions, useIsEntityInCollection, useCollectionEntitiesWrapper, type UseCollectionsProps, type UseCollectionsValues, type UseCollectionEntitiesWrapperProps, type UseCollectionEntitiesWrapperValues, } from "./hooks/collections";
|
|
16
16
|
export { useEntity, useEntityData, useCreateEntity, useDeleteEntity, useFetchEntity, useFetchEntityByForeignId, useFetchEntityByShortId, useFetchManyEntities, useIncrementEntityViews, useFetchManyEntitiesWrapper, useUpdateEntity, type UseFetchManyEntitiesWrapperProps, type UseFetchManyEntitiesWrapperValues, } from "./hooks/entities";
|
|
@@ -19,7 +19,7 @@ export { useSpace, useSpaceData, useFetchSpace, useFetchSpaceByShortId, useFetch
|
|
|
19
19
|
export { useSpaceList, useSpaceListActions, type UseSpaceListProps, type UseSpaceListValues, } from "./hooks/space-lists";
|
|
20
20
|
export { useCommentSection, useCommentSectionData, useCreateComment, useFetchManyComments, useFetchComment, useFetchCommentByForeignId, useReplies, useUpdateComment, useDeleteComment, useEntityComments, useFetchManyCommentsWrapper, type UseFetchManyCommentsWrapperProps, type UseFetchManyCommentsWrapperValues, } from "./hooks/comments";
|
|
21
21
|
export { useFetchEntityReactions, useFetchCommentReactions, useFetchEntityReactionsWrapper, useFetchCommentReactionsWrapper, useAddReaction, useRemoveReaction, useReactionToggle, type UseFetchEntityReactionsWrapperProps, type UseFetchEntityReactionsWrapperValues, type UseFetchCommentReactionsWrapperProps, type UseFetchCommentReactionsWrapperValues, type UseReactionToggleValues, } from "./hooks/reactions";
|
|
22
|
-
export { useFetchUser, useFetchUserByForeignId, useFetchUserByUsername, useCheckUsernameAvailability, useFetchUserSuggestions, useMentions,
|
|
22
|
+
export { useFetchUser, useFetchUserByForeignId, useFetchUserByUsername, useCheckUsernameAvailability, useFetchUserSuggestions, useMentions, } from "./hooks/users";
|
|
23
23
|
export { useFetchFollowStatus, useFetchFollowers, useFetchFollowersByUserId, useFetchFollowersCount, useFetchFollowersCountByUserId, useFetchFollowing, useFetchFollowingByUserId, useFetchFollowingCount, useFetchFollowingCountByUserId, useFollowManager, useFollowUser, useUnfollowByFollowId, useUnfollowUserByUserId, } from "./hooks/relationships/follows";
|
|
24
24
|
export { useRequestConnection, useAcceptConnection, useDeclineConnection, useRemoveConnection, useFetchConnections, useFetchConnectionStatus, useRemoveConnectionByUserId, useFetchConnectionsCount, useFetchSentPendingConnections, useFetchReceivedPendingConnections, useFetchConnectionsByUserId, useFetchConnectionsCountByUserId, useConnectionManager, } from "./hooks/relationships/connections";
|
|
25
25
|
export { useCreateReport } from "./hooks/reports";
|
package/dist/esm/index.js
CHANGED
|
@@ -34,7 +34,7 @@ export { useCommentSection, useCommentSectionData, useCreateComment, useFetchMan
|
|
|
34
34
|
// -- reactions
|
|
35
35
|
export { useFetchEntityReactions, useFetchCommentReactions, useFetchEntityReactionsWrapper, useFetchCommentReactionsWrapper, useAddReaction, useRemoveReaction, useReactionToggle, } from "./hooks/reactions";
|
|
36
36
|
// -- users
|
|
37
|
-
export { useFetchUser, useFetchUserByForeignId, useFetchUserByUsername, useCheckUsernameAvailability, useFetchUserSuggestions, useMentions,
|
|
37
|
+
export { useFetchUser, useFetchUserByForeignId, useFetchUserByUsername, useCheckUsernameAvailability, useFetchUserSuggestions, useMentions, } from "./hooks/users";
|
|
38
38
|
// -- follows
|
|
39
39
|
export { useFetchFollowStatus, useFetchFollowers, useFetchFollowersByUserId, useFetchFollowersCount, useFetchFollowersCountByUserId, useFetchFollowing, useFetchFollowingByUserId, useFetchFollowingCount, useFetchFollowingCountByUserId, useFollowManager, useFollowUser, useUnfollowByFollowId, useUnfollowUserByUserId, } from "./hooks/relationships/follows";
|
|
40
40
|
// -- connections
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,+CAA+C;AAC/C,OAAO,EACL,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,aAAa,GACd,MAAM,WAAW,CAAC;AAEnB,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,oBAAoB;AACpB,OAAO,EAAE,OAAO,EAAsB,MAAM,cAAc,CAAC;AAE3D,oBAAoB;AACpB,OAAO,EACL,OAAO,EACP,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export type UserFull = {
|
|
|
29
29
|
updatedAt: Date;
|
|
30
30
|
deletedAt: Date | null;
|
|
31
31
|
};
|
|
32
|
-
export type AuthUser =
|
|
32
|
+
export type AuthUser = Omit<UserFull, "secureMetadata" | "deletedAt"> & {
|
|
33
33
|
suspensions: {
|
|
34
34
|
reason: string | null;
|
|
35
35
|
startDate: Date;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { AuthUser } from '../../interfaces/models/User';
|
|
2
|
+
import type { UploadImageOptions } from '../../interfaces/models/Image';
|
|
2
3
|
export interface UpdateUserParams {
|
|
3
4
|
name?: string | null;
|
|
4
5
|
username?: string | null;
|
|
5
|
-
avatar?: string | null
|
|
6
|
+
avatar?: string | null | {
|
|
7
|
+
file: File | Blob;
|
|
8
|
+
options: UploadImageOptions;
|
|
9
|
+
};
|
|
6
10
|
bio?: string;
|
|
7
11
|
birthdate?: Date | null;
|
|
8
12
|
location?: {
|
|
@@ -11,6 +15,10 @@ export interface UpdateUserParams {
|
|
|
11
15
|
} | null;
|
|
12
16
|
metadata?: Record<string, any>;
|
|
13
17
|
secureMetadata?: Record<string, any>;
|
|
18
|
+
banner?: {
|
|
19
|
+
file: File | Blob;
|
|
20
|
+
options: UploadImageOptions;
|
|
21
|
+
};
|
|
14
22
|
}
|
|
15
23
|
export interface UpdateUserRequest {
|
|
16
24
|
projectId: string;
|
|
@@ -1,29 +1,80 @@
|
|
|
1
1
|
import { baseApi } from './baseApi';
|
|
2
2
|
// Removed FetchUserRequest and FetchUserByForeignIdRequest - these are for other users, not current user management
|
|
3
|
+
// Helper to build FormData for file uploads
|
|
4
|
+
function buildUserUpdateFormData(update) {
|
|
5
|
+
var formData = new FormData();
|
|
6
|
+
var avatarIsFile = update.avatar && typeof update.avatar === 'object' && 'file' in update.avatar;
|
|
7
|
+
// Append non-file fields
|
|
8
|
+
if (update.name !== undefined) {
|
|
9
|
+
formData.append("name", update.name === null ? "" : update.name);
|
|
10
|
+
}
|
|
11
|
+
if (update.username !== undefined) {
|
|
12
|
+
formData.append("username", update.username === null ? "" : update.username);
|
|
13
|
+
}
|
|
14
|
+
if (update.bio !== undefined) {
|
|
15
|
+
formData.append("bio", update.bio);
|
|
16
|
+
}
|
|
17
|
+
if (update.birthdate !== undefined) {
|
|
18
|
+
formData.append("birthdate", update.birthdate ? update.birthdate.toISOString() : "");
|
|
19
|
+
}
|
|
20
|
+
// URL-based avatar (legacy support)
|
|
21
|
+
if (update.avatar && typeof update.avatar === "string") {
|
|
22
|
+
formData.append("avatar", update.avatar);
|
|
23
|
+
}
|
|
24
|
+
// Object fields as JSON strings
|
|
25
|
+
if (update.location !== undefined) {
|
|
26
|
+
formData.append("location", update.location === null ? "null" : JSON.stringify(update.location));
|
|
27
|
+
}
|
|
28
|
+
if (update.metadata !== undefined) {
|
|
29
|
+
formData.append("metadata", JSON.stringify(update.metadata));
|
|
30
|
+
}
|
|
31
|
+
if (update.secureMetadata !== undefined) {
|
|
32
|
+
formData.append("secureMetadata", JSON.stringify(update.secureMetadata));
|
|
33
|
+
}
|
|
34
|
+
// Append avatar FILE and options
|
|
35
|
+
if (avatarIsFile && update.avatar && typeof update.avatar === 'object' && 'file' in update.avatar) {
|
|
36
|
+
formData.append("avatarFile", update.avatar.file);
|
|
37
|
+
formData.append("avatarFile.options", JSON.stringify(update.avatar.options));
|
|
38
|
+
}
|
|
39
|
+
// Append banner FILE and options
|
|
40
|
+
if (update.banner) {
|
|
41
|
+
formData.append("bannerFile", update.banner.file);
|
|
42
|
+
formData.append("bannerFile.options", JSON.stringify(update.banner.options));
|
|
43
|
+
}
|
|
44
|
+
return formData;
|
|
45
|
+
}
|
|
3
46
|
// Inject user-specific endpoints into the base API
|
|
4
47
|
export var userApi = baseApi.injectEndpoints({
|
|
5
48
|
endpoints: function (builder) { return ({
|
|
6
|
-
// Update current user (
|
|
49
|
+
// Update current user (supports both JSON and FormData for file uploads)
|
|
7
50
|
updateUser: builder.mutation({
|
|
8
51
|
query: function (_a) {
|
|
9
52
|
var projectId = _a.projectId, userId = _a.userId, update = _a.update;
|
|
10
|
-
|
|
53
|
+
var avatarIsFile = update.avatar && typeof update.avatar === 'object' && 'file' in update.avatar;
|
|
54
|
+
var hasFiles = avatarIsFile || update.banner;
|
|
55
|
+
if (hasFiles) {
|
|
56
|
+
return {
|
|
57
|
+
url: "/".concat(projectId, "/users/").concat(userId),
|
|
58
|
+
method: 'PATCH',
|
|
59
|
+
body: buildUserUpdateFormData(update),
|
|
60
|
+
formData: true,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// Simple JSON request (no files)
|
|
64
|
+
return {
|
|
11
65
|
url: "/".concat(projectId, "/users/").concat(userId),
|
|
12
66
|
method: 'PATCH',
|
|
13
67
|
body: update,
|
|
14
|
-
}
|
|
68
|
+
};
|
|
15
69
|
},
|
|
16
70
|
// No complex optimistic updates needed - let useUserActions handle state updates
|
|
17
|
-
invalidatesTags: function (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{ type: 'User', id: 'CURRENT' }, // Only current user now
|
|
21
|
-
];
|
|
22
|
-
},
|
|
71
|
+
invalidatesTags: function () { return [
|
|
72
|
+
{ type: 'User', id: 'CURRENT' },
|
|
73
|
+
]; },
|
|
23
74
|
}),
|
|
24
75
|
// Removed other-user queries - these should use the existing legacy hooks:
|
|
25
76
|
// - useFetchUser
|
|
26
|
-
// - useFetchUserByForeignId
|
|
77
|
+
// - useFetchUserByForeignId
|
|
27
78
|
// - useFetchUserFollowersCount
|
|
28
79
|
// - useFetchUserFollowingCount
|
|
29
80
|
// - useCheckUsernameAvailability
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userApi.js","sourceRoot":"","sources":["../../../../src/store/api/userApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"userApi.js","sourceRoot":"","sources":["../../../../src/store/api/userApi.ts"],"names":[],"mappings":"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"}
|