Skip to content

Commit fc07a5c

Browse files
authored
Merge pull request #105 from solidSpoon/0105修复
修复英文字幕不能隐藏的问题
2 parents b7d9060 + ec8a3f3 commit fc07a5c

File tree

9 files changed

+110
-158
lines changed

9 files changed

+110
-158
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "dash-player",
33
"productName": "DashPlayer",
4-
"version": "5.1.1",
4+
"version": "5.1.2",
55
"description": "My Electron application description",
66
"main": ".vite/build/main.js",
77
"scripts": {

src/fronted/components/playerSubtitle/PlayerSubtitle.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import usePlayerController from '@/fronted/hooks/usePlayerController';
22
import React, { ReactElement } from 'react';
3-
import PlayerTranslatableLine from '@/fronted/components/playerSubtitle/PlayerTranslatableLine';
3+
import FullscreenTranslatableLine from '@/fronted/components/srt-cops/fullscreen-translatable-line';
44
import PlayerNormalLine from '@/fronted/components/playerSubtitle/PlayerNormalLine';
55
import StrUtil from '@/common/utils/str-util';
66

@@ -22,7 +22,7 @@ const PlayerSubtitle = () => {
2222
return tempEle.map((item, index) => {
2323
if (index === 0) {
2424
return (
25-
<PlayerTranslatableLine
25+
<FullscreenTranslatableLine
2626
adjusted={srtTender?.adjusted(sentence) ?? false}
2727
clearAdjust={clearAdjust}
2828
key={`first-${sentence.key}`}

src/fronted/components/playerSubtitle/PlayerTranslatableLine.tsx

Lines changed: 0 additions & 136 deletions
This file was deleted.

src/fronted/components/srt-cops/atoms/TranslatableLineCore.tsx renamed to src/fronted/components/srt-cops/atoms/translatable-line-core.tsx

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, { useState } from 'react';
2-
import Word from './Word';
2+
import Word from './word';
33
import useSetting from '../../../hooks/useSetting';
44
import { cn } from '@/fronted/lib/utils';
55
import { FONT_SIZE } from '../../../styles/style';
@@ -10,12 +10,14 @@ import useCopyModeController from '../../../hooks/useCopyModeController';
1010
interface TranslatableSubtitleLineCoreParam {
1111
sentence: Sentence;
1212
show: boolean;
13+
hoverDark?: boolean;
1314
}
1415

15-
const TranslatableLine = ({
16-
sentence,
17-
show
18-
}: TranslatableSubtitleLineCoreParam) => {
16+
const TranslatableLineCore = ({
17+
sentence,
18+
show,
19+
hoverDark
20+
}: TranslatableSubtitleLineCoreParam) => {
1921
const text = sentence.text;
2022
const sentenceStruct = sentence.struct;
2123
const fontSize = useSetting((state) =>
@@ -41,7 +43,7 @@ const TranslatableLine = ({
4143
) : (
4244
<div
4345
className={cn(
44-
'flex flex-wrap justify-center items-end w-0 flex-1 px-10 pt-2.5 pb-2.5 gap-x-2 gap-y-1',
46+
'flex flex-wrap justify-center items-end px-10 pt-2.5 pb-2.5 gap-x-2 gap-y-1',
4547
FONT_SIZE['ms1-large'],
4648
fontSize === 'fontSizeSmall' && FONT_SIZE['ms1-small'],
4749
fontSize === 'fontSizeMedium' && FONT_SIZE['ms1-medium'],
@@ -64,7 +66,8 @@ const TranslatableLine = ({
6466
requestPop={() =>
6567
handleRequestPop(partId)
6668
}
67-
show
69+
show={show}
70+
alwaysDark={hoverDark}
6871
/>
6972
);
7073
}
@@ -82,4 +85,8 @@ const TranslatableLine = ({
8285
);
8386
};
8487

85-
export default TranslatableLine;
88+
export default TranslatableLineCore;
89+
90+
TranslatableLineCore.defaultProps = {
91+
hoverDark: false
92+
};
File renamed without changes.

src/fronted/components/srt-cops/atoms/Word.tsx renamed to src/fronted/components/srt-cops/atoms/word.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import {useEffect, useRef, useState} from 'react';
22
import * as turf from '@turf/turf';
33
import {Feature, Polygon} from '@turf/turf';
4-
import {twMerge} from 'tailwind-merge';
5-
import WordPop from './WordPop';
4+
import WordPop from './word-pop';
65
import {playUrl, playWord} from '@/common/utils/AudioPlayer';
76
import usePlayerController from '../../../hooks/usePlayerController';
87
import useSWR from "swr";
@@ -18,7 +17,6 @@ export interface WordParam {
1817
pop: boolean;
1918
requestPop: () => void;
2019
show: boolean;
21-
hoverColor?: string;
2220
alwaysDark?: boolean;
2321
}
2422

@@ -102,7 +100,7 @@ const Word = ({word, original, pop, requestPop, show, alwaysDark}: WordParam) =>
102100
};
103101

104102
return (
105-
<div className={twMerge('flex gap-1')}>
103+
<div className={cn('flex gap-1')}>
106104
<div
107105
ref={eleRef}
108106
className="rounded select-none"
@@ -146,6 +144,5 @@ const Word = ({word, original, pop, requestPop, show, alwaysDark}: WordParam) =>
146144
export default Word;
147145

148146
Word.defaultProps = {
149-
hoverColor: 'bg-stone-100',
150147
alwaysDark: false,
151148
}
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
import React from 'react';
2+
import { AiOutlineFieldTime } from 'react-icons/ai';
3+
import useSetting from '@/fronted/hooks/useSetting';
4+
import usePlayerController from '@/fronted/hooks/usePlayerController';
5+
import { p } from '@/common/utils/Util';
6+
import { FONT_SIZE } from '@/fronted/styles/style';
7+
import { cn } from '@/fronted/lib/utils';
8+
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/fronted/components/ui/tooltip';
9+
import { Button } from '@/fronted/components/ui/button';
10+
import { Sentence } from '@/common/types/SentenceC';
11+
import TranslatableLineCore from '@/fronted/components/srt-cops/atoms/translatable-line-core';
12+
import { Bookmark } from 'lucide-react';
13+
import useFavouriteClip, { mapClipKey } from '@/fronted/hooks/useFavouriteClip';
14+
import useFile from '@/fronted/hooks/useFile';
15+
16+
interface PlayerTranslatableSubtitleLineParam {
17+
sentence: Sentence;
18+
adjusted: boolean;
19+
clearAdjust: () => void;
20+
}
21+
22+
const FullscreenTranslatableLine = ({
23+
sentence,
24+
adjusted,
25+
clearAdjust
26+
}: PlayerTranslatableSubtitleLineParam) => {
27+
const fontSize = useSetting((state) =>
28+
state.values.get('appearance.fontSize')
29+
);
30+
const show = usePlayerController((state) => state.showEn);
31+
const text = sentence.text;
32+
const isFavourite = useFavouriteClip((s) => s.lineClip.get(mapClipKey(useFile.getState().srtHash, sentence.index)) ?? false);
33+
34+
return (!p(text) || !show) ? (
35+
<div />
36+
) : (
37+
<div
38+
className={cn(
39+
'flex justify-center items-center',
40+
// 'bg-background/50 text-foreground',
41+
FONT_SIZE['ms1-large'],
42+
fontSize === 'fontSizeSmall' && FONT_SIZE['ms1-small'],
43+
fontSize === 'fontSizeMedium' &&
44+
FONT_SIZE['ms1-medium'],
45+
fontSize === 'fontSizeLarge' && FONT_SIZE['ms1-large']
46+
)}
47+
>
48+
<div
49+
className={cn(
50+
'flex justify-center items-end px-2.5 gap-x-2 gap-y-1 bg-black/50 text-white rounded'
51+
)}
52+
>
53+
{adjusted && (
54+
<TooltipProvider>
55+
<Tooltip>
56+
<TooltipTrigger asChild>
57+
<Button
58+
onClick={clearAdjust}
59+
variant={'ghost'} size={'icon'} className={'w-8 h-8 mb-2.5 flex-shrink-0'}>
60+
<AiOutlineFieldTime className={cn('fill-gray-300')} />
61+
</Button>
62+
</TooltipTrigger>
63+
<TooltipContent>
64+
点击重置当前句子时间戳
65+
</TooltipContent>
66+
</Tooltip>
67+
</TooltipProvider>
68+
)}
69+
<TranslatableLineCore sentence={sentence} show={show} hoverDark />
70+
71+
{adjusted && (
72+
<div className={cn('w-10 h-full flex-shrink-0 py-2.5')}>
73+
{isFavourite && (
74+
<Bookmark className={cn('w-5 h-5 text-white ml-auto')} />
75+
)}
76+
</div>
77+
)}
78+
</div>
79+
80+
</div>
81+
);
82+
};
83+
84+
export default FullscreenTranslatableLine;

src/fronted/components/srt-cops/translatable-line-podcast.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/fron
33
import { Button } from '@/fronted/components/ui/button';
44
import { cn } from '@/fronted/lib/utils';
55
import { Sentence } from '@/common/types/SentenceC';
6-
import TranslatableLineCore from '@/fronted/components/srt-cops/atoms/TranslatableLineCore';
6+
import TranslatableLineCore from '@/fronted/components/srt-cops/atoms/translatable-line-core';
77

88
interface TranslatableLinePodcastParam {
99
sentence: Sentence;

src/fronted/components/srt-cops/translatable-line.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { Sentence } from '@/common/types/SentenceC';
1010
import useFavouriteClip, { mapClipKey } from '@/fronted/hooks/useFavouriteClip';
1111
import useFile from '@/fronted/hooks/useFile';
1212
import { Bookmark } from 'lucide-react';
13-
import TranslatableLineCore from '@/fronted/components/srt-cops/atoms/TranslatableLineCore';
13+
import TranslatableLineCore from '@/fronted/components/srt-cops/atoms/translatable-line-core';
1414

1515
interface TranslatableSubtitleLineParam {
1616
sentence: Sentence;
@@ -52,15 +52,15 @@ const TranslatableLine = ({
5252
fontSize === 'fontSizeLarge' && FONT_SIZE['ms1-large']
5353
)}
5454
>
55-
<div className={cn('w-10 h-full translate-x-2.5 flex justify-center items-center')}>
55+
<div className={cn('w-10 m-2.5 h-10 flex-shrink-0')}>
5656
{adjusted && (
5757
<TooltipProvider>
5858
<Tooltip>
5959
<TooltipTrigger asChild>
6060
<Button
6161
onClick={clearAdjust}
62-
variant={'ghost'} size={'icon'} className={'p-1'}>
63-
<AiOutlineFieldTime className={cn('w-full h-full fill-black')} />
62+
variant={'ghost'} size={'icon'}>
63+
<AiOutlineFieldTime className={cn('fill-black')} />
6464
</Button>
6565
</TooltipTrigger>
6666
<TooltipContent>
@@ -71,7 +71,7 @@ const TranslatableLine = ({
7171
)}
7272
</div>
7373
<TranslatableLineCore sentence={sentence} show={show || hovered} />
74-
<div className={cn('w-10 h-full flex items-end justify-center pb-2')}>
74+
<div className={cn('w-10 h-full flex items-end justify-center pb-2 flex-shrink-0')}>
7575
{isFavourite && (
7676
<Bookmark className={cn('w-5 h-5 text-yellow-500 dark:text-yellow-600')} />
7777
)}

0 commit comments

Comments
 (0)