@cobuildlab/8base-chat
Version:
Chat component that uses 8base
21 lines (20 loc) • 1.03 kB
TypeScript
import { ChannelIdentityFragment, DmIdentityFragment } from 'shared/graphql/__generated__';
import { IChannelItemProps } from './components/channel-item';
interface IChannelIdentities<T extends ChannelIdentityFragment | DmIdentityFragment = ChannelIdentityFragment> {
items: T[];
}
declare type OriginalItem<T extends ChannelIdentityFragment | DmIdentityFragment> = T & {
channel: NonNullable<T['channel']> & {
members: NonNullable<NonNullable<T['channel']>['members']>;
};
};
declare type ChannelItem = {
id: string;
channelIdentityId: string;
} & Pick<IChannelItemProps, 'name' | 'membersCount' | 'hasUnreads'>;
/**
* Takes user's channel identities and converts them to fit ChannelItemProps
* @param channelIdentities - User's channel identities
*/
export declare function toChannelItemProps<T extends ChannelIdentityFragment | DmIdentityFragment>(channelIdentities: IChannelIdentities<T>, transform?: (item: ChannelItem, originalItem: OriginalItem<T>) => ChannelItem): ChannelItem[];
export {};