UNPKG

@cobuildlab/8base-chat

Version:

Chat component that uses 8base

128 lines (113 loc) 2.55 kB
import gql from 'graphql-tag'; import { CHANNEL_IDENTITY_FRAGMENT, DM_IDENTITY_FRAGMENT, IMAGE_FRAGMENT } from './index'; // -- FRAGMENTS export const USER_FULLNAME_FRAGMENT = gql` fragment UserFullname on User { id firstName lastName } `; export const USER_PREVIEW_FRAGMENT = gql` fragment UserPreview on User { ...UserFullname avatar { ...Image } } ${USER_FULLNAME_FRAGMENT} ${IMAGE_FRAGMENT} `; // -- QUERIES export const USER_CHANNELS_PREVIEW_QUERY = gql` query UserChannelsPreview($id: ID, $channelMembersFilter: ChannelMemberFilter! = {}) { user(id: $id) { id channelIdentities( filter: { AND: [{ channel: { type: { equals: "channel" } } }, $channelMembersFilter] } ) { items { ...ChannelIdentity } } } } ${CHANNEL_IDENTITY_FRAGMENT} `; export const USER_DMS_PREVIEW_QUERY = gql` query UserDmsPreview($id: ID, $channelMembersFilter: ChannelMemberFilter! = {}) { user(id: $id) { id channelIdentities( filter: { AND: [{ channel: { type: { in: ["im", "group"] } } }, $channelMembersFilter] } ) { items { ...DmIdentity } } } } ${DM_IDENTITY_FRAGMENT} `; export const USER_CONTACTS_PREVIEW_QUERY = gql` query UserContactsPreview($filter: UserFilter!) { usersList(filter: $filter) { items { ...UserPreview } } } ${USER_PREVIEW_FRAGMENT} `; export const USERS_SEARCH_QUERY = gql` query UsersSearch( $first: Int! $searchText: String! $channelId: ID! $usersFilter: UserFilter! ) { usersList( first: $first filter: { AND: [ { channelIdentities: { none: { channel: { id: { equals: $channelId } } } } OR: [ { firstName: { contains: $searchText } } { lastName: { contains: $searchText } } ] } $usersFilter ] } ) { items { ...UserPreview } } } ${USER_PREVIEW_FRAGMENT} `; export const USERS_DM_SEARCH_QUERY = gql` query UsersDmSearch($first: Int!, $searchText: String!, $idNotIn: [ID!]) { usersList( first: $first filter: { id: { not_in: $idNotIn } OR: [ { firstName: { contains: $searchText } } { lastName: { contains: $searchText } } ] } ) { items { ...UserPreview } } } ${USER_PREVIEW_FRAGMENT} `;