feat: Add 'Whimsical' as embed provider
This commit is contained in:
BIN
public/images/whimsical.png
Normal file
BIN
public/images/whimsical.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
22
shared/embeds/Whimsical.tsx
Normal file
22
shared/embeds/Whimsical.tsx
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
import * as React from "react";
|
||||||
|
import Frame from "./components/Frame";
|
||||||
|
import { EmbedProps as Props } from ".";
|
||||||
|
|
||||||
|
const URL_REGEX = /^https?:\/\/whimsical.com\/[0-9a-zA-Z-_~]*-([a-zA-Z0-9]+)\/?$/;
|
||||||
|
|
||||||
|
export default class Whimsical extends React.Component<Props> {
|
||||||
|
static ENABLED = [URL_REGEX];
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const { matches } = this.props.attrs;
|
||||||
|
const boardId = matches[1];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Frame
|
||||||
|
{...this.props}
|
||||||
|
src={`https://whimsical.com/embed/${boardId}`}
|
||||||
|
title="Whimsical"
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -32,6 +32,7 @@ import Spotify from "./Spotify";
|
|||||||
import Trello from "./Trello";
|
import Trello from "./Trello";
|
||||||
import Typeform from "./Typeform";
|
import Typeform from "./Typeform";
|
||||||
import Vimeo from "./Vimeo";
|
import Vimeo from "./Vimeo";
|
||||||
|
import Whimsical from "./Whimsical";
|
||||||
import YouTube from "./YouTube";
|
import YouTube from "./YouTube";
|
||||||
import Image from "./components/Image";
|
import Image from "./components/Image";
|
||||||
|
|
||||||
@@ -292,6 +293,13 @@ const embeds: EmbedDescriptor[] = [
|
|||||||
component: Vimeo,
|
component: Vimeo,
|
||||||
matcher: matcher(Vimeo),
|
matcher: matcher(Vimeo),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Whimsical",
|
||||||
|
keywords: "whiteboard",
|
||||||
|
icon: () => <Img src="/images/whimsical.png" alt="Whimsical" />,
|
||||||
|
component: Whimsical,
|
||||||
|
matcher: matcher(Whimsical),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "YouTube",
|
title: "YouTube",
|
||||||
keywords: "google video",
|
keywords: "google video",
|
||||||
|
|||||||
Reference in New Issue
Block a user