feat: update frontend to use id instead of foreign_id

This commit is contained in:
Mohamed Marrouchi 2025-01-03 18:36:30 +01:00
parent e2c81a9618
commit c35be05416
3 changed files with 18 additions and 30 deletions

View File

@ -1,11 +1,12 @@
/* /*
* Copyright © 2024 Hexastack. All rights reserved. * Copyright © 2025 Hexastack. All rights reserved.
* *
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms: * Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission. * 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
*/ */
import { Grid } from "@mui/material"; import { Grid } from "@mui/material";
import { GridRenderCellParams } from "@mui/x-data-grid"; import { GridRenderCellParams } from "@mui/x-data-grid";
@ -29,13 +30,7 @@ export const buildRenderPicture = (
}} }}
> >
<img <img
src={getAvatarSrc( src={getAvatarSrc(apiUrl, entityType, params.row.id)}
apiUrl,
entityType,
entityType === EntityType.USER
? params.row.id
: params.row.foreign_id,
)}
style={{ width: "36px", height: "36px" }} style={{ width: "36px", height: "36px" }}
/> />
</Grid> </Grid>

View File

@ -1,11 +1,12 @@
/* /*
* Copyright © 2024 Hexastack. All rights reserved. * Copyright © 2025 Hexastack. All rights reserved.
* *
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms: * Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission. * 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
*/ */
import { import {
Avatar, Avatar,
ChatContainer, ChatContainer,
@ -70,11 +71,7 @@ export function Chat() {
<ConversationHeader> <ConversationHeader>
<Avatar <Avatar
name={subscriber?.first_name} name={subscriber?.first_name}
src={getAvatarSrc( src={getAvatarSrc(apiUrl, EntityType.SUBSCRIBER, subscriber.id)}
apiUrl,
EntityType.SUBSCRIBER,
subscriber.foreign_id,
)}
/> />
<ConversationHeader.Content> <ConversationHeader.Content>
<ChatHeader /> <ChatHeader />
@ -127,9 +124,8 @@ export function Chat() {
message.sender message.sender
? EntityType.SUBSCRIBER ? EntityType.SUBSCRIBER
: EntityType.USER, : EntityType.USER,
(message.sender (message.sender ? subscriber.id : message.sentBy) ||
? subscriber.foreign_id "",
: message.sentBy) || "",
)} )}
/>, />,
] ]

View File

@ -1,11 +1,12 @@
/* /*
* Copyright © 2024 Hexastack. All rights reserved. * Copyright © 2025 Hexastack. All rights reserved.
* *
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms: * Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission. * 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
*/ */
import { import {
Avatar, Avatar,
Conversation, Conversation,
@ -50,30 +51,26 @@ export const SubscribersList = (props: {
loadingMore={isFetching} loadingMore={isFetching}
onYReachEnd={handleLoadMore} onYReachEnd={handleLoadMore}
> >
{subscribers.map((conversation) => ( {subscribers.map((subscriber) => (
<Conversation <Conversation
onClick={() => chat.setSubscriberId(conversation.id)} onClick={() => chat.setSubscriberId(subscriber.id)}
className="changeColor" className="changeColor"
key={conversation.id} key={subscriber.id}
active={chat.subscriber?.id === conversation.id} active={chat.subscriber?.id === subscriber.id}
> >
<Avatar <Avatar
src={getAvatarSrc( src={getAvatarSrc(apiUrl, EntityType.SUBSCRIBER, subscriber.id)}
apiUrl,
EntityType.SUBSCRIBER,
conversation.foreign_id,
)}
/> />
<Conversation.Content> <Conversation.Content>
<div> <div>
{conversation.first_name} {conversation.last_name} {subscriber.first_name} {subscriber.last_name}
</div> </div>
<div className="cs-conversation__info"> <div className="cs-conversation__info">
{conversation.lastvisit?.toLocaleString(i18n.language)} {subscriber.lastvisit?.toLocaleString(i18n.language)}
</div> </div>
</Conversation.Content> </Conversation.Content>
<Conversation.Operations visible> <Conversation.Operations visible>
<Chip size="small" label={conversation.channel.name} /> <Chip size="small" label={subscriber.channel.name} />
</Conversation.Operations> </Conversation.Operations>
</Conversation> </Conversation>
))} ))}