From 44e04c57a9ff79304a73f351470fe7a8c097f51e Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Sat, 5 Jan 2019 23:43:51 -0800 Subject: [PATCH] Add Prezi embed support Increase size of video embeds --- app/embeds/Loom.js | 9 +-------- app/embeds/Prezi.js | 19 +++++++++++++++++++ app/embeds/Prezi.test.js | 24 ++++++++++++++++++++++++ app/embeds/Vimeo.js | 2 -- app/embeds/YouTube.js | 2 -- app/embeds/index.js | 2 ++ 6 files changed, 46 insertions(+), 12 deletions(-) create mode 100644 app/embeds/Prezi.js create mode 100644 app/embeds/Prezi.test.js diff --git a/app/embeds/Loom.js b/app/embeds/Loom.js index f644b6ba..e1cf6afa 100644 --- a/app/embeds/Loom.js +++ b/app/embeds/Loom.js @@ -14,13 +14,6 @@ export default class Loom extends React.Component { render() { const normalizedUrl = this.props.url.replace('share', 'embed'); - return ( - - ); + return ; } } diff --git a/app/embeds/Prezi.js b/app/embeds/Prezi.js new file mode 100644 index 00000000..cfb4ba80 --- /dev/null +++ b/app/embeds/Prezi.js @@ -0,0 +1,19 @@ +// @flow +import * as React from 'react'; +import Frame from './components/Frame'; + +const URL_REGEX = new RegExp('^https://prezi.com/view/(.*)$'); + +type Props = { + url: string, +}; + +export default class Prezi extends React.Component { + static ENABLED = [URL_REGEX]; + + render() { + const url = this.props.url.replace(/\/embed$/, ''); + + return ; + } +} diff --git a/app/embeds/Prezi.test.js b/app/embeds/Prezi.test.js new file mode 100644 index 00000000..7918e785 --- /dev/null +++ b/app/embeds/Prezi.test.js @@ -0,0 +1,24 @@ +/* eslint-disable flowtype/require-valid-file-annotation */ +import embeds from '.'; + +const { Prezi } = embeds; + +describe('Prezi', () => { + const match = Prezi.ENABLED[0]; + test('to be enabled on share link', () => { + expect( + 'https://prezi.com/view/39mn8Rn1ZkoeEKQCgk5C'.match(match) + ).toBeTruthy(); + }); + + test('to be enabled on embed link', () => { + expect( + 'https://prezi.com/view/39mn8Rn1ZkoeEKQCgk5C/embed'.match(match) + ).toBeTruthy(); + }); + + test('to not be enabled elsewhere', () => { + expect('https://prezi.com'.match(match)).toBe(null); + expect('https://prezi.com/pricing'.match(match)).toBe(null); + }); +}); diff --git a/app/embeds/Vimeo.js b/app/embeds/Vimeo.js index 472a01ee..ac9fdb60 100644 --- a/app/embeds/Vimeo.js +++ b/app/embeds/Vimeo.js @@ -18,8 +18,6 @@ export default class Vimeo extends React.Component { return ( diff --git a/app/embeds/YouTube.js b/app/embeds/YouTube.js index cb1c9d6d..71e80c1a 100644 --- a/app/embeds/YouTube.js +++ b/app/embeds/YouTube.js @@ -18,8 +18,6 @@ export default class YouTube extends React.Component { return ( diff --git a/app/embeds/index.js b/app/embeds/index.js index 6a78ed0b..dc2fdd9b 100644 --- a/app/embeds/index.js +++ b/app/embeds/index.js @@ -11,6 +11,7 @@ import Lucidchart from './Lucidchart'; import Marvel from './Marvel'; import ModeAnalytics from './ModeAnalytics'; import Numeracy from './Numeracy'; +import Prezi from './Prezi'; import RealtimeBoard from './RealtimeBoard'; import Spotify from './Spotify'; import Trello from './Trello'; @@ -31,6 +32,7 @@ export default { Marvel, ModeAnalytics, Numeracy, + Prezi, RealtimeBoard, Spotify, Trello,