@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.
@@ -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 { useSuspensePaginator } from '../use_suspense_api';
4
- type UseSuspensePaginatorResult<T extends ResourceObject> = ReturnType<typeof useSuspensePaginator<T>>;
5
- export type GroupMembersForNewConversationResult = Omit<UseSuspensePaginatorResult<GroupsGroupMemberResource>, // We are passing our own "members" data shape
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
- totalCount: number;
19
- infiniteData: import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, Partial<import("../..").RequestData> | undefined>;
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: boolean;
27
- isSuccess: boolean;
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: Response | null;
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>, Partial<import("../..").RequestData> | undefined>, Response>>;
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
- fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, Partial<import("../..").RequestData> | undefined>, Response>>;
43
- fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("../..").ApiCollection<GroupsGroupMemberResource>, Partial<import("../..").RequestData> | undefined>, Response>>;
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":"AACA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iEAAiE,CAAA;AAE3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,KAAK,0BAA0B,CAAC,CAAC,SAAS,cAAc,IAAI,UAAU,CACpE,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAC/B,CAAA;AAED,MAAM,MAAM,oCAAoC,GAAG,IAAI,CACrD,0BAA0B,CAAC,yBAAyB,CAAC,EAAE,8CAA8C;AACrG,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CA"}
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(26);
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
- const response = useSuspensePaginator(t5);
57
- const {
58
- data: t6
59
- } = response;
60
- let t7;
61
- if ($[7] !== t6) {
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
- t7 = $[8];
65
+ t6 = $[7];
67
66
  }
68
- const memberships = t7;
67
+ const response = useApiPaginator(t5, t6);
68
+ const {
69
+ data: t7
70
+ } = response;
69
71
  let t8;
70
- if ($[9] !== memberships) {
71
- t8 = memberships.map(_temp);
72
- $[9] = memberships;
73
- $[10] = t8;
72
+ if ($[8] !== t7) {
73
+ t8 = t7 === undefined ? [] : t7;
74
+ $[8] = t7;
75
+ $[9] = t8;
74
76
  } else {
75
- t8 = $[10];
77
+ t8 = $[9];
76
78
  }
77
- const personIds = t8;
79
+ const memberships = t8;
78
80
  let t9;
79
- if ($[11] !== id || $[12] !== personIds) {
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
- $[11] = id;
85
- $[12] = personIds;
86
- $[13] = t9;
95
+ $[12] = id;
96
+ $[13] = personIds;
97
+ $[14] = t10;
87
98
  } else {
88
- t9 = $[13];
99
+ t10 = $[14];
89
100
  }
90
- const enrichmentMap = useEnrichPeople(t9);
101
+ const enrichmentMap = useEnrichPeople(t10);
91
102
  let adultMembers;
92
103
  let members;
93
- let t10;
94
- if ($[14] !== enrichmentMap || $[15] !== memberships) {
95
- let t11;
96
- if ($[19] !== enrichmentMap) {
97
- t11 = membership => {
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
- $[19] = enrichmentMap;
115
- $[20] = t11;
125
+ $[20] = enrichmentMap;
126
+ $[21] = t12;
116
127
  } else {
117
- t11 = $[20];
128
+ t12 = $[21];
118
129
  }
119
- members = memberships.map(t11);
120
- adultMembers = members.filter(_temp2);
121
- t10 = members.filter(_temp3);
122
- $[14] = enrichmentMap;
123
- $[15] = memberships;
124
- $[16] = adultMembers;
125
- $[17] = members;
126
- $[18] = t10;
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 = $[16];
129
- members = $[17];
130
- t10 = $[18];
139
+ adultMembers = $[17];
140
+ members = $[18];
141
+ t11 = $[19];
131
142
  }
132
- const childMembers = t10;
133
- let t11;
134
- if ($[21] !== adultMembers || $[22] !== childMembers || $[23] !== members || $[24] !== response) {
135
- t11 = {
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
- $[21] = adultMembers;
142
- $[22] = childMembers;
143
- $[23] = members;
144
- $[24] = response;
145
- $[25] = t11;
152
+ $[22] = adultMembers;
153
+ $[23] = childMembers;
154
+ $[24] = members;
155
+ $[25] = response;
156
+ $[26] = t12;
146
157
  } else {
147
- t11 = $[25];
158
+ t12 = $[26];
148
159
  }
149
- return t11;
160
+ return t12;
150
161
  }
151
- function _temp3(member_0) {
162
+ function _temp4(member_0) {
152
163
  return member_0.child;
153
164
  }
154
- function _temp2(member) {
165
+ function _temp3(member) {
155
166
  return !member.child;
156
167
  }
157
- function _temp(m) {
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","useEnrichPeople","useSuspensePaginator","useGroupMembersForNewConversation","t0","$","_c","id","gender","t1","t2","t3","Symbol","for","Membership","Person","t4","perPage","include","fields","where","t5","url","data","app","response","t6","t7","undefined","memberships","t8","map","_temp","personIds","t9","groupId","enrichmentMap","adultMembers","members","t10","t11","membership","person","enrichment","get","type","avatar","avatarUrl","badges","child","name","firstName","lastName","source","role","filter","_temp2","_temp3","childMembers","member_0","member","m"],"sources":["../../../src/hooks/groups/use_group_members_for_new_conversation.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { MemberResource, ResourceObject } from '../../types'\nimport { GroupsGroupMemberResource } from '../../types/resources/groups/groups_member_resource_with_person'\nimport { useEnrichPeople } from '../use_enrich_people'\nimport { useSuspensePaginator } from '../use_suspense_api'\n\ntype UseSuspensePaginatorResult<T extends ResourceObject> = ReturnType<\n typeof useSuspensePaginator<T>\n>\n\nexport type GroupMembersForNewConversationResult = Omit<\n UseSuspensePaginatorResult<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 = useSuspensePaginator<GroupsGroupMemberResource>({\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 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":[]}
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":";AAAA,SAASA,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,OAAO,QAAQ,OAAO;AAG/B,SAASC,eAAe,QAAQ,YAAY;AAC5C,SAASC,eAAe,QAAQ,sBAAsB;AAatD,OAAO,SAAAC,kCAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAA2C;IAAAC,EAAA;IAAAC;EAAA,IAAAJ,EAMjD;EAGU,MAAAK,EAAA,iBAAcF,EAAE,cAAc;EAAA,IAAAG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAN,CAAA,QAAAO,MAAA,CAAAC,GAAA;IAGxBH,EAAA,IAAC,QAAQ,CAAC;IACXC,EAAA;MAAAG,UAAA,EACM,CAAC,cAAc,CAAC;MAAAC,MAAA,EACpB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ;IAC7E,CAAC;IAAAV,CAAA,MAAAK,EAAA;IAAAL,CAAA,MAAAM,EAAA;EAAA;IAAAD,EAAA,GAAAL,CAAA;IAAAM,EAAA,GAAAN,CAAA;EAAA;EAAA,IAAAW,EAAA;EAAA,IAAAX,CAAA,QAAAG,MAAA;IANGQ,EAAA;MAAAC,OAAA,EACK,GAAG;MAAAC,OAAA,EACHR,EAAU;MAAAS,MAAA,EACXR,EAGP;MAAA,IACGH,MAAM,GAAN;QAAAY,KAAA,EAAkB;UAAAZ;QAAS;MAAO,CAAC,GAAnC,CAAkC,CAAC;IACzC,CAAC;IAAAH,CAAA,MAAAG,MAAA;IAAAH,CAAA,MAAAW,EAAA;EAAA;IAAAA,EAAA,GAAAX,CAAA;EAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAhB,CAAA,QAAAI,EAAA,IAAAJ,CAAA,QAAAW,EAAA;IAVHK,EAAA;MAAAC,GAAA,EACOb,EAA8B;MAAAc,IAAA,EAC7BP,EAQL;MAAAQ,GAAA,EACI;IACP,CAAC;IAAAnB,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAW,EAAA;IAAAX,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,IAAAoB,EAAA;EAAA,IAAApB,CAAA,QAAAO,MAAA,CAAAC,GAAA;IACDY,EAAA;MAAAC,YAAA,EACgBC,KAAiD;MAAAC,eAAA,EAC9C7B;IACnB,CAAC;IAAAM,CAAA,MAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAjBH,MAAAwB,QAAA,GAAiB5B,eAAe,CAC9BoB,EAYC,EACDI,EAIF,CAAC;EAED;IAAAF,IAAA,EAAAO;EAAA,IAAmCD,QAAQ;EAAA,IAAAE,EAAA;EAAA,IAAA1B,CAAA,QAAAyB,EAAA;IAA7BC,EAAA,GAAAD,EAAgB,KAAhBE,SAAgB,GAAhB,EAAgB,GAAhBF,EAAgB;IAAAzB,CAAA,MAAAyB,EAAA;IAAAzB,CAAA,MAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EAAhB,MAAA4B,WAAA,GAAAF,EAAgB;EAAA,IAAAG,EAAA;EAAA,IAAA7B,CAAA,SAAA4B,WAAA;IACEC,EAAA,GAAAD,WAAW,CAAAE,GAAI,CAACC,MAAiB,CAAC;IAAA/B,CAAA,OAAA4B,WAAA;IAAA5B,CAAA,OAAA6B,EAAA;EAAA;IAAAA,EAAA,GAAA7B,CAAA;EAAA;EAAlE,MAAAgC,SAAA,GAAgCH,EAAkC;EAAgB,IAAAI,GAAA;EAAA,IAAAjC,CAAA,SAAAE,EAAA,IAAAF,CAAA,SAAAgC,SAAA;IAC5CC,GAAA;MAAAD,SAAA;MAAAE,OAAA,EAAsBhC;IAAG,CAAC;IAAAF,CAAA,OAAAE,EAAA;IAAAF,CAAA,OAAAgC,SAAA;IAAAhC,CAAA,OAAAiC,GAAA;EAAA;IAAAA,GAAA,GAAAjC,CAAA;EAAA;EAAhE,MAAAmC,aAAA,GAAsBtC,eAAe,CAACoC,GAA0B,CAAC;EAAA,IAAAG,YAAA;EAAA,IAAAC,OAAA;EAAA,IAAAC,GAAA;EAAA,IAAAtC,CAAA,SAAAmC,aAAA,IAAAnC,CAAA,SAAA4B,WAAA;IAAA,IAAAW,GAAA;IAAA,IAAAvC,CAAA,SAAAmC,aAAA;MAEfI,GAAA,GAAAC,UAAA;QAChD;UAAAC;QAAA,IAAmBD,UAAU;QAC7B,MAAAE,UAAA,GAAmBP,aAAa,CAAAQ,GAAI,CAAC,CAACF,MAAM,CAAAvC,EAAG,CAAC;QAAA,OACzC;UAAA0C,IAAA,EACC,QAAQ;UAAAC,MAAA,EACNJ,MAAM,CAAAK,SAAU;UAAAC,MAAA,EAChBL,UAAU,EAAAK,MAAc,IAAxB,EAAwB;UAAAC,KAAA,EACzBP,MAAM,CAAAO,KAAM;UAAA7C,MAAA,EACXsC,MAAM,CAAAtC,MAAO;UAAAD,EAAA,EACjB,CAACuC,MAAM,CAAAvC,EAAG;UAAA+C,IAAA,EACR,GAAGR,MAAM,CAAAS,SAAU,IAAIT,MAAM,CAAAU,QAAS,EAAE;UAAAC,MAAA,EACtC,EAAE;UAAAC,IAAA,EACJb,UAAU,CAAAa;QAClB,CAAC;MAAA,CACF;MAAArD,CAAA,OAAAmC,aAAA;MAAAnC,CAAA,OAAAuC,GAAA;IAAA;MAAAA,GAAA,GAAAvC,CAAA;IAAA;IAdDqC,OAAA,GAAkCT,WAAW,CAAAE,GAAI,CAACS,GAcjD,CAAC;IAEFH,YAAA,GAAqBC,OAAO,CAAAiB,MAAO,CAACC,MAAuB,CAAC;IACvCjB,GAAA,GAAAD,OAAO,CAAAiB,MAAO,CAACE,MAAsB,CAAC;IAAAxD,CAAA,OAAAmC,aAAA;IAAAnC,CAAA,OAAA4B,WAAA;IAAA5B,CAAA,OAAAoC,YAAA;IAAApC,CAAA,OAAAqC,OAAA;IAAArC,CAAA,OAAAsC,GAAA;EAAA;IAAAF,YAAA,GAAApC,CAAA;IAAAqC,OAAA,GAAArC,CAAA;IAAAsC,GAAA,GAAAtC,CAAA;EAAA;EAA3D,MAAAyD,YAAA,GAAqBnB,GAAsC;EAAA,IAAAC,GAAA;EAAA,IAAAvC,CAAA,SAAAoC,YAAA,IAAApC,CAAA,SAAAyD,YAAA,IAAAzD,CAAA,SAAAqC,OAAA,IAAArC,CAAA,SAAAwB,QAAA;IAEpDe,GAAA;MAAA,GACFf,QAAQ;MAAAN,IAAA,EACLmB,OAAO;MAAAD,YAAA;MAAAqB;IAGf,CAAC;IAAAzD,CAAA,OAAAoC,YAAA;IAAApC,CAAA,OAAAyD,YAAA;IAAAzD,CAAA,OAAAqC,OAAA;IAAArC,CAAA,OAAAwB,QAAA;IAAAxB,CAAA,OAAAuC,GAAA;EAAA;IAAAA,GAAA,GAAAvC,CAAA;EAAA;EAAA,OALMuC,GAKN;AAAA;AAvDI,SAAAiB,OAAAE,QAAA;EAAA,OAgDyCC,QAAM,CAAAX,KAAM;AAAA;AAhDrD,SAAAO,OAAAI,MAAA;EAAA,OA+CyC,CAACA,MAAM,CAAAX,KAAM;AAAA;AA/CtD,SAAAjB,OAAA6B,CAAA;EAAA,OA4BgD,CAACA,CAAC,CAAAnB,MAAO,CAAAvC,EAAG;AAAA;AA5B5D,SAAAoB,MAAAuC,MAAA,EAAAC,KAAA;EAAA,OAsBgCA,KAAK,CAAAC,KAAM,CAAA7C,IAAK,KAAKS,SAAS;AAAA","ignoreList":[]}
@@ -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,EAAE,YAAY,EAA8B,MAAM,uBAAuB,CAAA;AAGhF,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,KAAK,OAAO,CAAC,CAAA;CAC7D,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
+ {"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 { InfiniteData, useInfiniteQuery, useQuery } 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) => boolean)\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
+ {"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,4CAoH5F,CAAA"}
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(58);
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
- let t12;
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
- t12 = /*#__PURE__*/_jsx(FormContent, {
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] = t12;
235
+ $[43] = t13;
235
236
  } else {
236
- t12 = $[43];
237
+ t13 = $[43];
237
238
  }
238
- let t13;
239
- if ($[44] !== groupMemberships.adultMembers || $[45] !== groupMemberships.fetchNextPage || $[46] !== groupMemberships.isFetchingNextPage || $[47] !== t12) {
240
- t13 = /*#__PURE__*/_jsx(FormList, {
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
- FormContent: t12
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
- t13 = $[48];
255
+ t14 = $[49];
253
256
  }
254
- const t14 = !title || isPending || validationPending || warnings.length > 0;
255
- let t15;
256
- if ($[49] !== handleSave) {
257
- t15 = () => handleSave();
258
- $[49] = handleSave;
259
- $[50] = t15;
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
- t15 = $[50];
264
+ t16 = $[51];
262
265
  }
263
- let t16;
264
- if ($[51] !== t14 || $[52] !== t15 || $[53] !== warnings) {
265
- t16 = /*#__PURE__*/_jsx(ActionButton, {
266
- disabled: t14,
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: t15,
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] = warnings;
275
- $[54] = t16;
276
+ $[53] = t16;
277
+ $[54] = warnings;
278
+ $[55] = t17;
276
279
  } else {
277
- t16 = $[54];
280
+ t17 = $[55];
278
281
  }
279
- let t17;
280
- if ($[55] !== t13 || $[56] !== t16) {
281
- t17 = /*#__PURE__*/_jsxs(KeyboardView, {
282
- children: [t13, t16]
282
+ let t18;
283
+ if ($[56] !== t14 || $[57] !== t17) {
284
+ t18 = /*#__PURE__*/_jsxs(KeyboardView, {
285
+ children: [t14, t17]
283
286
  });
284
- $[55] = t13;
285
- $[56] = t16;
287
+ $[56] = t14;
286
288
  $[57] = t17;
289
+ $[58] = t18;
287
290
  } else {
288
- t17 = $[57];
291
+ t18 = $[58];
289
292
  }
290
- return t17;
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.6",
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.6",
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": "518620bb1f17b21e07a211c0129b9265511da2b5"
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 UseSuspensePaginatorResult<T extends ResourceObject> = ReturnType<
8
- typeof useSuspensePaginator<T>
9
- >
8
+ type UseApiPaginatorResult<T extends ResourceObject> = ReturnType<typeof useApiPaginator<T>>
10
9
 
11
10
  export type GroupMembersForNewConversationResult = Omit<
12
- UseSuspensePaginatorResult<GroupsGroupMemberResource>, // We are passing our own "members" data shape
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 = useSuspensePaginator<GroupsGroupMemberResource>({
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'],
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
- ...(gender ? { where: { gender } } : {}),
38
+ app: 'groups',
37
39
  },
38
- app: 'groups',
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])
@@ -1,4 +1,10 @@
1
- import { InfiniteData, useInfiniteQuery, useQuery } from '@tanstack/react-query'
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}