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 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",
|
||||
|
||||
Reference in New Issue
Block a user