mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 04:46:40 +07:00
fixed youtube block
This commit is contained in:
parent
93afa626db
commit
b87487ed1f
7 changed files with 34 additions and 7 deletions
23
src/components/comment/CommentEmbedBlock/index.tsx
Normal file
23
src/components/comment/CommentEmbedBlock/index.tsx
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
import React, { FC, memo } from 'react';
|
||||||
|
import { ICommentBlock } from '~/constants/comment';
|
||||||
|
import styles from './styles.scss';
|
||||||
|
|
||||||
|
interface IProps {
|
||||||
|
block: ICommentBlock;
|
||||||
|
}
|
||||||
|
|
||||||
|
const CommentEmbedBlock: FC<IProps> = memo(({ block }) => {
|
||||||
|
const link = block.content.match(
|
||||||
|
/(https?:\/\/(www\.)?(youtube\.com|youtu\.be)\/(watch)?(\?v=)?[\w\-]+)/gi
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className={styles.text}>
|
||||||
|
<a href={link[0]} target="_blank">
|
||||||
|
{link[0]}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
export { CommentEmbedBlock };
|
3
src/components/comment/CommentEmbedBlock/styles.scss
Normal file
3
src/components/comment/CommentEmbedBlock/styles.scss
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
.text {
|
||||||
|
padding: 0 $gap;
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
.text {
|
.text {
|
||||||
padding: $gap;
|
padding: 0 $gap;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font: $font_16_medium;
|
font: $font_16_medium;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
|
|
|
@ -31,7 +31,7 @@ const CommentContent: FC<IProps> = memo(({ comment }) => {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{comment.text && (
|
{comment.text && (
|
||||||
<div className={styles.block}>
|
<Group className={styles.block}>
|
||||||
{formatCommentText(path(['user', 'username'], comment), comment.text).map(
|
{formatCommentText(path(['user', 'username'], comment), comment.text).map(
|
||||||
(block, key) =>
|
(block, key) =>
|
||||||
COMMENT_BLOCK_RENDERERS[block.type] &&
|
COMMENT_BLOCK_RENDERERS[block.type] &&
|
||||||
|
@ -39,7 +39,7 @@ const CommentContent: FC<IProps> = memo(({ comment }) => {
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<div className={styles.date}>{getPrettyDate(comment.created_at)}</div>
|
<div className={styles.date}>{getPrettyDate(comment.created_at)}</div>
|
||||||
</div>
|
</Group>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{groupped.image && groupped.image.length > 0 && (
|
{groupped.image && groupped.image.length > 0 && (
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
padding: $gap 0;
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
border-top-right-radius: $radius;
|
border-top-right-radius: $radius;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { CommentTextBlock } from '~/components/comment/CommentTextBlock';
|
import { CommentTextBlock } from '~/components/comment/CommentTextBlock';
|
||||||
|
import { CommentEmbedBlock } from '~/components/comment/CommentEmbedBlock';
|
||||||
|
|
||||||
export const COMMENT_BLOCK_TYPES = {
|
export const COMMENT_BLOCK_TYPES = {
|
||||||
TEXT: 'TEXT',
|
TEXT: 'TEXT',
|
||||||
|
@ -29,5 +30,5 @@ export type ICommentBlock = {
|
||||||
export const COMMENT_BLOCK_RENDERERS = {
|
export const COMMENT_BLOCK_RENDERERS = {
|
||||||
[COMMENT_BLOCK_TYPES.TEXT]: CommentTextBlock,
|
[COMMENT_BLOCK_TYPES.TEXT]: CommentTextBlock,
|
||||||
[COMMENT_BLOCK_TYPES.MARK]: CommentTextBlock,
|
[COMMENT_BLOCK_TYPES.MARK]: CommentTextBlock,
|
||||||
[COMMENT_BLOCK_TYPES.EMBED]: CommentTextBlock,
|
[COMMENT_BLOCK_TYPES.EMBED]: CommentEmbedBlock,
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,9 +21,6 @@ render(
|
||||||
/*
|
/*
|
||||||
|
|
||||||
[Stage 0]:
|
[Stage 0]:
|
||||||
- <...> format
|
|
||||||
- youtube embeds
|
|
||||||
|
|
||||||
- check if email is registered at social login
|
- check if email is registered at social login
|
||||||
- friendship
|
- friendship
|
||||||
- cover change
|
- cover change
|
||||||
|
@ -48,6 +45,8 @@ render(
|
||||||
- comment editing
|
- comment editing
|
||||||
|
|
||||||
Done:
|
Done:
|
||||||
|
- <...> format
|
||||||
|
- youtube embeds
|
||||||
- mobile header
|
- mobile header
|
||||||
- sticky header
|
- sticky header
|
||||||
- password restore
|
- password restore
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue