Properly style call buttons across app, when already in a call
This commit is contained in:
parent
3c25092f50
commit
c251867699
39 changed files with 610 additions and 189 deletions
|
@ -30,8 +30,9 @@ import { imageToBlurHash } from '../util/imageToBlurHash';
|
|||
import { maybeParseUrl } from '../util/url';
|
||||
import { sniffImageMimeType } from '../util/sniffImageMimeType';
|
||||
import { drop } from '../util/drop';
|
||||
import { linkCallRoute } from '../util/signalRoutes';
|
||||
import { calling } from './calling';
|
||||
import { getKeyFromCallLink } from '../util/callLinks';
|
||||
import { getRoomIdFromCallLink } from '../util/callLinksRingrtc';
|
||||
|
||||
const LINK_PREVIEW_TIMEOUT = 60 * SECOND;
|
||||
|
||||
|
@ -266,29 +267,27 @@ export function getLinkPreviewForSend(
|
|||
export function sanitizeLinkPreview(
|
||||
item: LinkPreviewResult | LinkPreviewWithHydratedData
|
||||
): LinkPreviewWithHydratedData {
|
||||
if (item.image) {
|
||||
// We eliminate the ObjectURL here, unneeded for send or save
|
||||
return {
|
||||
...item,
|
||||
image: omit(item.image, 'url'),
|
||||
title: dropNull(item.title),
|
||||
description: dropNull(item.description),
|
||||
date: dropNull(item.date),
|
||||
domain: LinkPreview.getDomain(item.url),
|
||||
isStickerPack: LinkPreview.isStickerPack(item.url),
|
||||
isCallLink: LinkPreview.isCallLink(item.url),
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
const isCallLink = LinkPreview.isCallLink(item.url);
|
||||
const base: LinkPreviewWithHydratedData = {
|
||||
...item,
|
||||
title: dropNull(item.title),
|
||||
description: dropNull(item.description),
|
||||
date: dropNull(item.date),
|
||||
domain: LinkPreview.getDomain(item.url),
|
||||
isStickerPack: LinkPreview.isStickerPack(item.url),
|
||||
isCallLink: LinkPreview.isCallLink(item.url),
|
||||
isCallLink,
|
||||
callLinkRoomId: isCallLink ? getRoomIdFromCallLink(item.url) : undefined,
|
||||
};
|
||||
|
||||
if (item.image) {
|
||||
// We eliminate the ObjectURL here, unneeded for send or save
|
||||
return {
|
||||
...base,
|
||||
image: omit(item.image, 'url'),
|
||||
};
|
||||
}
|
||||
|
||||
return base;
|
||||
}
|
||||
|
||||
async function getPreview(
|
||||
|
@ -577,12 +576,8 @@ async function getCallLinkPreview(
|
|||
url: string,
|
||||
_abortSignal: Readonly<AbortSignal>
|
||||
): Promise<null | LinkPreviewResult> {
|
||||
const parsedUrl = linkCallRoute.fromUrl(url);
|
||||
if (parsedUrl == null) {
|
||||
throw new Error('Failed to parse call link URL');
|
||||
}
|
||||
|
||||
const callLinkRootKey = CallLinkRootKey.parse(parsedUrl.args.key);
|
||||
const keyString = getKeyFromCallLink(url);
|
||||
const callLinkRootKey = CallLinkRootKey.parse(keyString);
|
||||
const callLinkState = await calling.readCallLink(callLinkRootKey);
|
||||
if (callLinkState == null || callLinkState.revoked) {
|
||||
return null;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue