Skip to content

Commit d3cc558

Browse files
authored
fix: Apply userListQuery (#220)
Use userListQuery when it's been given
1 parent 9c6a586 commit d3cc558

File tree

8 files changed

+20
-12
lines changed

8 files changed

+20
-12
lines changed

scripts/index_d_ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959

6060
export interface UserListQuery {
6161
hasNext?: boolean;
62-
next(callback: unknown): void;
62+
next(): Promise<Array<User>>;
6363
}
6464

6565
export interface RenderUserProfileProps {

src/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ type Logger = {
4646

4747
interface UserListQuery {
4848
hasNext?: boolean;
49-
next(): Promise<User[]>;
49+
next(): Promise<Array<User>>;
5050
}
5151

5252
interface RenderUserProfileProps {

src/lib/SendbirdState.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export type CustomUseReducerDispatcher = ({
1010

1111
interface UserListQuery {
1212
hasNext?: boolean;
13-
next(callback: unknown): void;
13+
next(): Promise<Array<User>>;
1414
}
1515

1616
interface RenderUserProfileProps {

src/smart-components/ChannelSettings/components/ModerationPanel/InviteUsersModal.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ export default function InviteUsers({
2121

2222
const state = useSendbirdStateContext();
2323
const sdk = state?.stores?.sdkStore?.sdk;
24+
const globalUserListQuery = state?.config?.userListQuery;
2425

2526
const { channel } = useChannelSettingsContext();
2627

2728
useEffect(() => {
28-
const userListQuery = sdk?.createApplicationUserListQuery();
29+
const userListQuery = globalUserListQuery ? globalUserListQuery() : sdk?.createApplicationUserListQuery();
2930
userListQuery.next().then((members) => {
3031
setMembers(members);
3132
});

src/smart-components/CreateChannel/components/CreateChannelUI/index.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ export interface CreateChannelUIProps {
1313
const CreateChannel: React.FC<CreateChannelUIProps> = (props: CreateChannelUIProps) => {
1414
const { onCancel, renderStepOne } = props;
1515

16-
const createChannelProps = useCreateChannelContext();
1716
const {
1817
step,
1918
setStep,
20-
} = createChannelProps;
19+
userListQuery,
20+
} = useCreateChannelContext();
2121

2222
return (
2323
<>
@@ -33,6 +33,7 @@ const CreateChannel: React.FC<CreateChannelUIProps> = (props: CreateChannelUIPro
3333
{
3434
step === 1 && (
3535
<InviteUsers
36+
userListQuery={userListQuery}
3637
onCancel={() => {
3738
setStep(0);
3839
onCancel();

src/smart-components/CreateChannel/components/InviteUsers/index.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import Label, {
1414
} from '../../../../ui/Label';
1515
import { ButtonTypes } from '../../../../ui/Button';
1616
import UserListItem from '../../../../ui/UserListItem';
17+
import { UserListQuery } from '../../context/CreateChannelProvider';
1718

1819
import {
1920
filterUser,
@@ -23,9 +24,13 @@ import {
2324

2425
export interface InviteUsersProps {
2526
onCancel?: () => void;
27+
userListQuery?(): UserListQuery;
2628
}
2729

28-
const InviteUsers: React.FC<InviteUsersProps> = ({ onCancel }: InviteUsersProps) => {
30+
const InviteUsers: React.FC<InviteUsersProps> = ({
31+
onCancel,
32+
userListQuery,
33+
}: InviteUsersProps) => {
2934
const {
3035
onBeforeCreateChannel,
3136
onCreateChannel,
@@ -40,12 +45,12 @@ const InviteUsers: React.FC<InviteUsersProps> = ({ onCancel }: InviteUsersProps)
4045
const [users, setUsers] = useState([]);
4146
const [selectedUsers, setSelectedUsers] = useState({});
4247
const { stringSet } = useContext(LocalizationContext);
43-
const [usersDataSource, setUsersDataSource] = useState<ApplicationUserListQuery>(null);
48+
const [usersDataSource, setUsersDataSource] = useState<ApplicationUserListQuery | UserListQuery>(null);
4449
const selectedCount = Object.keys(selectedUsers).length;
4550
const titleText = stringSet.MODAL__CREATE_CHANNEL__TITLE;
4651
const submitText = stringSet.BUTTON__CREATE;
4752

48-
const userQueryCreator = createDefaultUserListQuery({ sdk });
53+
const userQueryCreator = userListQuery ? userListQuery() : createDefaultUserListQuery({ sdk });
4954

5055
useEffect(() => {
5156
const applicationUserListQuery = userQueryCreator;

src/smart-components/CreateChannel/context/CreateChannelProvider.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { useState } from 'react';
2+
import { User } from '@sendbird/chat';
23
import type {
34
GroupChannel,
45
GroupChannelCreateParams,
@@ -11,9 +12,9 @@ import { CHANNEL_TYPE } from '../types';
1112

1213
const CreateChannelContext = React.createContext(undefined);
1314

14-
interface UserListQuery {
15+
export interface UserListQuery {
1516
hasNext?: boolean;
16-
next(callback: unknown): void;
17+
next(): Promise<Array<User>>;
1718
}
1819

1920
export interface CreateChannelProviderProps {

src/types.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export type ReplyType = "NONE" | "QUOTE_REPLY" | "THREAD";
1010

1111
export interface UserListQuery {
1212
hasNext?: boolean;
13-
next(callback: unknown): void;
13+
next(): Promise<Array<User>>;
1414
}
1515

1616
export interface RenderUserProfileProps {

0 commit comments

Comments
 (0)