@cobuildlab/8base-chat
Version:
Chat component that uses 8base
128 lines (113 loc) • 2.55 kB
text/typescript
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}
`;