@wulperstudio/chat
Version:
Wulper Studio Chat Library
70 lines (69 loc) • 1.88 kB
TypeScript
import { InboxModel, MembersModel, MessageModel, RoomModel, UpgradeMessageModel, UserModel } from "../lib";
export interface InitialStateModel {
user?: UserModel;
rooms: Array<RoomModel>;
inbox: Array<MessageModel>;
members: MembersModel;
selectedRoom?: {
title: string;
space: string;
};
reciveMessageRoom: MessageModel;
messageContact: MessageModel;
searchMembers: MembersModel;
messageGroup: UpgradeMessageModel;
chatOneToOne: {
chanel: string;
messages: MessageModel[] | MessageModel;
};
}
export declare type ChatActionType = {
type: "@set/user";
payload: UserModel;
} | {
type: "@list/rooms";
payload: Array<RoomModel>;
} | {
type: "@list/inbox";
payload: Array<MessageModel>;
} | {
type: "@list/members";
payload: MembersModel;
} | {
type: "@list/reciveMessageRoom";
payload: InboxModel;
} | {
type: "@list/messageContact";
payload: MessageModel;
} | {
type: "@set/searchMembers";
payload: MembersModel;
} | {
type: "@list/messageGroup";
payload: UpgradeMessageModel;
} | {
type: "@set/chatOneToOne";
payload: {
chanel: string;
messages: MessageModel[] | MessageModel;
};
};
export declare const initialState: InitialStateModel;
export declare const chatReducer: (state: InitialStateModel, { type, payload }: ChatActionType) => InitialStateModel | {
reciveMessageRoom: InboxModel;
user?: UserModel | undefined;
rooms: Array<RoomModel>;
inbox: Array<MessageModel>;
members: MembersModel;
selectedRoom?: {
title: string;
space: string;
} | undefined;
messageContact: MessageModel;
searchMembers: MembersModel;
messageGroup: UpgradeMessageModel;
chatOneToOne: {
chanel: string;
messages: MessageModel[] | MessageModel;
};
};