mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-28 11:16:37 +08:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8017e994f4 |
@@ -10,7 +10,6 @@ import {
|
||||
Loader2,
|
||||
Lock,
|
||||
Maximize,
|
||||
MessageSquareText,
|
||||
Minimize,
|
||||
Pause,
|
||||
PictureInPicture,
|
||||
@@ -155,10 +154,12 @@ type PlayerControlsProps = {
|
||||
onSubtitleStyleChange: (style: SubtitleStylePreset) => void
|
||||
/** 弹幕设置面板是否打开。 */
|
||||
danmakuOpen: boolean
|
||||
/** 弹幕当前是否渲染在画面上(操作栏上的「弹」开关)。 */
|
||||
/** 弹幕当前是否渲染在画面上:操作栏的「弹」按钮用它显示开关状态。 */
|
||||
danmakuEnabled: boolean
|
||||
onToggleDanmakuEnabled?: (next: boolean) => void
|
||||
/** 打开弹幕设置面板(弹幕服务的搜索与参数都在那里)。 */
|
||||
/**
|
||||
* 打开弹幕设置面板。弹幕的加载开关、来源搜索、渲染参数都收在这个面板里,
|
||||
* 所以「弹」按钮直接指向它——不再经过「设置」面板中转。
|
||||
*/
|
||||
onOpenDanmaku?: () => void
|
||||
hasPrevEpisode?: boolean
|
||||
hasNextEpisode?: boolean
|
||||
@@ -217,7 +218,6 @@ export function PlayerControls({
|
||||
onSubtitleStyleChange,
|
||||
danmakuOpen,
|
||||
danmakuEnabled,
|
||||
onToggleDanmakuEnabled,
|
||||
onOpenDanmaku,
|
||||
hasPrevEpisode = false,
|
||||
hasNextEpisode = false,
|
||||
@@ -1021,27 +1021,6 @@ export function PlayerControls({
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{onOpenDanmaku && (
|
||||
<div>
|
||||
<p className={PLAYER_MENU_LABEL}>弹幕</p>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => {
|
||||
setSettingsMenuOpen(false)
|
||||
onOpenDanmaku()
|
||||
}}
|
||||
className={PLAYER_MENU_ITEM}
|
||||
title="打开弹幕设置(搜索弹幕库、调整渲染参数)"
|
||||
>
|
||||
<MessageSquareText size={14} className="shrink-0 text-white/50" />
|
||||
<span className="min-w-0 flex-1 truncate">弹幕设置</span>
|
||||
{danmakuOpen ? (
|
||||
<span className="shrink-0 text-[10px] text-rose-300">已打开</span>
|
||||
) : null}
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -1237,13 +1216,15 @@ export function PlayerControls({
|
||||
</button>
|
||||
)}
|
||||
|
||||
{/* 弹幕开关:只负责开/关,「弹幕设置」在设置面板里 */}
|
||||
{/* 弹幕:点开就是弹幕设置面板。弹幕的加载开关、来源搜索、渲染参数都在
|
||||
那个面板里,所以这里不再做「先切设置再找弹幕」的中转;按钮上的方块
|
||||
颜色仍然反映当前弹幕是否显示。 */}
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => onToggleDanmakuEnabled?.(!danmakuEnabled)}
|
||||
disabled={!onToggleDanmakuEnabled}
|
||||
className={PLAYER_ICON_BUTTON}
|
||||
title={danmakuEnabled ? '关闭弹幕显示' : '开启弹幕显示'}
|
||||
onClick={onOpenDanmaku}
|
||||
disabled={!onOpenDanmaku}
|
||||
className={`${PLAYER_ICON_BUTTON} ${danmakuOpen ? 'bg-white/15' : ''}`}
|
||||
title={danmakuOpen ? '弹幕设置(已打开)' : '弹幕设置'}
|
||||
>
|
||||
<span
|
||||
className={`flex h-[18px] w-[18px] items-center justify-center rounded-[4px] text-[10px] font-bold leading-none transition ${
|
||||
|
||||
@@ -215,9 +215,10 @@ export function PlayerDanmakuPanel({
|
||||
</div>
|
||||
|
||||
<div className="min-h-0 flex-1 overflow-y-auto overscroll-contain px-4 py-3.5">
|
||||
{/* 是否加载弹幕 */}
|
||||
{/* 弹幕总开关。从操作栏的「弹」按钮直接进来就到了这里,所以这一项就是
|
||||
用户找的「开关弹幕」;文案跟旧的按钮提示保持一致,避免换个说法让人找不到。 */}
|
||||
<label className="mb-3 flex cursor-pointer items-center justify-between rounded-lg bg-white/5 px-2.5 py-2 text-sm transition hover:bg-white/10">
|
||||
<span className="text-white/85">加载弹幕</span>
|
||||
<span className="text-white/85">显示弹幕</span>
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={enabled}
|
||||
|
||||
@@ -1696,7 +1696,6 @@ export function PlayerPage() {
|
||||
danmakuSearchTrigger={danmakuSearchTrigger}
|
||||
danmakuOpen={danmakuOpen}
|
||||
onOpenDanmaku={toggleDanmakuOpen}
|
||||
onToggleDanmakuEnabled={danmakuChangeEnabled}
|
||||
onDanmakuLoaded={danmakuLoaded}
|
||||
onDanmakuCandidates={danmakuGotCandidates}
|
||||
onDanmakuAlternatives={danmakuGotAlternatives}
|
||||
|
||||
@@ -187,8 +187,6 @@ type PlayerVideoStageProps = {
|
||||
danmakuOpen: boolean
|
||||
/** 打开弹幕设置面板(搜索弹幕库、调整渲染参数)。 */
|
||||
onOpenDanmaku: () => void
|
||||
/** 操作栏上的「弹」开关:只控制画面上的弹幕是否渲染。 */
|
||||
onToggleDanmakuEnabled: (next: boolean) => void
|
||||
onDanmakuLoaded: (info: DanmakuLoadedInfo | null) => void
|
||||
onDanmakuCandidates: (candidates: DanmakuAnime[]) => void
|
||||
onDanmakuAlternatives: (alternatives: DanmakuAnime[]) => void
|
||||
@@ -264,7 +262,6 @@ export function PlayerVideoStage({
|
||||
danmakuSearchTrigger = 0,
|
||||
danmakuOpen,
|
||||
onOpenDanmaku,
|
||||
onToggleDanmakuEnabled,
|
||||
onDanmakuLoaded,
|
||||
onDanmakuCandidates,
|
||||
onDanmakuAlternatives,
|
||||
@@ -876,7 +873,6 @@ export function PlayerVideoStage({
|
||||
onSubtitleStyleChange={onSubtitleStyleChange}
|
||||
danmakuOpen={danmakuOpen}
|
||||
danmakuEnabled={danmakuEnabled}
|
||||
onToggleDanmakuEnabled={onToggleDanmakuEnabled}
|
||||
onOpenDanmaku={onOpenDanmaku}
|
||||
hasPrevEpisode={hasPrevEpisode}
|
||||
hasNextEpisode={hasNextEpisode}
|
||||
|
||||
Reference in New Issue
Block a user