fix: make getEmbedLink independent of t function (#7643)

* fix: make getEmbedLink independent of t function

* rename warning to error and make it type safe
This commit is contained in:
Aakansha Doshi 2024-02-01 21:12:10 +05:30 committed by GitHub
parent 0e0f34edd8
commit 0c3dffb082
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 14 additions and 9 deletions

View File

@ -6501,8 +6501,11 @@ class App extends React.Component<AppProps, AppState> {
return;
}
if (embedLink.warning) {
this.setToast({ message: embedLink.warning, closable: true });
if (embedLink.error instanceof URIError) {
this.setToast({
message: t("toast.unrecognizedLinkFormat"),
closable: true,
});
}
const element = newEmbeddableElement({

View File

@ -120,8 +120,11 @@ export const Hyperlink = ({
} else {
const { width, height } = element;
const embedLink = getEmbedLink(link);
if (embedLink?.warning) {
setToast({ message: embedLink.warning, closable: true });
if (embedLink?.error instanceof URIError) {
setToast({
message: t("toast.unrecognizedLinkFormat"),
closable: true,
});
}
const ar = embedLink
? embedLink.intrinsicSize.w / embedLink.intrinsicSize.h

View File

@ -1,6 +1,5 @@
import { register } from "../actions/register";
import { FONT_FAMILY, VERTICAL_ALIGN } from "../constants";
import { t } from "../i18n";
import { ExcalidrawProps } from "../types";
import { getFontString, updateActiveTool } from "../utils";
import { setCursorForShape } from "../cursor";
@ -107,8 +106,8 @@ export const getEmbedLink = (
const vimeoLink = link.match(RE_VIMEO);
if (vimeoLink?.[1]) {
const target = vimeoLink?.[1];
const warning = !/^\d+$/.test(target)
? t("toast.unrecognizedLinkFormat")
const error = !/^\d+$/.test(target)
? new URIError("Invalid embed link format")
: undefined;
type = "video";
link = `https://player.vimeo.com/video/${target}?api=1`;
@ -120,7 +119,7 @@ export const getEmbedLink = (
intrinsicSize: aspectRatio,
type,
});
return { link, intrinsicSize: aspectRatio, type, warning };
return { link, intrinsicSize: aspectRatio, type, error };
}
const figmaLink = link.match(RE_FIGMA);

View File

@ -104,7 +104,7 @@ export type ExcalidrawIframeLikeElement =
export type IframeData =
| {
intrinsicSize: { w: number; h: number };
warning?: string;
error?: Error;
} & (
| { type: "video" | "generic"; link: string }
| { type: "document"; srcdoc: (theme: Theme) => string }