Новое вложение ЗВОНОК теперь отправляется от лица звонящего

This commit is contained in:
RoyceDa
2026-03-22 19:49:59 +02:00
parent a1c8b3d95a
commit 6dc35d7cca
3 changed files with 15 additions and 16 deletions

View File

@@ -4,6 +4,7 @@ import { Avatar, Box, Flex, Text } from "@mantine/core";
import { useRosettaColors } from "@/app/hooks/useRosettaColors";
import { IconPhoneOutgoing, IconX } from "@tabler/icons-react";
import { translateDurationToTime } from "@/app/providers/CallProvider/translateDurationTime";
import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey";
export function MessageCall(props: AttachmentProps) {
const {
@@ -13,9 +14,10 @@ export function MessageCall(props: AttachmentProps) {
props.attachment,
props.parent,
);
const publicKey = usePublicKey();
const preview = getPreview();
const callerRole = preview.split("::")[0];
const duration = parseInt(preview.split("::")[1]);
const caller = props.parent.from == publicKey;
const duration = parseInt(preview);
const colors = useRosettaColors();
const error = duration == 0;
@@ -30,10 +32,10 @@ export function MessageCall(props: AttachmentProps) {
<Flex gap={'sm'} direction={'row'}>
<Avatar bg={error ? colors.error : colors.brandColor} size={40}>
{!error && <>
{callerRole == "0" && (
{!caller && (
<IconPhoneOutgoing color={'white'} size={22}></IconPhoneOutgoing>
)}
{callerRole == "1" && (
{caller && (
<IconPhoneOutgoing color={'white'} size={22} style={{
transform: 'rotate(180deg)'
}}></IconPhoneOutgoing>
@@ -45,7 +47,7 @@ export function MessageCall(props: AttachmentProps) {
</Avatar>
<Flex direction={'column'} gap={5}>
<Text size={'sm'}>{
error ? (callerRole == "0" ? "Missed call" : "Rejected call") : (callerRole == "0" ? "Incoming call" : "Outgoing call")
error ? (!caller ? "Missed call" : "Rejected call") : (!caller ? "Incoming call" : "Outgoing call")
}</Text>
{!error &&
<Text size={'xs'} c={colors.chevrons.active}>

View File

@@ -462,21 +462,18 @@ export function CallProvider(props : CallProviderProps) {
* Отправляет сообщение в диалог с звонящим с информацией о звонке
*/
const generateCallAttachment = () => {
let preview = "";
if(roleRef.current == CallRole.CALLER){
preview += "1::";
if(roleRef.current != CallRole.CALLER){
/**
* Только звонящий отправляет информацию о звонке в виде вложения, чтобы ее можно было отобразить в UI диалога, например длительность звонка
*/
return;
}
if(roleRef.current == CallRole.CALLEE){
preview += "0::";
}
preview += duration.toString();
sendMessage(activeCall, "", [{
id: generateRandomKey(16),
preview: preview,
preview: duration.toString(),
type: AttachmentType.CALL,
blob: ""
}], false);
}], true);
}
const accept = () => {

View File

@@ -6,7 +6,7 @@ export enum AttachmentType {
MESSAGES = 1,
FILE = 2,
AVATAR = 3,
CALL
CALL = 4
}
export interface Attachment {