@planningcenter/chat-react-native 4.4.1-qa-staging.6 → 4.4.1-qa-staging.8
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/build/hooks/groups/use_group_members_for_new_conversation.d.ts +196 -16
- package/build/hooks/groups/use_group_members_for_new_conversation.d.ts.map +1 -1
- package/build/hooks/groups/use_group_members_for_new_conversation.js +72 -58
- package/build/hooks/groups/use_group_members_for_new_conversation.js.map +1 -1
- package/build/hooks/use_api.d.ts +3 -2
- package/build/hooks/use_api.d.ts.map +1 -1
- package/build/hooks/use_api.js.map +1 -1
- package/build/screens/conversation_new/components/groups_form.d.ts.map +1 -1
- package/build/screens/conversation_new/components/groups_form.js +37 -34
- package/build/screens/conversation_new/components/groups_form.js.map +1 -1
- package/package.json +3 -3
- package/src/hooks/groups/use_group_members_for_new_conversation.ts +21 -16
- package/src/hooks/use_api.ts +9 -2
- package/src/screens/conversation_new/components/groups_form.tsx +1 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { MemberResource, ResourceObject } from '../../types';
|
|
2
2
|
import { GroupsGroupMemberResource } from '../../types/resources/groups/groups_member_resource_with_person';
|
|
3
|
-
import {
|
|
4
|
-
type
|
|
5
|
-
export type GroupMembersForNewConversationResult = Omit<
|
|
3
|
+
import { useApiPaginator } from '../use_api';
|
|
4
|
+
type UseApiPaginatorResult<T extends ResourceObject> = ReturnType<typeof useApiPaginator<T>>;
|
|
5
|
+
export type GroupMembersForNewConversationResult = Omit<UseApiPaginatorResult<GroupsGroupMemberResource>, // We are passing our own "members" data shape
|
|
6
6
|
'data'> & {
|
|
7
7
|
data: MemberResource[];
|
|
8
8
|
adultMembers: MemberResource[];
|
|
@@ -15,20 +15,27 @@ export declare function useGroupMembersForNewConversation({ id, gender, }: {
|
|
|
15
15
|
data: MemberResource[];
|
|
16
16
|
adultMembers: MemberResource[];
|
|
17
17
|
childMembers: MemberResource[];
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
error: Response | null;
|
|
21
|
-
status: "success" | "error";
|
|
22
|
-
isError: boolean;
|
|
18
|
+
error: import("../..").ResponseError;
|
|
19
|
+
isError: true;
|
|
23
20
|
isPending: false;
|
|
24
21
|
isLoading: false;
|
|
25
22
|
isLoadingError: false;
|
|
26
|
-
isRefetchError:
|
|
27
|
-
isSuccess:
|
|
23
|
+
isRefetchError: true;
|
|
24
|
+
isSuccess: false;
|
|
25
|
+
isPlaceholderData: false;
|
|
26
|
+
status: "error";
|
|
27
|
+
fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
28
|
+
fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
29
|
+
hasNextPage: boolean;
|
|
30
|
+
hasPreviousPage: boolean;
|
|
31
|
+
isFetchNextPageError: boolean;
|
|
32
|
+
isFetchingNextPage: boolean;
|
|
33
|
+
isFetchPreviousPageError: boolean;
|
|
34
|
+
isFetchingPreviousPage: boolean;
|
|
28
35
|
dataUpdatedAt: number;
|
|
29
36
|
errorUpdatedAt: number;
|
|
30
37
|
failureCount: number;
|
|
31
|
-
failureReason:
|
|
38
|
+
failureReason: import("../..").ResponseError | null;
|
|
32
39
|
errorUpdateCount: number;
|
|
33
40
|
isFetched: boolean;
|
|
34
41
|
isFetchedAfterMount: boolean;
|
|
@@ -37,16 +44,189 @@ export declare function useGroupMembersForNewConversation({ id, gender, }: {
|
|
|
37
44
|
isPaused: boolean;
|
|
38
45
|
isRefetching: boolean;
|
|
39
46
|
isStale: boolean;
|
|
40
|
-
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>,
|
|
47
|
+
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
41
48
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
42
|
-
|
|
43
|
-
|
|
49
|
+
promise: Promise<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>>;
|
|
50
|
+
} | {
|
|
51
|
+
data: MemberResource[];
|
|
52
|
+
adultMembers: MemberResource[];
|
|
53
|
+
childMembers: MemberResource[];
|
|
54
|
+
error: null;
|
|
55
|
+
isError: false;
|
|
56
|
+
isPending: false;
|
|
57
|
+
isLoading: false;
|
|
58
|
+
isLoadingError: false;
|
|
59
|
+
isRefetchError: false;
|
|
60
|
+
isFetchNextPageError: false;
|
|
61
|
+
isFetchPreviousPageError: false;
|
|
62
|
+
isSuccess: true;
|
|
63
|
+
isPlaceholderData: false;
|
|
64
|
+
status: "success";
|
|
65
|
+
fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
66
|
+
fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
67
|
+
hasNextPage: boolean;
|
|
68
|
+
hasPreviousPage: boolean;
|
|
69
|
+
isFetchingNextPage: boolean;
|
|
70
|
+
isFetchingPreviousPage: boolean;
|
|
71
|
+
dataUpdatedAt: number;
|
|
72
|
+
errorUpdatedAt: number;
|
|
73
|
+
failureCount: number;
|
|
74
|
+
failureReason: import("../..").ResponseError | null;
|
|
75
|
+
errorUpdateCount: number;
|
|
76
|
+
isFetched: boolean;
|
|
77
|
+
isFetchedAfterMount: boolean;
|
|
78
|
+
isFetching: boolean;
|
|
79
|
+
isInitialLoading: boolean;
|
|
80
|
+
isPaused: boolean;
|
|
81
|
+
isRefetching: boolean;
|
|
82
|
+
isStale: boolean;
|
|
83
|
+
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
84
|
+
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
85
|
+
promise: Promise<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>>;
|
|
86
|
+
} | {
|
|
87
|
+
data: MemberResource[];
|
|
88
|
+
adultMembers: MemberResource[];
|
|
89
|
+
childMembers: MemberResource[];
|
|
90
|
+
error: import("../..").ResponseError;
|
|
91
|
+
isError: true;
|
|
92
|
+
isPending: false;
|
|
93
|
+
isLoading: false;
|
|
94
|
+
isLoadingError: true;
|
|
95
|
+
isRefetchError: false;
|
|
96
|
+
isFetchNextPageError: false;
|
|
97
|
+
isFetchPreviousPageError: false;
|
|
98
|
+
isSuccess: false;
|
|
99
|
+
isPlaceholderData: false;
|
|
100
|
+
status: "error";
|
|
101
|
+
fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
102
|
+
fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
103
|
+
hasNextPage: boolean;
|
|
104
|
+
hasPreviousPage: boolean;
|
|
105
|
+
isFetchingNextPage: boolean;
|
|
106
|
+
isFetchingPreviousPage: boolean;
|
|
107
|
+
dataUpdatedAt: number;
|
|
108
|
+
errorUpdatedAt: number;
|
|
109
|
+
failureCount: number;
|
|
110
|
+
failureReason: import("../..").ResponseError | null;
|
|
111
|
+
errorUpdateCount: number;
|
|
112
|
+
isFetched: boolean;
|
|
113
|
+
isFetchedAfterMount: boolean;
|
|
114
|
+
isFetching: boolean;
|
|
115
|
+
isInitialLoading: boolean;
|
|
116
|
+
isPaused: boolean;
|
|
117
|
+
isRefetching: boolean;
|
|
118
|
+
isStale: boolean;
|
|
119
|
+
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
120
|
+
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
121
|
+
promise: Promise<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>>;
|
|
122
|
+
} | {
|
|
123
|
+
data: MemberResource[];
|
|
124
|
+
adultMembers: MemberResource[];
|
|
125
|
+
childMembers: MemberResource[];
|
|
126
|
+
error: null;
|
|
127
|
+
isError: false;
|
|
128
|
+
isPending: true;
|
|
129
|
+
isLoading: true;
|
|
130
|
+
isLoadingError: false;
|
|
131
|
+
isRefetchError: false;
|
|
132
|
+
isFetchNextPageError: false;
|
|
133
|
+
isFetchPreviousPageError: false;
|
|
134
|
+
isSuccess: false;
|
|
135
|
+
isPlaceholderData: false;
|
|
136
|
+
status: "pending";
|
|
137
|
+
fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
138
|
+
fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
44
139
|
hasNextPage: boolean;
|
|
45
140
|
hasPreviousPage: boolean;
|
|
46
|
-
isFetchNextPageError: boolean;
|
|
47
141
|
isFetchingNextPage: boolean;
|
|
48
|
-
isFetchPreviousPageError: boolean;
|
|
49
142
|
isFetchingPreviousPage: boolean;
|
|
143
|
+
dataUpdatedAt: number;
|
|
144
|
+
errorUpdatedAt: number;
|
|
145
|
+
failureCount: number;
|
|
146
|
+
failureReason: import("../..").ResponseError | null;
|
|
147
|
+
errorUpdateCount: number;
|
|
148
|
+
isFetched: boolean;
|
|
149
|
+
isFetchedAfterMount: boolean;
|
|
150
|
+
isFetching: boolean;
|
|
151
|
+
isInitialLoading: boolean;
|
|
152
|
+
isPaused: boolean;
|
|
153
|
+
isRefetching: boolean;
|
|
154
|
+
isStale: boolean;
|
|
155
|
+
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
156
|
+
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
157
|
+
promise: Promise<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>>;
|
|
158
|
+
} | {
|
|
159
|
+
data: MemberResource[];
|
|
160
|
+
adultMembers: MemberResource[];
|
|
161
|
+
childMembers: MemberResource[];
|
|
162
|
+
error: null;
|
|
163
|
+
isError: false;
|
|
164
|
+
isPending: true;
|
|
165
|
+
isLoadingError: false;
|
|
166
|
+
isRefetchError: false;
|
|
167
|
+
isFetchNextPageError: false;
|
|
168
|
+
isFetchPreviousPageError: false;
|
|
169
|
+
isSuccess: false;
|
|
170
|
+
isPlaceholderData: false;
|
|
171
|
+
status: "pending";
|
|
172
|
+
fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
173
|
+
fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
174
|
+
hasNextPage: boolean;
|
|
175
|
+
hasPreviousPage: boolean;
|
|
176
|
+
isFetchingNextPage: boolean;
|
|
177
|
+
isFetchingPreviousPage: boolean;
|
|
178
|
+
dataUpdatedAt: number;
|
|
179
|
+
errorUpdatedAt: number;
|
|
180
|
+
failureCount: number;
|
|
181
|
+
failureReason: import("../..").ResponseError | null;
|
|
182
|
+
errorUpdateCount: number;
|
|
183
|
+
isFetched: boolean;
|
|
184
|
+
isFetchedAfterMount: boolean;
|
|
185
|
+
isFetching: boolean;
|
|
186
|
+
isLoading: boolean;
|
|
187
|
+
isInitialLoading: boolean;
|
|
188
|
+
isPaused: boolean;
|
|
189
|
+
isRefetching: boolean;
|
|
190
|
+
isStale: boolean;
|
|
191
|
+
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
192
|
+
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
193
|
+
promise: Promise<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>>;
|
|
194
|
+
} | {
|
|
195
|
+
data: MemberResource[];
|
|
196
|
+
adultMembers: MemberResource[];
|
|
197
|
+
childMembers: MemberResource[];
|
|
198
|
+
isError: false;
|
|
199
|
+
error: null;
|
|
200
|
+
isPending: false;
|
|
201
|
+
isLoading: false;
|
|
202
|
+
isLoadingError: false;
|
|
203
|
+
isRefetchError: false;
|
|
204
|
+
isSuccess: true;
|
|
205
|
+
isPlaceholderData: true;
|
|
206
|
+
isFetchNextPageError: false;
|
|
207
|
+
isFetchPreviousPageError: false;
|
|
208
|
+
status: "success";
|
|
209
|
+
fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
210
|
+
fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
211
|
+
hasNextPage: boolean;
|
|
212
|
+
hasPreviousPage: boolean;
|
|
213
|
+
isFetchingNextPage: boolean;
|
|
214
|
+
isFetchingPreviousPage: boolean;
|
|
215
|
+
dataUpdatedAt: number;
|
|
216
|
+
errorUpdatedAt: number;
|
|
217
|
+
failureCount: number;
|
|
218
|
+
failureReason: import("../..").ResponseError | null;
|
|
219
|
+
errorUpdateCount: number;
|
|
220
|
+
isFetched: boolean;
|
|
221
|
+
isFetchedAfterMount: boolean;
|
|
222
|
+
isFetching: boolean;
|
|
223
|
+
isInitialLoading: boolean;
|
|
224
|
+
isPaused: boolean;
|
|
225
|
+
isRefetching: boolean;
|
|
226
|
+
isStale: boolean;
|
|
227
|
+
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>, import("../..").ResponseError>>;
|
|
228
|
+
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
229
|
+
promise: Promise<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, unknown>>;
|
|
50
230
|
};
|
|
51
231
|
export {};
|
|
52
232
|
//# sourceMappingURL=use_group_members_for_new_conversation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_group_members_for_new_conversation.d.ts","sourceRoot":"","sources":["../../../src/hooks/groups/use_group_members_for_new_conversation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use_group_members_for_new_conversation.d.ts","sourceRoot":"","sources":["../../../src/hooks/groups/use_group_members_for_new_conversation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iEAAiE,CAAA;AAC3G,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAG5C,KAAK,qBAAqB,CAAC,CAAC,SAAS,cAAc,IAAI,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5F,MAAM,MAAM,oCAAoC,GAAG,IAAI,CACrD,qBAAqB,CAAC,yBAAyB,CAAC,EAAE,8CAA8C;AAChG,MAAM,CACP,GAAG;IACF,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,YAAY,EAAE,cAAc,EAAE,CAAA;IAC9B,YAAY,EAAE,cAAc,EAAE,CAAA;CAC/B,CAAA;AAED,wBAAgB,iCAAiC,CAAC,EAChD,EAAE,EACF,MAAM,GACP,EAAE;IACD,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { c as _c } from "react/compiler-runtime";
|
|
2
|
+
import { keepPreviousData } from '@tanstack/react-query';
|
|
2
3
|
import { useMemo } from 'react';
|
|
4
|
+
import { useApiPaginator } from '../use_api';
|
|
3
5
|
import { useEnrichPeople } from '../use_enrich_people';
|
|
4
|
-
import { useSuspensePaginator } from '../use_suspense_api';
|
|
5
6
|
export function useGroupMembersForNewConversation(t0) {
|
|
6
|
-
const $ = _c(
|
|
7
|
+
const $ = _c(27);
|
|
7
8
|
const {
|
|
8
9
|
id,
|
|
9
10
|
gender
|
|
@@ -53,48 +54,58 @@ export function useGroupMembersForNewConversation(t0) {
|
|
|
53
54
|
} else {
|
|
54
55
|
t5 = $[6];
|
|
55
56
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
t7 = t6 === undefined ? [] : t6;
|
|
57
|
+
let t6;
|
|
58
|
+
if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
|
|
59
|
+
t6 = {
|
|
60
|
+
throwOnError: _temp,
|
|
61
|
+
placeholderData: keepPreviousData
|
|
62
|
+
};
|
|
63
63
|
$[7] = t6;
|
|
64
|
-
$[8] = t7;
|
|
65
64
|
} else {
|
|
66
|
-
|
|
65
|
+
t6 = $[7];
|
|
67
66
|
}
|
|
68
|
-
const
|
|
67
|
+
const response = useApiPaginator(t5, t6);
|
|
68
|
+
const {
|
|
69
|
+
data: t7
|
|
70
|
+
} = response;
|
|
69
71
|
let t8;
|
|
70
|
-
if ($[
|
|
71
|
-
t8 =
|
|
72
|
-
$[
|
|
73
|
-
$[
|
|
72
|
+
if ($[8] !== t7) {
|
|
73
|
+
t8 = t7 === undefined ? [] : t7;
|
|
74
|
+
$[8] = t7;
|
|
75
|
+
$[9] = t8;
|
|
74
76
|
} else {
|
|
75
|
-
t8 = $[
|
|
77
|
+
t8 = $[9];
|
|
76
78
|
}
|
|
77
|
-
const
|
|
79
|
+
const memberships = t8;
|
|
78
80
|
let t9;
|
|
79
|
-
if ($[
|
|
80
|
-
t9 =
|
|
81
|
+
if ($[10] !== memberships) {
|
|
82
|
+
t9 = memberships.map(_temp2);
|
|
83
|
+
$[10] = memberships;
|
|
84
|
+
$[11] = t9;
|
|
85
|
+
} else {
|
|
86
|
+
t9 = $[11];
|
|
87
|
+
}
|
|
88
|
+
const personIds = t9;
|
|
89
|
+
let t10;
|
|
90
|
+
if ($[12] !== id || $[13] !== personIds) {
|
|
91
|
+
t10 = {
|
|
81
92
|
personIds,
|
|
82
93
|
groupId: id
|
|
83
94
|
};
|
|
84
|
-
$[
|
|
85
|
-
$[
|
|
86
|
-
$[
|
|
95
|
+
$[12] = id;
|
|
96
|
+
$[13] = personIds;
|
|
97
|
+
$[14] = t10;
|
|
87
98
|
} else {
|
|
88
|
-
|
|
99
|
+
t10 = $[14];
|
|
89
100
|
}
|
|
90
|
-
const enrichmentMap = useEnrichPeople(
|
|
101
|
+
const enrichmentMap = useEnrichPeople(t10);
|
|
91
102
|
let adultMembers;
|
|
92
103
|
let members;
|
|
93
|
-
let
|
|
94
|
-
if ($[
|
|
95
|
-
let
|
|
96
|
-
if ($[
|
|
97
|
-
|
|
104
|
+
let t11;
|
|
105
|
+
if ($[15] !== enrichmentMap || $[16] !== memberships) {
|
|
106
|
+
let t12;
|
|
107
|
+
if ($[20] !== enrichmentMap) {
|
|
108
|
+
t12 = membership => {
|
|
98
109
|
const {
|
|
99
110
|
person
|
|
100
111
|
} = membership;
|
|
@@ -111,50 +122,53 @@ export function useGroupMembersForNewConversation(t0) {
|
|
|
111
122
|
role: membership.role
|
|
112
123
|
};
|
|
113
124
|
};
|
|
114
|
-
$[
|
|
115
|
-
$[
|
|
125
|
+
$[20] = enrichmentMap;
|
|
126
|
+
$[21] = t12;
|
|
116
127
|
} else {
|
|
117
|
-
|
|
128
|
+
t12 = $[21];
|
|
118
129
|
}
|
|
119
|
-
members = memberships.map(
|
|
120
|
-
adultMembers = members.filter(
|
|
121
|
-
|
|
122
|
-
$[
|
|
123
|
-
$[
|
|
124
|
-
$[
|
|
125
|
-
$[
|
|
126
|
-
$[
|
|
130
|
+
members = memberships.map(t12);
|
|
131
|
+
adultMembers = members.filter(_temp3);
|
|
132
|
+
t11 = members.filter(_temp4);
|
|
133
|
+
$[15] = enrichmentMap;
|
|
134
|
+
$[16] = memberships;
|
|
135
|
+
$[17] = adultMembers;
|
|
136
|
+
$[18] = members;
|
|
137
|
+
$[19] = t11;
|
|
127
138
|
} else {
|
|
128
|
-
adultMembers = $[
|
|
129
|
-
members = $[
|
|
130
|
-
|
|
139
|
+
adultMembers = $[17];
|
|
140
|
+
members = $[18];
|
|
141
|
+
t11 = $[19];
|
|
131
142
|
}
|
|
132
|
-
const childMembers =
|
|
133
|
-
let
|
|
134
|
-
if ($[
|
|
135
|
-
|
|
143
|
+
const childMembers = t11;
|
|
144
|
+
let t12;
|
|
145
|
+
if ($[22] !== adultMembers || $[23] !== childMembers || $[24] !== members || $[25] !== response) {
|
|
146
|
+
t12 = {
|
|
136
147
|
...response,
|
|
137
148
|
data: members,
|
|
138
149
|
adultMembers,
|
|
139
150
|
childMembers
|
|
140
151
|
};
|
|
141
|
-
$[
|
|
142
|
-
$[
|
|
143
|
-
$[
|
|
144
|
-
$[
|
|
145
|
-
$[
|
|
152
|
+
$[22] = adultMembers;
|
|
153
|
+
$[23] = childMembers;
|
|
154
|
+
$[24] = members;
|
|
155
|
+
$[25] = response;
|
|
156
|
+
$[26] = t12;
|
|
146
157
|
} else {
|
|
147
|
-
|
|
158
|
+
t12 = $[26];
|
|
148
159
|
}
|
|
149
|
-
return
|
|
160
|
+
return t12;
|
|
150
161
|
}
|
|
151
|
-
function
|
|
162
|
+
function _temp4(member_0) {
|
|
152
163
|
return member_0.child;
|
|
153
164
|
}
|
|
154
|
-
function
|
|
165
|
+
function _temp3(member) {
|
|
155
166
|
return !member.child;
|
|
156
167
|
}
|
|
157
|
-
function
|
|
168
|
+
function _temp2(m) {
|
|
158
169
|
return +m.person.id;
|
|
159
170
|
}
|
|
171
|
+
function _temp(_error, query) {
|
|
172
|
+
return query.state.data === undefined;
|
|
173
|
+
}
|
|
160
174
|
//# sourceMappingURL=use_group_members_for_new_conversation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_group_members_for_new_conversation.js","names":["useMemo","
|
|
1
|
+
{"version":3,"file":"use_group_members_for_new_conversation.js","names":["keepPreviousData","useMemo","useApiPaginator","useEnrichPeople","useGroupMembersForNewConversation","t0","$","_c","id","gender","t1","t2","t3","Symbol","for","Membership","Person","t4","perPage","include","fields","where","t5","url","data","app","t6","throwOnError","_temp","placeholderData","response","t7","t8","undefined","memberships","t9","map","_temp2","personIds","t10","groupId","enrichmentMap","adultMembers","members","t11","t12","membership","person","enrichment","get","type","avatar","avatarUrl","badges","child","name","firstName","lastName","source","role","filter","_temp3","_temp4","childMembers","member_0","member","m","_error","query","state"],"sources":["../../../src/hooks/groups/use_group_members_for_new_conversation.ts"],"sourcesContent":["import { keepPreviousData } from '@tanstack/react-query'\nimport { useMemo } from 'react'\nimport { MemberResource, ResourceObject } from '../../types'\nimport { GroupsGroupMemberResource } from '../../types/resources/groups/groups_member_resource_with_person'\nimport { useApiPaginator } from '../use_api'\nimport { useEnrichPeople } from '../use_enrich_people'\n\ntype UseApiPaginatorResult<T extends ResourceObject> = ReturnType<typeof useApiPaginator<T>>\n\nexport type GroupMembersForNewConversationResult = Omit<\n UseApiPaginatorResult<GroupsGroupMemberResource>, // We are passing our own \"members\" data shape\n 'data'\n> & {\n data: MemberResource[]\n adultMembers: MemberResource[]\n childMembers: MemberResource[]\n}\n\nexport function useGroupMembersForNewConversation({\n id,\n gender,\n}: {\n id: number\n gender: string | null\n}) {\n const response = useApiPaginator<GroupsGroupMemberResource>(\n {\n url: `/me/groups/${id}/memberships`,\n data: {\n perPage: 100,\n include: ['person'],\n fields: {\n Membership: ['person, role'],\n Person: ['avatar_url', 'name', 'first_name', 'last_name', 'child', 'gender'],\n },\n ...(gender ? { where: { gender } } : {}),\n },\n app: 'groups',\n },\n {\n throwOnError: (_error, query) => query.state.data === undefined,\n placeholderData: keepPreviousData,\n }\n )\n\n const { data: memberships = [] } = response\n const personIds = useMemo(() => memberships.map(m => +m.person.id), [memberships])\n const enrichmentMap = useEnrichPeople({ personIds, groupId: id })\n\n const members: MemberResource[] = memberships.map(membership => {\n const { person } = membership\n const enrichment = enrichmentMap.get(+person.id)\n return {\n type: 'Member',\n avatar: person.avatarUrl,\n badges: enrichment?.badges ?? [],\n child: person.child,\n gender: person.gender,\n id: +person.id,\n name: `${person.firstName} ${person.lastName}`,\n source: [],\n role: membership.role,\n }\n })\n\n const adultMembers = members.filter(member => !member.child)\n const childMembers = members.filter(member => member.child)\n\n return {\n ...response,\n data: members,\n adultMembers,\n childMembers,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/hooks/use_api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InfiniteData } from '@tanstack/react-query';
|
|
1
|
+
import { InfiniteData, keepPreviousData, Query } from '@tanstack/react-query';
|
|
2
2
|
import { ApiCollection, ApiResource, ResourceObject } from '../types';
|
|
3
3
|
import { GetRequest } from '../utils/client';
|
|
4
4
|
import { ResponseError } from '../utils/response_error';
|
|
@@ -10,7 +10,8 @@ export type ApiGetQueryOptions = {
|
|
|
10
10
|
staleTime?: number;
|
|
11
11
|
gcTime?: number;
|
|
12
12
|
enabled?: boolean;
|
|
13
|
-
throwOnError?: boolean | ((error: ResponseError) => boolean);
|
|
13
|
+
throwOnError?: boolean | ((error: ResponseError, query: Query<any, ResponseError>) => boolean);
|
|
14
|
+
placeholderData?: typeof keepPreviousData;
|
|
14
15
|
};
|
|
15
16
|
export declare const useApiGet: <T extends ResourceObject | ResourceObject[]>(args: ApiGetOptions, opts?: ApiGetQueryOptions) => {
|
|
16
17
|
error: ResponseError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_api.d.ts","sourceRoot":"","sources":["../../src/hooks/use_api.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"use_api.d.ts","sourceRoot":"","sources":["../../src/hooks/use_api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,KAAK,EAGN,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,EAAE,UAAU,EAAe,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAsB,MAAM,yBAAyB,CAAA;AAE3E,OAAO,EAAE,GAAG,EAAgB,MAAM,kBAAkB,CAAA;AAGpD,UAAU,aAAc,SAAQ,UAAU;IACxC,GAAG,CAAC,EAAE,GAAG,CAAA;CACV;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,OAAO,CAAC,CAAA;IAC9F,eAAe,CAAC,EAAE,OAAO,gBAAgB,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EACnE,MAAM,aAAa,EACnB,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsB1B,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,cAAc,EACtD,MAAM,aAAa,EACnB,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC1B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_api.js","names":["useInfiniteQuery","useQuery","useContext","ChatContext","throwResponseError","getNextPageParamFromMeta","useApiClient","getRequestQueryKey","useApiGet","args","opts","$","_c","session","apiClient","enabled","token","access_token","t0","t1","t2","queryKey","url","d","headers","t3","app","undefined","get","data","catch","queryFn","query","t4","useApiPaginator","pageParam","pageParmWhere","where","argsWhere","offset","Symbol","for","initialPageParam","getNextPageParam","_temp","t5","pages","flatMap","_temp2","data_0","t6","lastPage","meta","next","page"],"sources":["../../src/hooks/use_api.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"use_api.js","names":["useInfiniteQuery","useQuery","useContext","ChatContext","throwResponseError","getNextPageParamFromMeta","useApiClient","getRequestQueryKey","useApiGet","args","opts","$","_c","session","apiClient","enabled","token","access_token","t0","t1","t2","queryKey","url","d","headers","t3","app","undefined","get","data","catch","queryFn","query","t4","useApiPaginator","pageParam","pageParmWhere","where","argsWhere","offset","Symbol","for","initialPageParam","getNextPageParam","_temp","t5","pages","flatMap","_temp2","data_0","t6","lastPage","meta","next","page"],"sources":["../../src/hooks/use_api.ts"],"sourcesContent":["import {\n InfiniteData,\n keepPreviousData,\n Query,\n useInfiniteQuery,\n useQuery,\n} from '@tanstack/react-query'\nimport { useContext } from 'react'\nimport { ChatContext } from '../contexts/chat_context'\nimport { ApiCollection, ApiResource, ResourceObject } from '../types'\nimport { GetRequest, RequestData } from '../utils/client'\nimport { ResponseError, throwResponseError } from '../utils/response_error'\nimport { getNextPageParamFromMeta } from './paginator_meta'\nimport { App, useApiClient } from './use_api_client'\nimport { getRequestQueryKey, RequestQueryKey } from './use_suspense_api'\n\ninterface ApiGetOptions extends GetRequest {\n app?: App\n}\n\nexport type ApiGetQueryOptions = {\n staleTime?: number\n gcTime?: number\n enabled?: boolean\n throwOnError?: boolean | ((error: ResponseError, query: Query<any, ResponseError>) => boolean)\n placeholderData?: typeof keepPreviousData\n}\n\nexport const useApiGet = <T extends ResourceObject | ResourceObject[]>(\n args: ApiGetOptions,\n opts?: ApiGetQueryOptions\n) => {\n type Resource = ApiResource<T>\n const { session } = useContext(ChatContext)\n const apiClient = useApiClient()\n\n const enabled = !!session.token?.access_token && (opts?.enabled ?? true)\n\n const { data, ...query } = useQuery<Resource, ResponseError>({\n queryKey: getRequestQueryKey(args),\n queryFn: ({ queryKey }) => {\n const [url, d, headers, app = 'chat'] = queryKey as RequestQueryKey\n\n return (apiClient[app].get({ url, data: d, headers }) as Promise<Resource>).catch(\n throwResponseError\n )\n },\n ...opts,\n enabled,\n })\n\n return { ...data, ...query }\n}\n\nexport const useApiPaginator = <T extends ResourceObject>(\n args: ApiGetOptions,\n opts?: ApiGetQueryOptions\n) => {\n const { session } = useContext(ChatContext)\n const apiClient = useApiClient()\n const enabled = !!session.token?.access_token && (opts?.enabled ?? true)\n const query = useInfiniteQuery<\n ApiCollection<T>,\n ResponseError,\n InfiniteData<ApiCollection<T>>,\n any,\n Partial<RequestData> | undefined\n >({\n queryKey: getRequestQueryKey(args),\n queryFn: ({ pageParam }) => {\n const pageParmWhere = pageParam?.where || {}\n const argsWhere = args.data.where || {}\n const where = { ...argsWhere, ...pageParmWhere }\n const app = args.app || 'chat'\n const offset = pageParam?.offset || args.data.offset\n const data = { ...args.data, where, offset }\n\n return apiClient[app].get<ApiCollection<T>>({ url: args.url, data }).catch(throwResponseError)\n },\n initialPageParam: {} as Partial<RequestData>,\n getNextPageParam: lastPage => getNextPageParamFromMeta(lastPage.meta?.next),\n ...(opts || {}),\n enabled,\n })\n\n const data: T[] = query.data?.pages?.flatMap(page => page.data) || []\n\n return { ...query, data }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"AAcA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,+CAA+C,CAAA;AAMtD,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAA;AAQjE,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,eAAe,CAAC,EAAE,mBAAmB,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,mDAAmD,eAAe,
|
|
1
|
+
{"version":3,"file":"groups_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"AAcA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,+CAA+C,CAAA;AAMtD,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAA;AAQjE,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,eAAe,CAAC,EAAE,mBAAmB,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,mDAAmD,eAAe,4CAqH5F,CAAA"}
|
|
@@ -23,7 +23,7 @@ import { Divider, FormList } from './form_list';
|
|
|
23
23
|
import { GenderFilterToggle } from './gender_filter_toggle';
|
|
24
24
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
25
25
|
export const GroupsForm = t0 => {
|
|
26
|
-
const $ = _c(
|
|
26
|
+
const $ = _c(59);
|
|
27
27
|
const {
|
|
28
28
|
groupId,
|
|
29
29
|
chat_group_graph_id,
|
|
@@ -205,9 +205,10 @@ export const GroupsForm = t0 => {
|
|
|
205
205
|
mutate: handleSave,
|
|
206
206
|
isPending
|
|
207
207
|
} = useGroupsConversationCreate(t11);
|
|
208
|
-
|
|
208
|
+
const t12 = groupMemberships.isLoading ? "Loading members..." : undefined;
|
|
209
|
+
let t13;
|
|
209
210
|
if ($[33] !== avatarSelection || $[34] !== customAvatarsEnabled || $[35] !== genderFetching || $[36] !== genderFilterAvailable || $[37] !== genderFilterEnabled || $[38] !== genderValue || $[39] !== group || $[40] !== groupMemberships || $[41] !== handleGenderToggle || $[42] !== title) {
|
|
210
|
-
|
|
211
|
+
t13 = /*#__PURE__*/_jsx(FormContent, {
|
|
211
212
|
group: group,
|
|
212
213
|
title: title,
|
|
213
214
|
setTitle: setTitle,
|
|
@@ -231,63 +232,65 @@ export const GroupsForm = t0 => {
|
|
|
231
232
|
$[40] = groupMemberships;
|
|
232
233
|
$[41] = handleGenderToggle;
|
|
233
234
|
$[42] = title;
|
|
234
|
-
$[43] =
|
|
235
|
+
$[43] = t13;
|
|
235
236
|
} else {
|
|
236
|
-
|
|
237
|
+
t13 = $[43];
|
|
237
238
|
}
|
|
238
|
-
let
|
|
239
|
-
if ($[44] !== groupMemberships.adultMembers || $[45] !== groupMemberships.fetchNextPage || $[46] !== groupMemberships.isFetchingNextPage || $[47] !== t12) {
|
|
240
|
-
|
|
239
|
+
let t14;
|
|
240
|
+
if ($[44] !== groupMemberships.adultMembers || $[45] !== groupMemberships.fetchNextPage || $[46] !== groupMemberships.isFetchingNextPage || $[47] !== t12 || $[48] !== t13) {
|
|
241
|
+
t14 = /*#__PURE__*/_jsx(FormList, {
|
|
241
242
|
memberData: groupMemberships.adultMembers,
|
|
242
243
|
loadingMore: groupMemberships.isFetchingNextPage,
|
|
243
244
|
onEndReached: groupMemberships.fetchNextPage,
|
|
244
|
-
|
|
245
|
+
listEmptyText: t12,
|
|
246
|
+
FormContent: t13
|
|
245
247
|
});
|
|
246
248
|
$[44] = groupMemberships.adultMembers;
|
|
247
249
|
$[45] = groupMemberships.fetchNextPage;
|
|
248
250
|
$[46] = groupMemberships.isFetchingNextPage;
|
|
249
251
|
$[47] = t12;
|
|
250
252
|
$[48] = t13;
|
|
253
|
+
$[49] = t14;
|
|
251
254
|
} else {
|
|
252
|
-
|
|
255
|
+
t14 = $[49];
|
|
253
256
|
}
|
|
254
|
-
const
|
|
255
|
-
let
|
|
256
|
-
if ($[
|
|
257
|
-
|
|
258
|
-
$[
|
|
259
|
-
$[
|
|
257
|
+
const t15 = !title || isPending || validationPending || warnings.length > 0;
|
|
258
|
+
let t16;
|
|
259
|
+
if ($[50] !== handleSave) {
|
|
260
|
+
t16 = () => handleSave();
|
|
261
|
+
$[50] = handleSave;
|
|
262
|
+
$[51] = t16;
|
|
260
263
|
} else {
|
|
261
|
-
|
|
264
|
+
t16 = $[51];
|
|
262
265
|
}
|
|
263
|
-
let
|
|
264
|
-
if ($[
|
|
265
|
-
|
|
266
|
-
disabled:
|
|
266
|
+
let t17;
|
|
267
|
+
if ($[52] !== t15 || $[53] !== t16 || $[54] !== warnings) {
|
|
268
|
+
t17 = /*#__PURE__*/_jsx(ActionButton, {
|
|
269
|
+
disabled: t15,
|
|
267
270
|
title: "Start Conversation",
|
|
268
|
-
onPress:
|
|
271
|
+
onPress: t16,
|
|
269
272
|
infoText: "Conversation will be automatically updated if any members are added or removed from this group.",
|
|
270
273
|
warnings: warnings
|
|
271
274
|
});
|
|
272
|
-
$[51] = t14;
|
|
273
275
|
$[52] = t15;
|
|
274
|
-
$[53] =
|
|
275
|
-
$[54] =
|
|
276
|
+
$[53] = t16;
|
|
277
|
+
$[54] = warnings;
|
|
278
|
+
$[55] = t17;
|
|
276
279
|
} else {
|
|
277
|
-
|
|
280
|
+
t17 = $[55];
|
|
278
281
|
}
|
|
279
|
-
let
|
|
280
|
-
if ($[
|
|
281
|
-
|
|
282
|
-
children: [
|
|
282
|
+
let t18;
|
|
283
|
+
if ($[56] !== t14 || $[57] !== t17) {
|
|
284
|
+
t18 = /*#__PURE__*/_jsxs(KeyboardView, {
|
|
285
|
+
children: [t14, t17]
|
|
283
286
|
});
|
|
284
|
-
$[
|
|
285
|
-
$[56] = t16;
|
|
287
|
+
$[56] = t14;
|
|
286
288
|
$[57] = t17;
|
|
289
|
+
$[58] = t18;
|
|
287
290
|
} else {
|
|
288
|
-
|
|
291
|
+
t18 = $[58];
|
|
289
292
|
}
|
|
290
|
-
return
|
|
293
|
+
return t18;
|
|
291
294
|
};
|
|
292
295
|
function FormContent(t0) {
|
|
293
296
|
const $ = _c(58);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups_form.js","names":["StackActions","useNavigation","React","useCallback","useMemo","useRef","useState","Platform","Pressable","StyleSheet","View","Banner","ChildNotice","Heading","Text","ActionButton","KeyboardView","AutoFocusAwareTextInput","useApiClient","useCurrentPerson","useSuspenseGet","useTheme","useGroupChatConversationPayload","useGroupMembersForNewConversation","useGroupsConversationCreate","patchConversationAvatar","useConversationValidate","availableFeatures","useFeatures","useMyGender","useUploadClient","pluralize","genderDisplayLabel","Haptic","AvatarSelectionRow","Divider","FormList","GenderFilterToggle","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GroupsForm","t0","$","_c","groupId","chat_group_graph_id","avatarSelection","navigation","apiClient","uploadClient","title","setTitle","genderFilterEnabled","setGenderFilterEnabled","featureEnabled","t1","custom_conversation_avatars","customAvatarsEnabled","t2","conversation_safety_lock","safetyLockEnabled","isFeatureEnabled","genderFilterAvailable","genderId","genderValue","isFetching","genderFetching","t3","t4","Symbol","for","fields","Group","t5","url","data","app","group","activeGenderId","activeGenderValue","t6","enabled","payload","isLoading","isLoadingPayload","t7","warnings","validationPending","t8","id","gender","groupMemberships","t9","name","displayLabel","defaultTitle","shouldAutoPopulateTitle","shouldClearAutoPopulatedTitle","handleGenderToggle","t10","conversationId","dispatch","popTo","conversation_id","notificationSuccess","kind","handleCreateSuccess","t11","onSuccess","mutate","handleSave","isPending","t12","FormContent","filteredMemberCount","adultMembers","length","t13","fetchNextPage","isFetchingNextPage","memberData","loadingMore","onEndReached","t14","t15","t16","disabled","onPress","infoText","t17","children","onGenderToggle","styles","useStyles","inputRef","currentPerson","membershipsCount","m","find","myGroupsMembership","isLeader","role","childMembers","hasChildren","displayCount","memberHeaderLabel","showMemberError","isError","current","focus","handleTitleSectionPress","variant","groupName","style","toSection","required","titleInput","placeholder","autoFocus","titleSection","banner","appearance","description","memberSection","t18","formContent","colors","statusErrorText","textColorDefaultPrimary","create","paddingBottom","flex","padding","flexDirection","gap","fontSize","select","ios","android","color","marginTop"],"sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport React, { useCallback, useMemo, useRef, useState } from 'react'\nimport { Platform, Pressable, StyleSheet, TextInput, View } from 'react-native'\nimport { Banner, ChildNotice, Heading, Text } from '../../../components'\nimport { ActionButton } from '../../../components/display/action_button'\nimport { KeyboardView } from '../../../components/display/keyboard_view'\nimport { AutoFocusAwareTextInput } from '../../../components/display/text_input'\nimport { useApiClient, useCurrentPerson, useSuspenseGet, useTheme } from '../../../hooks'\nimport { useGroupChatConversationPayload } from '../../../hooks/groups/use_group_chat_conversation_payload'\nimport {\n GroupMembersForNewConversationResult,\n useGroupMembersForNewConversation,\n} from '../../../hooks/groups/use_group_members_for_new_conversation'\nimport { useGroupsConversationCreate } from '../../../hooks/groups/use_groups_conversation_create'\nimport {\n type AvatarUpdatePayload,\n patchConversationAvatar,\n} from '../../../hooks/use_conversation_avatar_update'\nimport { useConversationValidate } from '../../../hooks/use_conversation_validate'\nimport { availableFeatures, useFeatures } from '../../../hooks/use_features'\nimport { useMyGender } from '../../../hooks/use_my_gender'\nimport { useUploadClient } from '../../../hooks/use_upload_client'\nimport { GroupsGroupResource } from '../../../types'\nimport { GraphId } from '../../../types/resources/group_resource'\nimport { pluralize } from '../../../utils'\nimport { genderDisplayLabel } from '../../../utils/gender_display_label'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { AvatarSelectionRow } from './avatar_selection_row'\nimport { Divider, FormList } from './form_list'\nimport { GenderFilterToggle } from './gender_filter_toggle'\n\ntype GroupsFormProps = {\n groupId: number\n chat_group_graph_id?: GraphId\n avatarSelection?: AvatarUpdatePayload\n}\n\nexport const GroupsForm = ({ groupId, chat_group_graph_id, avatarSelection }: GroupsFormProps) => {\n const navigation = useNavigation()\n const apiClient = useApiClient()\n const uploadClient = useUploadClient()\n const [title, setTitle] = useState('')\n const [genderFilterEnabled, setGenderFilterEnabled] = useState(false)\n const { featureEnabled } = useFeatures()\n const customAvatarsEnabled = featureEnabled(availableFeatures.custom_conversation_avatars)\n const safetyLockEnabled = featureEnabled(availableFeatures.conversation_safety_lock)\n const {\n isFeatureEnabled: genderFilterAvailable,\n genderId,\n genderValue,\n isFetching: genderFetching,\n } = useMyGender()\n const { data: group } = useSuspenseGet<GroupsGroupResource>({\n url: `/me/groups/${groupId}`,\n data: {\n fields: {\n Group: [],\n },\n },\n app: 'groups',\n })\n\n const activeGenderId = genderFilterEnabled ? genderId : null\n const activeGenderValue = genderFilterEnabled ? genderValue : null\n\n const { payload, isLoading: isLoadingPayload } = useGroupChatConversationPayload({\n groupId,\n enabled: safetyLockEnabled,\n })\n\n const { warnings, validationPending } = useConversationValidate({\n payload,\n isLoadingPayload,\n genderId: activeGenderId,\n enabled: safetyLockEnabled,\n })\n\n const groupMemberships = useGroupMembersForNewConversation({\n id: groupId,\n gender: activeGenderValue,\n })\n\n const handleGenderToggle = (enabled: boolean) => {\n const displayLabel = genderValue ? genderDisplayLabel(genderValue) : ''\n const defaultTitle = `${group.name} (${displayLabel})`\n const shouldAutoPopulateTitle = enabled && genderValue && title === ''\n const shouldClearAutoPopulatedTitle = !enabled && title === defaultTitle\n\n setGenderFilterEnabled(enabled)\n\n if (shouldAutoPopulateTitle) {\n setTitle(defaultTitle)\n } else if (shouldClearAutoPopulatedTitle) {\n setTitle('')\n }\n }\n\n const handleCreateSuccess = useCallback(\n (conversationId: number) => {\n navigation.dispatch(\n StackActions.popTo('Conversation', {\n conversation_id: conversationId,\n chat_group_graph_id,\n })\n )\n Haptic.notificationSuccess()\n\n if (avatarSelection && avatarSelection.kind !== 'clear') {\n patchConversationAvatar(apiClient, uploadClient, conversationId, avatarSelection)\n }\n },\n [apiClient, avatarSelection, chat_group_graph_id, navigation, uploadClient]\n )\n\n const { mutate: handleSave, isPending } = useGroupsConversationCreate({\n groupId,\n title,\n genderId: activeGenderId,\n onSuccess: handleCreateSuccess,\n })\n\n return (\n <KeyboardView>\n <FormList\n memberData={groupMemberships.adultMembers}\n loadingMore={groupMemberships.isFetchingNextPage}\n onEndReached={groupMemberships.fetchNextPage}\n FormContent={\n <FormContent\n group={group}\n title={title}\n setTitle={setTitle}\n genderFilterAvailable={genderFilterAvailable}\n genderFilterEnabled={genderFilterEnabled}\n genderValue={genderValue}\n genderFetching={genderFetching}\n onGenderToggle={handleGenderToggle}\n groupMemberships={groupMemberships}\n filteredMemberCount={groupMemberships.adultMembers.length}\n avatarSelection={avatarSelection}\n customAvatarsEnabled={customAvatarsEnabled}\n />\n }\n />\n <ActionButton\n disabled={!title || isPending || validationPending || warnings.length > 0}\n title=\"Start Conversation\"\n onPress={() => handleSave()}\n infoText=\"Conversation will be automatically updated if any members are added or removed from this group.\"\n warnings={warnings}\n />\n </KeyboardView>\n )\n}\n\ninterface FormContentProps {\n group: GroupsGroupResource\n title: string\n setTitle: (title: string) => void\n genderFilterAvailable: boolean\n genderFilterEnabled: boolean\n genderValue: string | null\n genderFetching: boolean\n onGenderToggle: (enabled: boolean) => void\n groupMemberships: GroupMembersForNewConversationResult\n filteredMemberCount: number\n avatarSelection?: AvatarUpdatePayload\n customAvatarsEnabled: boolean\n}\n\nfunction FormContent({\n group,\n title,\n setTitle,\n genderFilterAvailable,\n genderFilterEnabled,\n genderValue,\n genderFetching,\n onGenderToggle,\n groupMemberships,\n filteredMemberCount,\n avatarSelection,\n customAvatarsEnabled,\n}: FormContentProps) {\n const styles = useStyles()\n const inputRef = useRef<TextInput>(null)\n const currentPerson = useCurrentPerson()\n const { name, membershipsCount } = group\n\n const myGroupsMembership = useMemo(\n () => groupMemberships.data.find(m => m.id === currentPerson.id),\n [groupMemberships.data, currentPerson.id]\n )\n const isLeader = myGroupsMembership?.role === 'leader'\n\n const childMembers = groupMemberships.childMembers\n const hasChildren = childMembers.length > 0\n const displayCount = genderFilterEnabled ? filteredMemberCount : membershipsCount\n const memberHeaderLabel = `${pluralize(displayCount, 'member')} selected`\n\n const showMemberError = groupMemberships.isError\n\n const handleTitleSectionPress = useCallback(() => {\n inputRef.current?.focus()\n }, [])\n\n return (\n <View style={styles.formContent}>\n <View style={styles.toSection}>\n <Heading variant=\"h3\">To:</Heading>\n <Text style={styles.groupName}>{name}</Text>\n </View>\n <Divider />\n <Pressable style={styles.titleSection} onPress={handleTitleSectionPress}>\n <Heading variant=\"h3\">\n Title <Text style={styles.required}>*</Text>\n </Heading>\n <AutoFocusAwareTextInput\n placeholder=\"Topic of conversation\"\n value={title}\n onChangeText={setTitle}\n style={styles.titleInput}\n autoFocus={true}\n inputRef={inputRef}\n />\n </Pressable>\n <Divider />\n {customAvatarsEnabled && (\n <>\n <AvatarSelectionRow avatarSelection={avatarSelection} />\n <Divider />\n </>\n )}\n {genderFilterAvailable && (\n <>\n <GenderFilterToggle\n genderValue={genderValue}\n isFetching={genderFetching}\n enabled={genderFilterEnabled}\n onToggle={onGenderToggle}\n />\n <Divider />\n </>\n )}\n <View style={styles.memberSection}>\n <Heading variant=\"h3\">{memberHeaderLabel}</Heading>\n {hasChildren && (\n <ChildNotice childMembers={childMembers} showMembers={isLeader} style={styles.banner} />\n )}\n {showMemberError && (\n <Banner\n appearance=\"error\"\n description=\"There was an issue loading group members, please refresh and try again.\"\n style={styles.banner}\n />\n )}\n </View>\n </View>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const sectionPadding = 16\n const inputPadding = 8\n\n return StyleSheet.create({\n formContent: {\n paddingBottom: sectionPadding,\n flex: 1,\n },\n toSection: {\n padding: sectionPadding,\n flexDirection: 'row',\n gap: 8,\n },\n groupName: {\n fontSize: 18,\n flex: 1,\n },\n titleSection: {\n padding: sectionPadding,\n paddingBottom: Platform.select({\n ios: sectionPadding,\n android: sectionPadding - inputPadding,\n }),\n gap: Platform.select({\n ios: 8,\n android: 0,\n }),\n },\n titleInput: {\n fontSize: 18,\n color: colors.textColorDefaultPrimary,\n },\n required: {\n color: colors.statusErrorText,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"groups_form.js","names":["StackActions","useNavigation","React","useCallback","useMemo","useRef","useState","Platform","Pressable","StyleSheet","View","Banner","ChildNotice","Heading","Text","ActionButton","KeyboardView","AutoFocusAwareTextInput","useApiClient","useCurrentPerson","useSuspenseGet","useTheme","useGroupChatConversationPayload","useGroupMembersForNewConversation","useGroupsConversationCreate","patchConversationAvatar","useConversationValidate","availableFeatures","useFeatures","useMyGender","useUploadClient","pluralize","genderDisplayLabel","Haptic","AvatarSelectionRow","Divider","FormList","GenderFilterToggle","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GroupsForm","t0","$","_c","groupId","chat_group_graph_id","avatarSelection","navigation","apiClient","uploadClient","title","setTitle","genderFilterEnabled","setGenderFilterEnabled","featureEnabled","t1","custom_conversation_avatars","customAvatarsEnabled","t2","conversation_safety_lock","safetyLockEnabled","isFeatureEnabled","genderFilterAvailable","genderId","genderValue","isFetching","genderFetching","t3","t4","Symbol","for","fields","Group","t5","url","data","app","group","activeGenderId","activeGenderValue","t6","enabled","payload","isLoading","isLoadingPayload","t7","warnings","validationPending","t8","id","gender","groupMemberships","t9","name","displayLabel","defaultTitle","shouldAutoPopulateTitle","shouldClearAutoPopulatedTitle","handleGenderToggle","t10","conversationId","dispatch","popTo","conversation_id","notificationSuccess","kind","handleCreateSuccess","t11","onSuccess","mutate","handleSave","isPending","t12","undefined","t13","FormContent","filteredMemberCount","adultMembers","length","t14","fetchNextPage","isFetchingNextPage","memberData","loadingMore","onEndReached","listEmptyText","t15","t16","t17","disabled","onPress","infoText","t18","children","onGenderToggle","styles","useStyles","inputRef","currentPerson","membershipsCount","m","find","myGroupsMembership","isLeader","role","childMembers","hasChildren","displayCount","memberHeaderLabel","showMemberError","isError","current","focus","handleTitleSectionPress","variant","groupName","style","toSection","required","titleInput","placeholder","autoFocus","titleSection","banner","appearance","description","memberSection","formContent","colors","statusErrorText","textColorDefaultPrimary","create","paddingBottom","flex","padding","flexDirection","gap","fontSize","select","ios","android","color","marginTop"],"sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport React, { useCallback, useMemo, useRef, useState } from 'react'\nimport { Platform, Pressable, StyleSheet, TextInput, View } from 'react-native'\nimport { Banner, ChildNotice, Heading, Text } from '../../../components'\nimport { ActionButton } from '../../../components/display/action_button'\nimport { KeyboardView } from '../../../components/display/keyboard_view'\nimport { AutoFocusAwareTextInput } from '../../../components/display/text_input'\nimport { useApiClient, useCurrentPerson, useSuspenseGet, useTheme } from '../../../hooks'\nimport { useGroupChatConversationPayload } from '../../../hooks/groups/use_group_chat_conversation_payload'\nimport {\n GroupMembersForNewConversationResult,\n useGroupMembersForNewConversation,\n} from '../../../hooks/groups/use_group_members_for_new_conversation'\nimport { useGroupsConversationCreate } from '../../../hooks/groups/use_groups_conversation_create'\nimport {\n type AvatarUpdatePayload,\n patchConversationAvatar,\n} from '../../../hooks/use_conversation_avatar_update'\nimport { useConversationValidate } from '../../../hooks/use_conversation_validate'\nimport { availableFeatures, useFeatures } from '../../../hooks/use_features'\nimport { useMyGender } from '../../../hooks/use_my_gender'\nimport { useUploadClient } from '../../../hooks/use_upload_client'\nimport { GroupsGroupResource } from '../../../types'\nimport { GraphId } from '../../../types/resources/group_resource'\nimport { pluralize } from '../../../utils'\nimport { genderDisplayLabel } from '../../../utils/gender_display_label'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { AvatarSelectionRow } from './avatar_selection_row'\nimport { Divider, FormList } from './form_list'\nimport { GenderFilterToggle } from './gender_filter_toggle'\n\ntype GroupsFormProps = {\n groupId: number\n chat_group_graph_id?: GraphId\n avatarSelection?: AvatarUpdatePayload\n}\n\nexport const GroupsForm = ({ groupId, chat_group_graph_id, avatarSelection }: GroupsFormProps) => {\n const navigation = useNavigation()\n const apiClient = useApiClient()\n const uploadClient = useUploadClient()\n const [title, setTitle] = useState('')\n const [genderFilterEnabled, setGenderFilterEnabled] = useState(false)\n const { featureEnabled } = useFeatures()\n const customAvatarsEnabled = featureEnabled(availableFeatures.custom_conversation_avatars)\n const safetyLockEnabled = featureEnabled(availableFeatures.conversation_safety_lock)\n const {\n isFeatureEnabled: genderFilterAvailable,\n genderId,\n genderValue,\n isFetching: genderFetching,\n } = useMyGender()\n const { data: group } = useSuspenseGet<GroupsGroupResource>({\n url: `/me/groups/${groupId}`,\n data: {\n fields: {\n Group: [],\n },\n },\n app: 'groups',\n })\n\n const activeGenderId = genderFilterEnabled ? genderId : null\n const activeGenderValue = genderFilterEnabled ? genderValue : null\n\n const { payload, isLoading: isLoadingPayload } = useGroupChatConversationPayload({\n groupId,\n enabled: safetyLockEnabled,\n })\n\n const { warnings, validationPending } = useConversationValidate({\n payload,\n isLoadingPayload,\n genderId: activeGenderId,\n enabled: safetyLockEnabled,\n })\n\n const groupMemberships = useGroupMembersForNewConversation({\n id: groupId,\n gender: activeGenderValue,\n })\n\n const handleGenderToggle = (enabled: boolean) => {\n const displayLabel = genderValue ? genderDisplayLabel(genderValue) : ''\n const defaultTitle = `${group.name} (${displayLabel})`\n const shouldAutoPopulateTitle = enabled && genderValue && title === ''\n const shouldClearAutoPopulatedTitle = !enabled && title === defaultTitle\n\n setGenderFilterEnabled(enabled)\n\n if (shouldAutoPopulateTitle) {\n setTitle(defaultTitle)\n } else if (shouldClearAutoPopulatedTitle) {\n setTitle('')\n }\n }\n\n const handleCreateSuccess = useCallback(\n (conversationId: number) => {\n navigation.dispatch(\n StackActions.popTo('Conversation', {\n conversation_id: conversationId,\n chat_group_graph_id,\n })\n )\n Haptic.notificationSuccess()\n\n if (avatarSelection && avatarSelection.kind !== 'clear') {\n patchConversationAvatar(apiClient, uploadClient, conversationId, avatarSelection)\n }\n },\n [apiClient, avatarSelection, chat_group_graph_id, navigation, uploadClient]\n )\n\n const { mutate: handleSave, isPending } = useGroupsConversationCreate({\n groupId,\n title,\n genderId: activeGenderId,\n onSuccess: handleCreateSuccess,\n })\n\n return (\n <KeyboardView>\n <FormList\n memberData={groupMemberships.adultMembers}\n loadingMore={groupMemberships.isFetchingNextPage}\n onEndReached={groupMemberships.fetchNextPage}\n listEmptyText={groupMemberships.isLoading ? 'Loading members...' : undefined}\n FormContent={\n <FormContent\n group={group}\n title={title}\n setTitle={setTitle}\n genderFilterAvailable={genderFilterAvailable}\n genderFilterEnabled={genderFilterEnabled}\n genderValue={genderValue}\n genderFetching={genderFetching}\n onGenderToggle={handleGenderToggle}\n groupMemberships={groupMemberships}\n filteredMemberCount={groupMemberships.adultMembers.length}\n avatarSelection={avatarSelection}\n customAvatarsEnabled={customAvatarsEnabled}\n />\n }\n />\n <ActionButton\n disabled={!title || isPending || validationPending || warnings.length > 0}\n title=\"Start Conversation\"\n onPress={() => handleSave()}\n infoText=\"Conversation will be automatically updated if any members are added or removed from this group.\"\n warnings={warnings}\n />\n </KeyboardView>\n )\n}\n\ninterface FormContentProps {\n group: GroupsGroupResource\n title: string\n setTitle: (title: string) => void\n genderFilterAvailable: boolean\n genderFilterEnabled: boolean\n genderValue: string | null\n genderFetching: boolean\n onGenderToggle: (enabled: boolean) => void\n groupMemberships: GroupMembersForNewConversationResult\n filteredMemberCount: number\n avatarSelection?: AvatarUpdatePayload\n customAvatarsEnabled: boolean\n}\n\nfunction FormContent({\n group,\n title,\n setTitle,\n genderFilterAvailable,\n genderFilterEnabled,\n genderValue,\n genderFetching,\n onGenderToggle,\n groupMemberships,\n filteredMemberCount,\n avatarSelection,\n customAvatarsEnabled,\n}: FormContentProps) {\n const styles = useStyles()\n const inputRef = useRef<TextInput>(null)\n const currentPerson = useCurrentPerson()\n const { name, membershipsCount } = group\n\n const myGroupsMembership = useMemo(\n () => groupMemberships.data.find(m => m.id === currentPerson.id),\n [groupMemberships.data, currentPerson.id]\n )\n const isLeader = myGroupsMembership?.role === 'leader'\n\n const childMembers = groupMemberships.childMembers\n const hasChildren = childMembers.length > 0\n const displayCount = genderFilterEnabled ? filteredMemberCount : membershipsCount\n const memberHeaderLabel = `${pluralize(displayCount, 'member')} selected`\n\n const showMemberError = groupMemberships.isError\n\n const handleTitleSectionPress = useCallback(() => {\n inputRef.current?.focus()\n }, [])\n\n return (\n <View style={styles.formContent}>\n <View style={styles.toSection}>\n <Heading variant=\"h3\">To:</Heading>\n <Text style={styles.groupName}>{name}</Text>\n </View>\n <Divider />\n <Pressable style={styles.titleSection} onPress={handleTitleSectionPress}>\n <Heading variant=\"h3\">\n Title <Text style={styles.required}>*</Text>\n </Heading>\n <AutoFocusAwareTextInput\n placeholder=\"Topic of conversation\"\n value={title}\n onChangeText={setTitle}\n style={styles.titleInput}\n autoFocus={true}\n inputRef={inputRef}\n />\n </Pressable>\n <Divider />\n {customAvatarsEnabled && (\n <>\n <AvatarSelectionRow avatarSelection={avatarSelection} />\n <Divider />\n </>\n )}\n {genderFilterAvailable && (\n <>\n <GenderFilterToggle\n genderValue={genderValue}\n isFetching={genderFetching}\n enabled={genderFilterEnabled}\n onToggle={onGenderToggle}\n />\n <Divider />\n </>\n )}\n <View style={styles.memberSection}>\n <Heading variant=\"h3\">{memberHeaderLabel}</Heading>\n {hasChildren && (\n <ChildNotice childMembers={childMembers} showMembers={isLeader} style={styles.banner} />\n )}\n {showMemberError && (\n <Banner\n appearance=\"error\"\n description=\"There was an issue loading group members, please refresh and try again.\"\n style={styles.banner}\n />\n )}\n </View>\n </View>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const sectionPadding = 16\n const inputPadding = 8\n\n return StyleSheet.create({\n formContent: {\n paddingBottom: sectionPadding,\n flex: 1,\n },\n toSection: {\n padding: sectionPadding,\n flexDirection: 'row',\n gap: 8,\n },\n groupName: {\n fontSize: 18,\n flex: 1,\n },\n titleSection: {\n padding: sectionPadding,\n paddingBottom: Platform.select({\n ios: sectionPadding,\n android: sectionPadding - inputPadding,\n }),\n gap: Platform.select({\n ios: 8,\n android: 0,\n }),\n },\n titleInput: {\n fontSize: 18,\n color: colors.textColorDefaultPrimary,\n },\n required: {\n color: colors.statusErrorText,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planningcenter/chat-react-native",
|
|
3
|
-
"version": "4.4.1-qa-staging.
|
|
3
|
+
"version": "4.4.1-qa-staging.8",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@fortawesome/fontawesome-svg-core": "^7.2.0",
|
|
35
35
|
"@fortawesome/react-native-fontawesome": "^0.3.2",
|
|
36
|
-
"@planningcenter/emoji-keyboard": "4.4.1-qa-staging.
|
|
36
|
+
"@planningcenter/emoji-keyboard": "4.4.1-qa-staging.8",
|
|
37
37
|
"lodash-inflection": "^1.5.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"sf-symbols-typescript": "^2.2.0",
|
|
85
85
|
"typescript": "~6.0.3"
|
|
86
86
|
},
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "99dd70ff43acab9e20bf972700efaee7a3fa5b1c"
|
|
88
88
|
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
+
import { keepPreviousData } from '@tanstack/react-query'
|
|
1
2
|
import { useMemo } from 'react'
|
|
2
3
|
import { MemberResource, ResourceObject } from '../../types'
|
|
3
4
|
import { GroupsGroupMemberResource } from '../../types/resources/groups/groups_member_resource_with_person'
|
|
5
|
+
import { useApiPaginator } from '../use_api'
|
|
4
6
|
import { useEnrichPeople } from '../use_enrich_people'
|
|
5
|
-
import { useSuspensePaginator } from '../use_suspense_api'
|
|
6
7
|
|
|
7
|
-
type
|
|
8
|
-
typeof useSuspensePaginator<T>
|
|
9
|
-
>
|
|
8
|
+
type UseApiPaginatorResult<T extends ResourceObject> = ReturnType<typeof useApiPaginator<T>>
|
|
10
9
|
|
|
11
10
|
export type GroupMembersForNewConversationResult = Omit<
|
|
12
|
-
|
|
11
|
+
UseApiPaginatorResult<GroupsGroupMemberResource>, // We are passing our own "members" data shape
|
|
13
12
|
'data'
|
|
14
13
|
> & {
|
|
15
14
|
data: MemberResource[]
|
|
@@ -24,19 +23,25 @@ export function useGroupMembersForNewConversation({
|
|
|
24
23
|
id: number
|
|
25
24
|
gender: string | null
|
|
26
25
|
}) {
|
|
27
|
-
const response =
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
26
|
+
const response = useApiPaginator<GroupsGroupMemberResource>(
|
|
27
|
+
{
|
|
28
|
+
url: `/me/groups/${id}/memberships`,
|
|
29
|
+
data: {
|
|
30
|
+
perPage: 100,
|
|
31
|
+
include: ['person'],
|
|
32
|
+
fields: {
|
|
33
|
+
Membership: ['person, role'],
|
|
34
|
+
Person: ['avatar_url', 'name', 'first_name', 'last_name', 'child', 'gender'],
|
|
35
|
+
},
|
|
36
|
+
...(gender ? { where: { gender } } : {}),
|
|
35
37
|
},
|
|
36
|
-
|
|
38
|
+
app: 'groups',
|
|
37
39
|
},
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
{
|
|
41
|
+
throwOnError: (_error, query) => query.state.data === undefined,
|
|
42
|
+
placeholderData: keepPreviousData,
|
|
43
|
+
}
|
|
44
|
+
)
|
|
40
45
|
|
|
41
46
|
const { data: memberships = [] } = response
|
|
42
47
|
const personIds = useMemo(() => memberships.map(m => +m.person.id), [memberships])
|
package/src/hooks/use_api.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
InfiniteData,
|
|
3
|
+
keepPreviousData,
|
|
4
|
+
Query,
|
|
5
|
+
useInfiniteQuery,
|
|
6
|
+
useQuery,
|
|
7
|
+
} from '@tanstack/react-query'
|
|
2
8
|
import { useContext } from 'react'
|
|
3
9
|
import { ChatContext } from '../contexts/chat_context'
|
|
4
10
|
import { ApiCollection, ApiResource, ResourceObject } from '../types'
|
|
@@ -16,7 +22,8 @@ export type ApiGetQueryOptions = {
|
|
|
16
22
|
staleTime?: number
|
|
17
23
|
gcTime?: number
|
|
18
24
|
enabled?: boolean
|
|
19
|
-
throwOnError?: boolean | ((error: ResponseError) => boolean)
|
|
25
|
+
throwOnError?: boolean | ((error: ResponseError, query: Query<any, ResponseError>) => boolean)
|
|
26
|
+
placeholderData?: typeof keepPreviousData
|
|
20
27
|
}
|
|
21
28
|
|
|
22
29
|
export const useApiGet = <T extends ResourceObject | ResourceObject[]>(
|
|
@@ -125,6 +125,7 @@ export const GroupsForm = ({ groupId, chat_group_graph_id, avatarSelection }: Gr
|
|
|
125
125
|
memberData={groupMemberships.adultMembers}
|
|
126
126
|
loadingMore={groupMemberships.isFetchingNextPage}
|
|
127
127
|
onEndReached={groupMemberships.fetchNextPage}
|
|
128
|
+
listEmptyText={groupMemberships.isLoading ? 'Loading members...' : undefined}
|
|
128
129
|
FormContent={
|
|
129
130
|
<FormContent
|
|
130
131
|
group={group}
|