Новое вложение ЗВОНОК теперь отправляется от лица звонящего
This commit is contained in:
@@ -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}>
|
||||||
|
|||||||
@@ -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 = () => {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user