Skip to content

Commit 1df0a8c

Browse files
committed
feat: 🎸 add react-simple-player
1 parent d70dbfa commit 1df0a8c

File tree

7 files changed

+105
-4
lines changed

7 files changed

+105
-4
lines changed

‎package.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
"p4-css": "^1.5.1",
9494
"react-instagram-embed": "^1.5.0",
9595
"react-player": "^1.15.3",
96+
"react-simple-player": "^1.0.1",
9697
"react-youtube": "^7.11.2",
9798
"scriptjs": "^2.5.9"
9899
},

‎src/ReactEmbed.tsx‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ const defaultBlocks: Blocks = {
3030
imgur: React.lazy(() => import('./blocks/imgur')),
3131
instagram: React.lazy(() => import('./blocks/instagram')),
3232
jsfiddle: React.lazy(() => import('./blocks/jsfiddle')),
33+
simplePlayer: React.lazy(() => import('./blocks/react-simple-player')),
3334
reactPlayer: React.lazy(() => import('./blocks/react-player')),
3435
replit: React.lazy(() => import('./blocks/replit')),
3536
soundcloud: React.lazy(() => import('./blocks/soundcloud')),
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import * as React from 'react';
2+
import {storiesOf} from '@storybook/react';
3+
import Embed from '..';
4+
5+
storiesOf('react-simple-player', module).add('.mp3', () => {
6+
return <Embed url={'https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_700KB.mp3'} />;
7+
});
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
const MATCH_AUDIO_FILE = /\.(mp3|wav|weba|aac|oga)($|\?)/i;
2+
const canPlay = (url: string): boolean => MATCH_AUDIO_FILE.test(url);
3+
4+
export default canPlay;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import * as React from 'react';
2+
import {BlockProps} from '../..';
3+
import {Player} from 'react-simple-player';
4+
5+
const SimplePlayerWrapper: React.SFC<BlockProps> = ({url, renderWrap}) => {
6+
return renderWrap(<Player src={url} height={50} />);
7+
};
8+
9+
export default SimplePlayerWrapper;

‎src/routeToBlock.ts‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {Blocks, ReactEmbedRouter, ParsedUrl} from '.';
2+
import canPlaySimplePlayer from './blocks/react-simple-player/canPlay';
23
import canPlay from './blocks/react-player/canPlay';
34

45
const routeTwitter: ReactEmbedRouter = (blocks, {pathname}) => {
@@ -88,7 +89,9 @@ const routeToBlock: ReactEmbedRouter = (blocks: Blocks, parsed: ParsedUrl) => {
8889
case 'gfycat.com':
8990
return routeGfycat(blocks, parsed);
9091
default:
91-
if (canPlay(url)) {
92+
if (canPlaySimplePlayer(url)) {
93+
return [blocks.simplePlayer, ''];
94+
} else if (canPlay(url)) {
9295
return [blocks.reactPlayer, ''];
9396
} else {
9497
return undefined;

‎yarn.lock‎

Lines changed: 79 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2325,6 +2325,11 @@
23252325
dependencies:
23262326
jest-diff "^24.3.0"
23272327

2328+
"@types/js-cookie@2.2.6":
2329+
version "2.2.6"
2330+
resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.6.tgz#f1a1cb35aff47bc5cfb05cb0c441ca91e914c26f"
2331+
integrity sha512-+oY0FDTO2GYKEV0YPvSshGq9t7YozVkgvXLty7zogQNuCxBhT9/3INX9Q7H1aRZ4SUDRXAKlJuA4EA5nTt7SNw==
2332+
23282333
"@types/minimatch@*", "@types/minimatch@^3.0.3":
23292334
version "3.0.3"
23302335
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
@@ -2592,6 +2597,11 @@
25922597
"@webassemblyjs/wast-parser" "1.8.5"
25932598
"@xtuc/long" "4.2.2"
25942599

2600+
"@xobotyi/scrollbar-width@1.9.5":
2601+
version "1.9.5"
2602+
resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d"
2603+
integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==
2604+
25952605
"@xtuc/ieee754@^1.2.0":
25962606
version "1.2.0"
25972607
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
@@ -4483,6 +4493,13 @@ copy-to-clipboard@^3.0.8:
44834493
dependencies:
44844494
toggle-selection "^1.0.6"
44854495

4496+
copy-to-clipboard@^3.2.0:
4497+
version "3.3.1"
4498+
resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae"
4499+
integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==
4500+
dependencies:
4501+
toggle-selection "^1.0.6"
4502+
44864503
core-js-compat@^3.6.2:
44874504
version "3.6.4"
44884505
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17"
@@ -5734,6 +5751,11 @@ fast-safe-stringify@^1.0.8, fast-safe-stringify@^1.2.1:
57345751
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-1.2.3.tgz#9fe22c37fb2f7f86f06b8f004377dbf8f1ee7bc1"
57355752
integrity sha512-QJYT/i0QYoiZBQ71ivxdyTqkwKkQ0oxACXHYxH2zYHJEgzi2LsbjgvtzTbLi1SZcF190Db2YP7I7eTsU2egOlw==
57365753

5754+
fast-shallow-equal@^1.0.0:
5755+
version "1.0.0"
5756+
resolved "https://registry.yarnpkg.com/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz#d4dcaf6472440dcefa6f88b98e3251e27f25628b"
5757+
integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==
5758+
57375759
fastest-stable-stringify@^1.0.1:
57385760
version "1.0.1"
57395761
resolved "https://registry.yarnpkg.com/fastest-stable-stringify/-/fastest-stable-stringify-1.0.1.tgz#9122d406d4c9d98bea644a6b6853d5874b87b028"
@@ -7890,6 +7912,11 @@ jest@24.9.0:
78907912
import-local "^2.0.0"
78917913
jest-cli "^24.9.0"
78927914

7915+
js-cookie@^2.2.1:
7916+
version "2.2.1"
7917+
resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8"
7918+
integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==
7919+
78937920
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
78947921
version "4.0.0"
78957922
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -9104,7 +9131,7 @@ nan@^2.12.1:
91049131
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
91059132
integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
91069133

9107-
nano-css@^5.3.0:
9134+
nano-css@^5.2.1, nano-css@^5.3.0:
91089135
version "5.3.0"
91099136
resolved "https://registry.yarnpkg.com/nano-css/-/nano-css-5.3.0.tgz#9d3cd29788d48b6a07f52aa4aec7cf4da427b6b5"
91109137
integrity sha512-uM/9NGK9/E9/sTpbIZ/bQ9xOLOIHZwrrb/CRlbDHBU/GFS7Gshl24v/WJhwsVViWkpOXUmiZ66XO7fSB4Wd92Q==
@@ -10869,7 +10896,7 @@ react-docgen@^5.0.0:
1086910896
node-dir "^0.1.10"
1087010897
strip-indent "^3.0.0"
1087110898

10872-
react-dom@16.13.1:
10899+
react-dom@16.13.1, react-dom@^16.13.1:
1087310900
version "16.13.1"
1087410901
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f"
1087510902
integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==
@@ -11023,6 +11050,16 @@ react-select@^3.0.8:
1102311050
react-input-autosize "^2.2.2"
1102411051
react-transition-group "^2.2.1"
1102511052

11053+
react-simple-player@^1.0.1:
11054+
version "1.0.1"
11055+
resolved "https://registry.yarnpkg.com/react-simple-player/-/react-simple-player-1.0.1.tgz#b51113c6f0b221d9743cfc0e358ca8188c92e98e"
11056+
integrity sha512-QUdaeRpVyyMn+lAb1neLsluFIAISSp0FCTmhJK6SGO4FvwHzuGelJ0gSWbBJboGdCsXqbKh/fj5s7x3agvEZMg==
11057+
dependencies:
11058+
p4-css "^1.5.1"
11059+
react "^16.13.1"
11060+
react-dom "^16.13.1"
11061+
react-use "^14.2.0"
11062+
1102611063
react-sizeme@^2.6.7:
1102711064
version "2.6.12"
1102811065
resolved "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-2.6.12.tgz#ed207be5476f4a85bf364e92042520499455453e"
@@ -11062,6 +11099,25 @@ react-transition-group@^2.2.1:
1106211099
prop-types "^15.6.2"
1106311100
react-lifecycles-compat "^3.0.4"
1106411101

11102+
react-use@^14.2.0:
11103+
version "14.2.0"
11104+
resolved "https://registry.yarnpkg.com/react-use/-/react-use-14.2.0.tgz#abac033fae5e358599b7e38084ff11b02e5d4868"
11105+
integrity sha512-vwC7jsBsiDENLrXGPqIH3W4mMS2j24h5jp4ol3jiiUQzZhCaG+ihumrShJxBI59hXso1pLHAePRQAg/fJjDcaQ==
11106+
dependencies:
11107+
"@types/js-cookie" "2.2.6"
11108+
"@xobotyi/scrollbar-width" "1.9.5"
11109+
copy-to-clipboard "^3.2.0"
11110+
fast-deep-equal "^3.1.1"
11111+
fast-shallow-equal "^1.0.0"
11112+
js-cookie "^2.2.1"
11113+
nano-css "^5.2.1"
11114+
resize-observer-polyfill "^1.5.1"
11115+
screenfull "^5.0.0"
11116+
set-harmonic-interval "^1.0.1"
11117+
throttle-debounce "^2.1.0"
11118+
ts-easing "^0.2.0"
11119+
tslib "^1.10.0"
11120+
1106511121
react-youtube@^7.11.2:
1106611122
version "7.11.2"
1106711123
resolved "https://registry.yarnpkg.com/react-youtube/-/react-youtube-7.11.2.tgz#f6b4078db8479101811208ca09f1618c84824613"
@@ -11071,7 +11127,7 @@ react-youtube@^7.11.2:
1107111127
prop-types "15.7.2"
1107211128
youtube-player "5.5.2"
1107311129

11074-
react@16.13.1:
11130+
react@16.13.1, react@^16.13.1:
1107511131
version "16.13.1"
1107611132
resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
1107711133
integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==
@@ -11768,6 +11824,11 @@ schema-utils@^2.6.5:
1176811824
ajv "^6.12.0"
1176911825
ajv-keywords "^3.4.1"
1177011826

11827+
screenfull@^5.0.0:
11828+
version "5.0.2"
11829+
resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.0.2.tgz#b9acdcf1ec676a948674df5cd0ff66b902b0bed7"
11830+
integrity sha512-cCF2b+L/mnEiORLN5xSAz6H3t18i2oHh9BA8+CQlAh5DRw2+NFAGQJOSYbcGw8B2k04g/lVvFcfZ83b3ysH5UQ==
11831+
1177111832
scriptjs@^2.5.9:
1177211833
version "2.5.9"
1177311834
resolved "https://registry.yarnpkg.com/scriptjs/-/scriptjs-2.5.9.tgz#343915cd2ec2ed9bfdde2b9875cd28f59394b35f"
@@ -11892,6 +11953,11 @@ set-blocking@^2.0.0, set-blocking@~2.0.0:
1189211953
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
1189311954
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
1189411955

11956+
set-harmonic-interval@^1.0.1:
11957+
version "1.0.1"
11958+
resolved "https://registry.yarnpkg.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249"
11959+
integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==
11960+
1189511961
set-value@^2.0.0, set-value@^2.0.1:
1189611962
version "2.0.1"
1189711963
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
@@ -13035,6 +13101,11 @@ ts-dedent@^1.1.0:
1303513101
resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-1.1.1.tgz#68fad040d7dbd53a90f545b450702340e17d18f3"
1303613102
integrity sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg==
1303713103

13104+
ts-easing@^0.2.0:
13105+
version "0.2.0"
13106+
resolved "https://registry.yarnpkg.com/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec"
13107+
integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==
13108+
1303813109
ts-jest@24.3.0:
1303913110
version "24.3.0"
1304013111
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.3.0.tgz#b97814e3eab359ea840a1ac112deae68aa440869"
@@ -13078,6 +13149,11 @@ ts-pnp@^1.1.2:
1307813149
resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.5.tgz#840e0739c89fce5f3abd9037bb091dbff16d9dec"
1307913150
integrity sha512-ti7OGMOUOzo66wLF3liskw6YQIaSsBgc4GOAlWRnIEj8htCxJUxskanMUoJOD6MDCRAXo36goXJZch+nOS0VMA==
1308013151

13152+
tslib@^1.10.0:
13153+
version "1.11.1"
13154+
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
13155+
integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
13156+
1308113157
tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
1308213158
version "1.10.0"
1308313159
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"

0 commit comments

Comments
 (0)