feat: Add 'Whimsical' as embed provider

This commit is contained in:
Tom Moor
2021-12-14 16:06:31 -08:00
parent 0a7723a10f
commit 632799fea6
3 changed files with 30 additions and 0 deletions

BIN
public/images/whimsical.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View 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"
/>
);
}
}

View File

@@ -32,6 +32,7 @@ import Spotify from "./Spotify";
import Trello from "./Trello";
import Typeform from "./Typeform";
import Vimeo from "./Vimeo";
import Whimsical from "./Whimsical";
import YouTube from "./YouTube";
import Image from "./components/Image";
@@ -292,6 +293,13 @@ const embeds: EmbedDescriptor[] = [
component: Vimeo,
matcher: matcher(Vimeo),
},
{
title: "Whimsical",
keywords: "whiteboard",
icon: () => <Img src="/images/whimsical.png" alt="Whimsical" />,
component: Whimsical,
matcher: matcher(Whimsical),
},
{
title: "YouTube",
keywords: "google video",