stream-chat-react
Version:
React components to create chat conversations or livestream style chat
61 lines (60 loc) • 4.45 kB
TypeScript
import type { Channel, Event } from 'stream-chat';
import type { Dispatch, SetStateAction } from 'react';
import type { ChannelListProps } from '../ChannelList';
type SetChannels = Dispatch<SetStateAction<Channel[]>>;
type BaseParameters = {
event: Event;
setChannels: SetChannels;
};
type RepeatedParameters = {
customHandler?: (setChannels: BaseParameters['setChannels'], event: BaseParameters['event']) => void;
};
type HandleMessageNewParameters = BaseParameters & RepeatedParameters & {
allowNewMessagesFromUnfilteredChannels: boolean;
lockChannelOrder: boolean;
} & Required<Pick<ChannelListProps, 'filters' | 'sort'>>;
type HandleNotificationMessageNewParameters = BaseParameters & RepeatedParameters & {
allowNewMessagesFromUnfilteredChannels: boolean;
lockChannelOrder: boolean;
} & Required<Pick<ChannelListProps, 'filters' | 'sort'>>;
type HandleNotificationRemovedFromChannelParameters = BaseParameters & RepeatedParameters;
type HandleNotificationAddedToChannelParameters = BaseParameters & RepeatedParameters & {
allowNewMessagesFromUnfilteredChannels: boolean;
lockChannelOrder: boolean;
} & Required<Pick<ChannelListProps, 'sort'>>;
type HandleChannelVisibleParameters = BaseParameters & RepeatedParameters & Required<Pick<ChannelListProps, 'sort' | 'filters'>>;
type HandleMemberUpdatedParameters = BaseParameters & {
lockChannelOrder: boolean;
} & Required<Pick<ChannelListProps, 'sort' | 'filters'>>;
type HandleChannelDeletedParameters = BaseParameters & RepeatedParameters;
type HandleChannelHiddenParameters = BaseParameters & RepeatedParameters;
type HandleChannelTruncatedParameters = BaseParameters & RepeatedParameters;
type HandleChannelUpdatedParameters = BaseParameters & RepeatedParameters;
type HandleUserPresenceChangedParameters = BaseParameters;
export declare const useChannelListShapeDefaults: () => {
handleChannelDeleted: (p: HandleChannelDeletedParameters) => void;
handleChannelHidden: (p: HandleChannelHiddenParameters) => void;
handleChannelTruncated: ({ customHandler, event, setChannels }: HandleChannelTruncatedParameters) => void;
handleChannelUpdated: ({ customHandler, event, setChannels }: HandleChannelUpdatedParameters) => void;
handleChannelVisible: ({ customHandler, event, filters, setChannels, sort, }: HandleChannelVisibleParameters) => Promise<void>;
handleMemberUpdated: ({ event, filters, lockChannelOrder, setChannels, sort, }: HandleMemberUpdatedParameters) => void;
handleMessageNew: ({ allowNewMessagesFromUnfilteredChannels, customHandler, event, filters, lockChannelOrder, setChannels, sort, }: HandleMessageNewParameters) => void;
handleNotificationAddedToChannel: ({ allowNewMessagesFromUnfilteredChannels, customHandler, event, setChannels, sort, }: HandleNotificationAddedToChannelParameters) => Promise<void>;
handleNotificationMessageNew: ({ allowNewMessagesFromUnfilteredChannels, customHandler, event, filters, setChannels, sort, }: HandleNotificationMessageNewParameters) => Promise<void>;
handleNotificationRemovedFromChannel: ({ customHandler, event, setChannels, }: HandleNotificationRemovedFromChannelParameters) => void;
handleUserPresenceChanged: ({ event, setChannels }: HandleUserPresenceChangedParameters) => void;
};
type UseDefaultHandleChannelListShapeParameters = Required<Pick<ChannelListProps, 'allowNewMessagesFromUnfilteredChannels' | 'lockChannelOrder' | 'filters' | 'sort'>> & Pick<ChannelListProps, 'onAddedToChannel' | 'onChannelDeleted' | 'onChannelHidden' | 'onChannelTruncated' | 'onChannelUpdated' | 'onChannelVisible' | 'onMessageNew' | 'onMessageNewHandler' | 'onRemovedFromChannel'> & {
setChannels: SetChannels;
customHandleChannelListShape?: (data: {
defaults: ReturnType<typeof useChannelListShapeDefaults>;
event: Event;
setChannels: SetChannels;
}) => void;
};
export declare const usePrepareShapeHandlers: ({ allowNewMessagesFromUnfilteredChannels, customHandleChannelListShape, filters, lockChannelOrder, onAddedToChannel, onChannelDeleted, onChannelHidden, onChannelTruncated, onChannelUpdated, onChannelVisible, onMessageNew, onMessageNewHandler, onRemovedFromChannel, setChannels, sort, }: UseDefaultHandleChannelListShapeParameters) => {
customHandler: ((e: Event) => void) | null;
defaultHandler: (e: Event) => void;
};
export declare const useChannelListShape: (handler: (e: Event) => void) => void;
export {};