UNPKG

mattermost-redux

Version:

Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client

130 lines (129 loc) 3.93 kB
import { IDMappedObjects, UserIDMappedObjects, RelationOneToMany, RelationOneToOne } from './utilities'; import { Team } from './teams'; export declare type ChannelType = 'O' | 'P' | 'D' | 'G'; export declare type ChannelStats = { channel_id: string; member_count: number; guest_count: number; pinnedpost_count: number; }; export declare type ChannelNotifyProps = { desktop: 'default' | 'all' | 'mention' | 'none'; email: 'default' | 'all' | 'mention' | 'none'; mark_unread: 'all' | 'mention'; push: 'default' | 'all' | 'mention' | 'none'; ignore_channel_mentions: 'default' | 'off' | 'on'; }; export declare type Channel = { id: string; create_at: number; update_at: number; delete_at: number; team_id: string; type: ChannelType; display_name: string; name: string; header: string; purpose: string; last_post_at: number; total_msg_count: number; extra_update_at: number; creator_id: string; scheme_id: string; isCurrent?: boolean; teammate_id?: string; status?: string; fake?: boolean; group_constrained: boolean; }; export declare type ChannelWithTeamData = Channel & { team_display_name: string; team_name: string; team_update_at: number; }; export declare type ChannelsWithTotalCount = { channels: ChannelWithTeamData[]; total_count: number; }; export declare type ChannelMembership = { channel_id: string; user_id: string; roles: string; last_viewed_at: number; msg_count: number; mention_count: number; notify_props: Partial<ChannelNotifyProps>; last_update_at: number; scheme_user: boolean; scheme_admin: boolean; post_root_id?: string; }; export declare type ChannelUnread = { channel_id: string; user_id: string; team_id: string; msg_count: number; mention_count: number; last_viewed_at: number; deltaMsgs: number; }; export declare type ChannelsState = { currentChannelId: string; channels: IDMappedObjects<Channel>; channelsInTeam: RelationOneToMany<Team, Channel>; myMembers: RelationOneToOne<Channel, ChannelMembership>; membersInChannel: RelationOneToOne<Channel, UserIDMappedObjects<ChannelMembership>>; stats: RelationOneToOne<Channel, ChannelStats>; groupsAssociatedToChannel: any; totalCount: number; manuallyUnread: RelationOneToOne<Channel, boolean>; channelModerations: RelationOneToOne<Channel, ChannelModeration[]>; channelMemberCountsByGroup: RelationOneToOne<Channel, ChannelMemberCountsByGroup>; }; export declare type ChannelModeration = { name: string; roles: { guests?: { value: boolean; enabled: boolean; }; members: { value: boolean; enabled: boolean; }; admins: { value: boolean; enabled: boolean; }; }; }; export declare type ChannelModerationPatch = { name: string; roles: { guests?: boolean; members?: boolean; }; }; export declare type ChannelMemberCountByGroup = { group_id: string; channel_member_count: number; channel_member_timezones_count: number; }; export declare type ChannelMemberCountsByGroup = Record<string, ChannelMemberCountByGroup>; export declare type ChannelViewResponse = { status: string; last_viewed_at_times: RelationOneToOne<Channel, number>; }; export declare type ChannelSearchOpts = { exclude_default_channels?: boolean; not_associated_to_group?: string; team_ids?: string[]; group_constrained?: boolean; exclude_group_constrained?: boolean; public?: boolean; private?: boolean; include_deleted?: boolean; deleted?: boolean; page?: number; per_page?: number; };