Skip to content

Commit e443de4

Browse files
authored
ssr (#107)
1 parent a1fb3b5 commit e443de4

File tree

1 file changed

+49
-43
lines changed

1 file changed

+49
-43
lines changed

projects/fastgpt/components/home/Video.tsx

Lines changed: 49 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -14,51 +14,57 @@ const VideoPlayer = ({
1414
const [open, setOpen] = useState(false)
1515

1616
useEffect(() => {
17-
const Plyr = require("plyr");
18-
const player = new Plyr("#player", {
19-
i18n: {
20-
speed: dict?.video.speed,
21-
normal: dict?.video.normal,
22-
},
23-
controls: [
24-
"play-large",
25-
"restart",
26-
"rewind",
27-
"play",
28-
"fast-forward",
29-
"progress",
30-
"current-time",
31-
"duration",
32-
"mute",
33-
"volume",
34-
"captions",
35-
"settings",
36-
"pip",
37-
"airplay",
38-
// 'download',
39-
"fullscreen",
40-
],
41-
});
42-
const show = () => {
43-
player.toggleControls(true);
44-
};
45-
const hiden = () => {
46-
player.toggleControls(false);
47-
};
48-
player.on("ready", (e: any) => {
49-
player.toggleControls(false);
50-
const playerContainer = document.getElementById("player-container");
51-
if (!playerContainer) return;
52-
playerContainer.addEventListener("mouseenter", show);
53-
playerContainer.addEventListener("mouseleave", hiden);
54-
});
17+
// 动态导入Plyr以避免SSR问题
18+
const loadPlyr = async () => {
19+
const Plyr = (await import("plyr")).default;
20+
const player = new Plyr("#player", {
21+
i18n: {
22+
speed: dict?.video.speed,
23+
normal: dict?.video.normal,
24+
},
25+
controls: [
26+
"play-large",
27+
"restart",
28+
"rewind",
29+
"play",
30+
"fast-forward",
31+
"progress",
32+
"current-time",
33+
"duration",
34+
"mute",
35+
"volume",
36+
"captions",
37+
"settings",
38+
"pip",
39+
"airplay",
40+
"fullscreen",
41+
],
42+
});
43+
44+
const show = () => {
45+
player.toggleControls(true);
46+
};
47+
const hiden = () => {
48+
player.toggleControls(false);
49+
};
5550

56-
return () => {
57-
const playerContainer = document.getElementById("player-container");
58-
if (!playerContainer) return;
59-
playerContainer.removeEventListener("mouseenter", show);
60-
playerContainer.removeEventListener("mouseleave", hiden);
51+
player.on("ready", (e: any) => {
52+
player.toggleControls(false);
53+
const playerContainer = document.getElementById("player-container");
54+
if (!playerContainer) return;
55+
playerContainer.addEventListener("mouseenter", show);
56+
playerContainer.addEventListener("mouseleave", hiden);
57+
});
58+
59+
return () => {
60+
const playerContainer = document.getElementById("player-container");
61+
if (!playerContainer) return;
62+
playerContainer.removeEventListener("mouseenter", show);
63+
playerContainer.removeEventListener("mouseleave", hiden);
64+
};
6165
};
66+
67+
loadPlyr();
6268
}, [dict]);
6369

6470
return (

0 commit comments

Comments
 (0)