コミットを比較
1
コミット
| 作成者 | SHA1 | 日付 | |
|---|---|---|---|
|
|
bbaec65d2f |
@@ -3,7 +3,6 @@ import { useEffect, useMemo, useState } from 'react'
|
|||||||
import { useLocale } from '@/lib/useLocale'
|
import { useLocale } from '@/lib/useLocale'
|
||||||
import PostOriginalCreatedTimeField from '@/components/PostOriginalCreatedTimeField'
|
import PostOriginalCreatedTimeField from '@/components/PostOriginalCreatedTimeField'
|
||||||
import FieldError from '@/components/common/FieldError'
|
import FieldError from '@/components/common/FieldError'
|
||||||
import FieldWarning from '@/components/common/FieldWarning'
|
|
||||||
import PostDurationField from '@/components/posts/PostDurationField'
|
import PostDurationField from '@/components/posts/PostDurationField'
|
||||||
import PostTagsField from '@/components/posts/PostTagsField'
|
import PostTagsField from '@/components/posts/PostTagsField'
|
||||||
import PostTextField from '@/components/posts/PostTextField'
|
import PostTextField from '@/components/posts/PostTextField'
|
||||||
@@ -173,9 +172,6 @@ const PostEditForm: FC<Props> = ({ post, onSave }) => {
|
|||||||
return (
|
return (
|
||||||
<form onSubmit={handleSubmit} className="max-w-xl pt-2 space-y-4">
|
<form onSubmit={handleSubmit} className="max-w-xl pt-2 space-y-4">
|
||||||
<FieldError messages={baseErrors}/>
|
<FieldError messages={baseErrors}/>
|
||||||
{!(post.thumbnail?.trim () || post.thumbnailBase?.trim ()) && (
|
|
||||||
<FieldWarning
|
|
||||||
messages={[label ('shared:labels.thumbnailMissing')]}/>)}
|
|
||||||
|
|
||||||
<PostTextField
|
<PostTextField
|
||||||
label={label ('shared:labels.title')}
|
label={label ('shared:labels.title')}
|
||||||
|
|||||||
@@ -196,6 +196,39 @@ const PostEmbed: FC<Props> = (
|
|||||||
return <TwitterEmbed userId={userId} statusId={statusId}/>
|
return <TwitterEmbed userId={userId} statusId={statusId}/>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case 'bilibili.com':
|
||||||
|
{
|
||||||
|
const videoId = url.pathname.match (
|
||||||
|
/^\/video\/(BV[a-zA-Z0-9]{10}|av[1-9]\d*)\/?$/)?.[1]
|
||||||
|
if (!(videoId))
|
||||||
|
break
|
||||||
|
|
||||||
|
if (embedAutoLoadMode === 'off')
|
||||||
|
return externalLink
|
||||||
|
if (shouldLoadEmbed === false)
|
||||||
|
return manualLoadControl
|
||||||
|
|
||||||
|
const playerUrl = new URL ('https://player.bilibili.com/player.html')
|
||||||
|
const parameter = videoId.startsWith ('BV') ? 'bvid' : 'aid'
|
||||||
|
const identifier = parameter === 'bvid' ? videoId : videoId.slice (2)
|
||||||
|
playerUrl.searchParams.set (parameter, identifier)
|
||||||
|
playerUrl.searchParams.set ('autoplay', '1')
|
||||||
|
|
||||||
|
const page = url.searchParams.get ('p')
|
||||||
|
if (page != null && /^[1-9]\d*$/.test (page))
|
||||||
|
playerUrl.searchParams.set ('p', page)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<iframe
|
||||||
|
src={playerUrl.toString ()}
|
||||||
|
title={post.title || post.url}
|
||||||
|
width={640}
|
||||||
|
height={360}
|
||||||
|
className="aspect-video h-auto max-w-full"
|
||||||
|
allow="autoplay; fullscreen"
|
||||||
|
allowFullScreen/>)
|
||||||
|
}
|
||||||
|
|
||||||
case 'youtube.com':
|
case 'youtube.com':
|
||||||
{
|
{
|
||||||
const videoId = url.searchParams.get ('v')
|
const videoId = url.searchParams.get ('v')
|
||||||
|
|||||||
新しいイシューから参照
ユーザーをブロックする