@@ -5,7 +5,10 @@ import { parseAvatar } from 'calypso/state/stats/lists/utils';
5
5
import getDefaultQueryParams from './default-query-params' ;
6
6
7
7
const MAX_SUBSCRIBERS_TO_RETURN = 10 ;
8
- const isJetpackApi = config . isEnabled ( 'is_running_in_jetpack' ) ;
8
+ const isJetpackApi = config . isEnabled ( 'is_running_in_jetpack_site' ) ;
9
+ const sortByDateDesc = ( a : { date_subscribed : string } , b : { date_subscribed : string } ) => {
10
+ return new Date ( b . date_subscribed ) . getTime ( ) - new Date ( a . date_subscribed ) . getTime ( ) ;
11
+ } ;
9
12
10
13
const querySubscribersTotals = ( siteId : number | null , filterAdmin ?: boolean ) : Promise < any > => {
11
14
return wpcom . req
@@ -117,8 +120,6 @@ export function useSubscribersTotalsWithoutAdminQueries( siteId: number | null )
117
120
}
118
121
119
122
function useSubscribersTotalsQueries ( siteId : number | null , filterAdmin ?: boolean ) {
120
- const isJetpackApi = config . isEnabled ( 'is_running_in_jetpack' ) ;
121
-
122
123
const results = useQueries ( {
123
124
queries : [
124
125
{
@@ -152,54 +153,50 @@ function useSubscribersTotalsQueries( siteId: number | null, filterAdmin?: boole
152
153
] ,
153
154
} ) ;
154
155
155
- if ( ! isJetpackApi ) {
156
- // Use `subscribers_by_user_type` endpoint in Calypso Stats.
156
+ if ( isJetpackApi ) {
157
+ // `subscribers_by_user_type` endpoint is not available for Odyssey Stats yet .
157
158
return {
158
159
data : {
159
- total_email : results [ 3 ] ?. data ?. total ,
160
- total_wpcom : results [ 2 ] ?. data ?. total ,
161
- total : results [ 1 ] . data ?. email_subscribers ,
160
+ total_email : results [ 0 ] ?. data ?. total_email ,
161
+ total_wpcom : results [ 0 ] ?. data ?. total_wpcom ,
162
+ total : results [ 0 ] ? .data ?. total ,
162
163
paid_subscribers : results [ 1 ] ?. data ?. paid_subscribers ,
163
164
free_subscribers :
164
165
results [ 1 ] ?. data ?. email_subscribers !== undefined &&
165
166
results [ 1 ] ?. data ?. paid_subscribers !== undefined
166
167
? results [ 1 ] . data . email_subscribers - results [ 1 ] . data . paid_subscribers
167
168
: null ,
168
169
social_followers : results [ 1 ] ?. data ?. social_followers ,
169
- is_owner_subscribing : results [ 2 ] ?. data ?. is_owner_subscribing ,
170
- // Merge email and wpcom subscribers and sort by date_subscribed, and only shows the most recent 10 subscribers.
171
- subscribers :
172
- [
173
- ...( results [ 3 ] ?. data ?. subscribers ?? [ ] ) ,
174
- ...( results [ 2 ] ?. data ?. subscribers ?? [ ] ) ,
175
- ]
176
- . sort ( ( a , b ) => {
177
- return (
178
- new Date ( b . date_subscribed ) . getTime ( ) - new Date ( a . date_subscribed ) . getTime ( )
179
- ) ;
180
- } )
181
- . slice ( 0 , MAX_SUBSCRIBERS_TO_RETURN ) ?? [ ] ,
170
+ is_owner_subscribing : results [ 0 ] ?. data ?. is_owner_subscribing ,
171
+ subscribers : ( results [ 0 ] ?. data ?. subscribers ?? [ ] ) . sort ( sortByDateDesc ) ,
182
172
} ,
183
- isLoading : results . some ( ( result ) => result . isLoading ) ,
173
+ isLoading : results . some ( ( result ) => result . isPending ) ,
184
174
isError : results . some ( ( result ) => result . isError ) ,
185
175
} ;
186
176
}
187
177
188
- // `subscribers_by_user_type` endpoint is not available for Odyssey Stats yet .
178
+ // Use `subscribers_by_user_type` endpoint in Calypso Stats.
189
179
return {
190
180
data : {
191
- total_email : results [ 0 ] ?. data ?. total_email ,
192
- total_wpcom : results [ 0 ] ?. data ?. total_wpcom ,
193
- total : results [ 0 ] ? .data ?. total ,
181
+ total_email : results [ 3 ] ?. data ?. total ,
182
+ total_wpcom : results [ 2 ] ?. data ?. total ,
183
+ total : results [ 1 ] . data ?. email_subscribers ,
194
184
paid_subscribers : results [ 1 ] ?. data ?. paid_subscribers ,
195
185
free_subscribers :
196
186
results [ 1 ] ?. data ?. email_subscribers !== undefined &&
197
187
results [ 1 ] ?. data ?. paid_subscribers !== undefined
198
188
? results [ 1 ] . data . email_subscribers - results [ 1 ] . data . paid_subscribers
199
189
: null ,
200
190
social_followers : results [ 1 ] ?. data ?. social_followers ,
201
- is_owner_subscribing : results [ 0 ] ?. data ?. is_owner_subscribing ,
202
- subscribers : results [ 0 ] ?. data ?. subscribers ,
191
+ is_owner_subscribing : results [ 2 ] ?. data ?. is_owner_subscribing ,
192
+ // Merge email and wpcom subscribers and sort by date_subscribed, and only shows the most recent 10 subscribers.
193
+ subscribers :
194
+ [
195
+ ...( results [ 3 ] ?. data ?. subscribers ?? [ ] ) ,
196
+ ...( results [ 2 ] ?. data ?. subscribers ?? [ ] ) ,
197
+ ]
198
+ . sort ( sortByDateDesc )
199
+ . slice ( 0 , MAX_SUBSCRIBERS_TO_RETURN ) ?? [ ] ,
203
200
} ,
204
201
isLoading : results . some ( ( result ) => result . isLoading ) ,
205
202
isError : results . some ( ( result ) => result . isError ) ,
0 commit comments