41 lines
956 B
TypeScript
41 lines
956 B
TypeScript
import * as React from "react";
|
|
import Frame from "../components/Frame";
|
|
import Image from "../components/Img";
|
|
import { EmbedProps as Props } from ".";
|
|
|
|
function Diagrams(props: Props) {
|
|
const { embed } = props;
|
|
const embedUrl = props.attrs.matches[0];
|
|
const params = new URL(embedUrl).searchParams;
|
|
const titlePrefix = embed.settings?.url ? "Draw.io" : "Diagrams.net";
|
|
const title = params.get("title")
|
|
? `${titlePrefix} (${params.get("title")})`
|
|
: titlePrefix;
|
|
|
|
return (
|
|
<Frame
|
|
{...props}
|
|
src={embedUrl}
|
|
icon={
|
|
<Image
|
|
src="/images/diagrams.png"
|
|
alt="Diagrams.net"
|
|
width={16}
|
|
height={16}
|
|
/>
|
|
}
|
|
canonicalUrl={props.attrs.href}
|
|
title={title}
|
|
border
|
|
/>
|
|
);
|
|
}
|
|
|
|
Diagrams.ENABLED = [
|
|
/^https:\/\/viewer\.diagrams\.net\/(?!proxy).*(title=\\w+)?/,
|
|
];
|
|
|
|
Diagrams.URL_PATH_REGEX = /\/(?!proxy).*(title=\\w+)?/;
|
|
|
|
export default Diagrams;
|