From 699230bb3f14a55acbf49a678df7fd87f865ae5b Mon Sep 17 00:00:00 2001 From: JoramWilander Date: Wed, 9 Dec 2015 12:24:34 -0500 Subject: Fix OEmbeds when switching channel, vine/soundcloud heights, and youtube embeds --- web/react/components/post_attachment_oembed.jsx | 9 ++++++++- web/react/components/post_body.jsx | 6 +++--- web/react/components/providers.json | 4 ++-- web/react/utils/utils.jsx | 4 ++-- 4 files changed, 15 insertions(+), 8 deletions(-) (limited to 'web/react') diff --git a/web/react/components/post_attachment_oembed.jsx b/web/react/components/post_attachment_oembed.jsx index 13c32f744..4b12ee95e 100644 --- a/web/react/components/post_attachment_oembed.jsx +++ b/web/react/components/post_attachment_oembed.jsx @@ -14,7 +14,14 @@ export default class PostAttachmentOEmbed extends React.Component { } componentWillReceiveProps(nextProps) { - this.fetchData(nextProps.link); + if (nextProps.link !== this.props.link) { + this.isLoading = false; + this.fetchData(nextProps.link); + } + } + + componentDidMount() { + this.fetchData(this.props.link); } fetchData(link) { diff --git a/web/react/components/post_body.jsx b/web/react/components/post_body.jsx index 35a7727e9..dcbe56399 100644 --- a/web/react/components/post_body.jsx +++ b/web/react/components/post_body.jsx @@ -214,14 +214,14 @@ export default class PostBody extends React.Component { } createYoutubeEmbed(link) { - const ytRegex = /.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|watch\?(?:[a-zA-Z-_]+=[a-zA-Z0-9-_]+&)+v=)([^#\&\?]*).*/; + const ytRegex = /(?:http|https):\/\/(?:www\.)?(?:(?:youtube\.com\/(?:(?:v\/)|(\/u\/\w\/)|(?:(?:watch|embed\/watch)(?:\/|.*v=))|(?:embed\/)|(?:user\/[^\/]+\/u\/[0-9]\/)))|(?:youtu\.be\/))([^#\&\?]*)/; const match = link.trim().match(ytRegex); - if (!match || match[1].length !== 11) { + if (!match || match[2].length !== 11) { return null; } - const youtubeId = match[1]; + const youtubeId = match[2]; const time = this.handleYoutubeTime(link); function onClick(e) { diff --git a/web/react/components/providers.json b/web/react/components/providers.json index 33e377a39..b5899c225 100644 --- a/web/react/components/providers.json +++ b/web/react/components/providers.json @@ -11,7 +11,7 @@ "https?://soundcloud.com/.*/.*" ], "name": "SoundCloud", - "height": 110 + "height": 140 }, { "patterns": [ @@ -349,7 +349,7 @@ "https?://vine.co/v/[a-zA-Z0-9]+" ], "name": "Vine", - "height": 110 + "height": 490 }, { "patterns": [ diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index eb1d36ced..c2e4276b0 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -300,7 +300,7 @@ export function extractLinks(text) { Autolinker.link(text, { replaceFn, - urls: true, + urls: {schemeMatches: true, wwwMatches: true, tldMatches: false}, emails: false, twitter: false, phone: false, @@ -1253,4 +1253,4 @@ export function isFeatureEnabled(feature) { export function isSystemMessage(post) { return post.type && (post.type.lastIndexOf(Constants.SYSTEM_MESSAGE_PREFIX) === 0); -} \ No newline at end of file +} -- cgit v1.2.3-1-g7c22