Skip to content

Commit

Permalink
fixed duplication of chats
Browse files Browse the repository at this point in the history
  • Loading branch information
Aad1tya27 committed Jan 20, 2025
1 parent 158414f commit 67d099b
Show file tree
Hide file tree
Showing 10 changed files with 247 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

> **default**(`__namedParameters`): `JSX.Element`
Defined in: [src/components/UserPortal/CreateDirectChat/CreateDirectChat.tsx:60](https://github.com/PalisadoesFoundation/talawa-admin/blob/main/src/components/UserPortal/CreateDirectChat/CreateDirectChat.tsx#L60)
Defined in: [src/components/UserPortal/CreateDirectChat/CreateDirectChat.tsx:62](https://github.com/PalisadoesFoundation/talawa-admin/blob/main/src/components/UserPortal/CreateDirectChat/CreateDirectChat.tsx#L62)

## Parameters

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
[Admin Docs](/)

***

# Variable: MOCKS\_EMPTY

> `const` **MOCKS\_EMPTY**: `object`[]
Defined in: [src/screens/OrganizationTags/OrganizationTagsMocks.ts:344](https://github.com/PalisadoesFoundation/talawa-admin/blob/main/src/screens/OrganizationTags/OrganizationTagsMocks.ts#L344)

## Type declaration

### request

> **request**: `object`
#### request.query

> **query**: `DocumentNode` = `ORGANIZATION_USER_TAGS_LIST`
#### request.variables

> **variables**: `object`
#### request.variables.first

> **first**: `number` = `TAGS_QUERY_DATA_CHUNK_SIZE`
#### request.variables.id

> **id**: `string` = `'orgId'`
#### request.variables.sortedBy

> **sortedBy**: `object`
#### request.variables.sortedBy.id

> **id**: `string` = `'DESCENDING'`
#### request.variables.where

> **where**: `object`
#### request.variables.where.name

> **name**: `object`
#### request.variables.where.name.starts\_with

> **starts\_with**: `string` = `''`
### result

> **result**: `object`
#### result.data

> **data**: `object`
#### result.data.organizations

> **organizations**: `object`[]
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

> `const` **MOCKS\_ERROR**: `object`[]
Defined in: [src/screens/OrganizationTags/OrganizationTagsMocks.ts:413](https://github.com/PalisadoesFoundation/talawa-admin/blob/main/src/screens/OrganizationTags/OrganizationTagsMocks.ts#L413)
Defined in: [src/screens/OrganizationTags/OrganizationTagsMocks.ts:319](https://github.com/PalisadoesFoundation/talawa-admin/blob/main/src/screens/OrganizationTags/OrganizationTagsMocks.ts#L319)

## Type declaration

Expand All @@ -32,7 +32,7 @@ Defined in: [src/screens/OrganizationTags/OrganizationTagsMocks.ts:413](https://
#### request.variables.id

> **id**: `string` = `'orgId'`
> **id**: `string` = `'orgIdError'`
#### request.variables.sortedBy

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[Admin Docs](/)

***

# Variable: MOCKS\_ERROR\_ERROR\_TAG

> `const` **MOCKS\_ERROR\_ERROR\_TAG**: `object`[]
Defined in: [src/screens/OrganizationTags/OrganizationTagsMocks.ts:334](https://github.com/PalisadoesFoundation/talawa-admin/blob/main/src/screens/OrganizationTags/OrganizationTagsMocks.ts#L334)

## Type declaration

### error

> **error**: `Error`
### request

> **request**: `object`
#### request.query

> **query**: `DocumentNode` = `CREATE_USER_TAG`
#### request.variables

> **variables**: `object`
#### request.variables.name

> **name**: `string` = `'userTagE'`
#### request.variables.organizationId

> **organizationId**: `string` = `'orgId'`
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[Admin Docs](/)

***

# Variable: MOCKS\_NO\_MORE\_PAGES

> `const` **MOCKS\_NO\_MORE\_PAGES**: (\{ `request`: \{ `query`: `DocumentNode`; `variables`: \{ `after`: `undefined`; `first`: `number`; `id`: `string`; `sortedBy`: \{ `id`: `string`; \}; `where`: \{ `name`: \{ `starts_with`: `string`; \}; \}; \}; \}; `result`: \{ `data`: \{ `organizations`: `object`[]; \}; \}; \} \| \{ `request`: \{ `query`: `DocumentNode`; `variables`: \{ `after`: `string`; `first`: `number`; `id`: `string`; `sortedBy`: \{ `id`: `string`; \}; `where`: \{ `name`: \{ `starts_with`: `string`; \}; \}; \}; \}; `result`: \{ `data`: `any`; \}; \})[]
Defined in: [src/screens/OrganizationTags/OrganizationTagsMocks.ts:477](https://github.com/PalisadoesFoundation/talawa-admin/blob/main/src/screens/OrganizationTags/OrganizationTagsMocks.ts#L477)
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[Admin Docs](/)

***

# Variable: MOCKS\_NULL\_END\_CURSOR

> `const` **MOCKS\_NULL\_END\_CURSOR**: (\{ `request`: \{ `query`: `DocumentNode`; `variables`: \{ `after`: `undefined`; `first`: `number`; `id`: `string`; `sortedBy`: \{ `id`: `string`; \}; `where`: \{ `name`: \{ `starts_with`: `string`; \}; \}; \}; \}; `result`: \{ `data`: \{ `organizations`: `object`[]; \}; \}; \} \| \{ `request`: \{ `query`: `DocumentNode`; `variables`: \{ `after`: `any`; `first`: `number`; `id`: `string`; `sortedBy`: \{ `id`: `string`; \}; `where`: \{ `name`: \{ `starts_with`: `string`; \}; \}; \}; \}; `result`: \{ `data`: \{ `organizations`: `object`[]; \}; \}; \})[]
Defined in: [src/screens/OrganizationTags/OrganizationTagsMocks.ts:391](https://github.com/PalisadoesFoundation/talawa-admin/blob/main/src/screens/OrganizationTags/OrganizationTagsMocks.ts#L391)
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
[Admin Docs](/)

***

# Variable: MOCKS\_UNDEFINED\_USER\_TAGS

> `const` **MOCKS\_UNDEFINED\_USER\_TAGS**: `object`[]
Defined in: [src/screens/OrganizationTags/OrganizationTagsMocks.ts:376](https://github.com/PalisadoesFoundation/talawa-admin/blob/main/src/screens/OrganizationTags/OrganizationTagsMocks.ts#L376)

## Type declaration

### request

> **request**: `object`
#### request.query

> **query**: `DocumentNode` = `ORGANIZATION_USER_TAGS_LIST`
#### request.variables

> **variables**: `object`
#### request.variables.first

> **first**: `number` = `TAGS_QUERY_DATA_CHUNK_SIZE`
#### request.variables.id

> **id**: `string` = `'orgId'`
#### request.variables.sortedBy

> **sortedBy**: `object`
#### request.variables.sortedBy.id

> **id**: `string` = `'DESCENDING'`
#### request.variables.where

> **where**: `object`
#### request.variables.where.name

> **name**: `object`
#### request.variables.where.name.starts\_with

> **starts\_with**: `string` = `''`
### result

> **result**: `object`
#### result.data

> **data**: `object`
#### result.data.organizations

> **organizations**: `object`[]
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
[Admin Docs](/)

***

# Type Alias: Chat

> **Chat**: `object`
Defined in: [src/screens/UserPortal/Chat/Chat.tsx:87](https://github.com/PalisadoesFoundation/talawa-admin/blob/main/src/screens/UserPortal/Chat/Chat.tsx#L87)

## Type declaration

### \_id

> **\_id**: `string`
### image

> **image**: `string`
### isGroup

> **isGroup**: `boolean`
### messages

> **messages**: `DirectMessage`[]
### name

> **name**: `string`
### unseenMessagesByUsers

> **unseenMessagesByUsers**: `string`
### users

> **users**: `object`[]
33 changes: 24 additions & 9 deletions src/components/UserPortal/CreateDirectChat/CreateDirectChat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ import { Search } from '@mui/icons-material';
import { useParams } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import styles from '../../../style/app.module.css';

import type { Chat } from 'screens/UserPortal/Chat/Chat';
import { errorHandler } from 'utils/errorHandler';
interface InterfaceCreateDirectChatProps {
toggleCreateDirectChatModal: () => void;
createDirectChatModalisOpen: boolean;
Expand All @@ -29,6 +30,7 @@ interface InterfaceCreateDirectChatProps {
}>
| undefined,
) => Promise<ApolloQueryResult<unknown>>;
chats: Chat[];
}

/**
Expand Down Expand Up @@ -61,6 +63,7 @@ export default function createDirectChatModal({
toggleCreateDirectChatModal,
createDirectChatModalisOpen,
chatsListRefetch,
chats,
}: InterfaceCreateDirectChatProps): JSX.Element {
const { t } = useTranslation('translation', {
keyPrefix: 'userChat',
Expand All @@ -74,15 +77,27 @@ export default function createDirectChatModal({
const [createChat] = useMutation(CREATE_CHAT);

const handleCreateDirectChat = async (id: string): Promise<void> => {
await createChat({
variables: {
organizationId,
userIds: [userId, id],
isGroup: false,
},
let chatExists = false;
chats.forEach((chat) => {
if (chat.users[0]._id === id || chat.users[1]._id === id)
chatExists = true;
});
await chatsListRefetch();
toggleCreateDirectChatModal();
if (chatExists) {
errorHandler(
t,
new Error('Conversation with the selected user already exists!'),
);
} else {
await createChat({
variables: {
organizationId,
userIds: [userId, id],
isGroup: false,
},
});
await chatsListRefetch();
toggleCreateDirectChatModal();
}
};

const {
Expand Down
3 changes: 2 additions & 1 deletion src/screens/UserPortal/Chat/Chat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ type DirectMessage = {
messageContent: string;
};

type Chat = {
export type Chat = {
_id: string;
isGroup: boolean;
name: string;
Expand Down Expand Up @@ -332,6 +332,7 @@ export default function chat(): JSX.Element {
toggleCreateDirectChatModal={toggleCreateDirectChatModal}
createDirectChatModalisOpen={createDirectChatModalisOpen}
chatsListRefetch={chatsListRefetch}
chats={chats}
></CreateDirectChat>
)}
</>
Expand Down

0 comments on commit 67d099b

Please sign in to comment.