Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tom Moor <tom.moor@gmail.com>
35 lines
951 B
TypeScript
35 lines
951 B
TypeScript
import * as React from "react";
|
|
import Frame from "../components/Frame";
|
|
import ImageZoom from "../components/ImageZoom";
|
|
import { EmbedProps as Props } from ".";
|
|
|
|
const IFRAME_REGEX =
|
|
/^https:\/\/(invis\.io\/.*)|(projects\.invisionapp\.com\/share\/.*)$/;
|
|
const IMAGE_REGEX =
|
|
/^https:\/\/(opal\.invisionapp\.com\/static-signed\/live-embed\/.*)$/;
|
|
|
|
function InVision(props: Props) {
|
|
if (IMAGE_REGEX.test(props.attrs.href)) {
|
|
return (
|
|
<div className={props.isSelected ? "ProseMirror-selectednode" : ""}>
|
|
<ImageZoom zoomMargin={24}>
|
|
<img
|
|
src={props.attrs.href}
|
|
alt="InVision Embed"
|
|
style={{
|
|
maxWidth: "100%",
|
|
maxHeight: "75vh",
|
|
}}
|
|
/>
|
|
</ImageZoom>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
return <Frame {...props} src={props.attrs.href} title="InVision Embed" />;
|
|
}
|
|
|
|
InVision.ENABLED = [IFRAME_REGEX, IMAGE_REGEX];
|
|
|
|
export default InVision;
|