diff --git a/app/embeds/ClickUp.js b/app/embeds/ClickUp.js new file mode 100644 index 000000000..f09da5ecc --- /dev/null +++ b/app/embeds/ClickUp.js @@ -0,0 +1,22 @@ +// @flow +import * as React from "react"; +import Frame from "./components/Frame"; + +const URL_REGEX = new RegExp( + "^https?://share.clickup.com/[a-z]/[a-z]/(.*)/(.*)$" +); + +type Props = {| + attrs: {| + href: string, + matches: string[], + |}, +|}; + +export default class ClickUp extends React.Component { + static ENABLED = [URL_REGEX]; + + render() { + return ; + } +} diff --git a/app/embeds/ClickUp.test.js b/app/embeds/ClickUp.test.js new file mode 100644 index 000000000..3014b49a7 --- /dev/null +++ b/app/embeds/ClickUp.test.js @@ -0,0 +1,17 @@ +/* eslint-disable flowtype/require-valid-file-annotation */ +import ClickUp from "./ClickUp"; + +describe("ClickUp", () => { + const match = ClickUp.ENABLED[0]; + test("to be enabled on share link", () => { + expect( + "https://share.clickup.com/b/h/6-9310960-2/c9d837d74182317".match(match) + ).toBeTruthy(); + }); + + test("to not be enabled elsewhere", () => { + expect("https://share.clickup.com".match(match)).toBe(null); + expect("https://clickup.com/".match(match)).toBe(null); + expect("https://clickup.com/features".match(match)).toBe(null); + }); +}); diff --git a/app/embeds/index.js b/app/embeds/index.js index 27319b9d0..939a6d921 100644 --- a/app/embeds/index.js +++ b/app/embeds/index.js @@ -3,6 +3,7 @@ import * as React from "react"; import styled from "styled-components"; import Abstract from "./Abstract"; import Airtable from "./Airtable"; +import ClickUp from "./ClickUp"; import Codepen from "./Codepen"; import Figma from "./Figma"; import Framer from "./Framer"; @@ -57,6 +58,13 @@ export default [ component: Airtable, matcher: matcher(Airtable), }, + { + title: "ClickUp", + keywords: "project", + icon: () => , + component: ClickUp, + matcher: matcher(ClickUp), + }, { title: "Codepen", keywords: "code editor", diff --git a/public/images/clickup.png b/public/images/clickup.png new file mode 100644 index 000000000..2d16de1ba Binary files /dev/null and b/public/images/clickup.png differ