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

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

View File

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

View File

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