fix: player settings open/close animation and media playback rates

This commit is contained in:
Kentai Radiquum 2025-04-09 03:46:14 +05:00
parent 5ddf44ac3d
commit 2b43348b20
Signed by: Radiquum
GPG key ID: 858E8EE696525EED
4 changed files with 24 additions and 18 deletions

View file

@ -96,7 +96,7 @@
background: linear-gradient(to bottom, var(--gradient-steps)); background: linear-gradient(to bottom, var(--gradient-steps));
} }
.media-controller :global(media-settings-menu) { .media-settings-menu {
--media-menu-icon-height: 20px; --media-menu-icon-height: 20px;
--media-menu-item-icon-height: 20px; --media-menu-item-icon-height: 20px;
--media-settings-menu-min-width: calc(10 * var(--base)); --media-settings-menu-min-width: calc(10 * var(--base));
@ -110,8 +110,14 @@
user-select: none; user-select: none;
} }
.media-controller :global(media-settings-menu-item), .media-settings-menu[hidden] {
.media-controller :global([role="menu"]::part(menu-item)) { display: block;
visibility: visible;
opacity: 0;
}
.media-settings-menu-item,
.media-controller [role="menu"]::part(menu-item) {
--media-icon-color: var(--_primary-color); --media-icon-color: var(--_primary-color);
margin-inline: calc(0.45 * var(--base)); margin-inline: calc(0.45 * var(--base));
height: calc(1.6 * var(--base)); height: calc(1.6 * var(--base));
@ -124,32 +130,31 @@
text-shadow: none; text-shadow: none;
} }
.media-controller :global([slot="submenu"]::part(back button)) { .media-controller [slot="submenu"]::part(back button) {
font-size: calc(0.7 * var(--base)); font-size: calc(0.7 * var(--base));
} }
.media-controller :global(media-settings-menu-item:hover) { .media-settings-menu-item:hover {
--media-icon-color: #000; --media-icon-color: #000;
color: #000; color: #000;
background-color: #fff; background-color: #fff;
} }
.media-controller :global(media-settings-menu-item:hover [slot="submenu"]::part(menu-item)), .media-settings-menu-item:hover [slot="submenu"]::part(menu-item),
.media-controller :global([slot="submenu"]::part(back indicator)) { .media-controller [slot="submenu"]::part(back indicator) {
--media-icon-color: var(--_primary-color); --media-icon-color: var(--_primary-color);
} }
.media-controller :global(media-settings-menu-item:hover [slot="submenu"]::part(menu-item):hover) { .media-settings-menu-item:hover [slot="submenu"]::part(menu-item):hover {
--media-icon-color: #000; --media-icon-color: #000;
color: #000; color: #000;
background-color: #fff; background-color: #fff;
} }
.media-controller :global(media-settings-menu-item[submenusize="0"]) { .media-settings-menu-item[submenusize="0"] {
display: none; display: none;
} }
/* Also hide if only Auto is added. */
.quality-settings[submenusize="1"] { .quality-settings[submenusize="1"] {
display: none; display: none;
} }

View file

@ -12,7 +12,7 @@ import { useUserPlayerPreferencesStore } from "#/store/player";
import HlsVideo from "hls-video-element/react"; import HlsVideo from "hls-video-element/react";
import VideoJS from "videojs-video-element/react"; import VideoJS from "videojs-video-element/react";
import MediaThemeSutro from "./MediaThemeSutro"; // import MediaThemeSutro from "./MediaThemeSutro";
import { getAnonEpisodesWatched } from "./ReleasePlayer"; import { getAnonEpisodesWatched } from "./ReleasePlayer";
import { tryCatchPlayer, tryCatchAPI } from "#/api/utils"; import { tryCatchPlayer, tryCatchAPI } from "#/api/utils";
@ -25,7 +25,6 @@ import {
MediaTimeDisplay, MediaTimeDisplay,
MediaVolumeRange, MediaVolumeRange,
MediaPlayButton, MediaPlayButton,
MediaSeekBackwardButton,
MediaSeekForwardButton, MediaSeekForwardButton,
MediaMuteButton, MediaMuteButton,
MediaFullscreenButton, MediaFullscreenButton,
@ -489,6 +488,7 @@ export const ReleasePlayerCustom = (props: {
/> />
)} )}
</div> </div>
<HlsVideo <HlsVideo
className="object-contain h-full aspect-video" className="object-contain h-full aspect-video"
slot="media" slot="media"
@ -502,7 +502,7 @@ export const ReleasePlayerCustom = (props: {
/> />
<div className={`${Styles["media-gradient-bottom"]}`}></div> <div className={`${Styles["media-gradient-bottom"]}`}></div>
<MediaSettingsMenu <MediaSettingsMenu
hidden={true} hidden
anchor="auto" anchor="auto"
className={`${Styles["media-settings-menu"]}`} className={`${Styles["media-settings-menu"]}`}
> >
@ -512,8 +512,9 @@ export const ReleasePlayerCustom = (props: {
Скорость воспроизведения Скорость воспроизведения
<MediaPlaybackRateMenu <MediaPlaybackRateMenu
slot="submenu" slot="submenu"
rates={[0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]} rates={"0.5 0.75 1 1.25 1.5 1.75 2" as any}
hidden={true} // rates={[0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]}
hidden
> >
<div slot="title">Скорость воспроизведения</div> <div slot="title">Скорость воспроизведения</div>
</MediaPlaybackRateMenu> </MediaPlaybackRateMenu>
@ -522,7 +523,7 @@ export const ReleasePlayerCustom = (props: {
className={`${Styles["media-settings-menu-item"]} ${Styles["quality-settings"]}`} className={`${Styles["media-settings-menu-item"]} ${Styles["quality-settings"]}`}
> >
Качество Качество
<MediaRenditionMenu slot="submenu" hidden={true}> <MediaRenditionMenu slot="submenu" hidden>
<div slot="title">Качество</div> <div slot="title">Качество</div>
</MediaRenditionMenu> </MediaRenditionMenu>
</MediaSettingsMenuItem> </MediaSettingsMenuItem>

2
package-lock.json generated
View file

@ -15,7 +15,7 @@
"flowbite-react": "^0.11.7", "flowbite-react": "^0.11.7",
"hls-video-element": "^1.5.0", "hls-video-element": "^1.5.0",
"markdown-to-jsx": "^7.4.7", "markdown-to-jsx": "^7.4.7",
"media-chrome": "^4.8.0", "media-chrome": "^4.9.0",
"next": "^14.2.26", "next": "^14.2.26",
"next-plausible": "^3.12.1", "next-plausible": "^3.12.1",
"prettier": "^3.5.3", "prettier": "^3.5.3",

View file

@ -16,7 +16,7 @@
"flowbite-react": "^0.11.7", "flowbite-react": "^0.11.7",
"hls-video-element": "^1.5.0", "hls-video-element": "^1.5.0",
"markdown-to-jsx": "^7.4.7", "markdown-to-jsx": "^7.4.7",
"media-chrome": "^4.8.0", "media-chrome": "^4.9.0",
"next": "^14.2.26", "next": "^14.2.26",
"next-plausible": "^3.12.1", "next-plausible": "^3.12.1",
"prettier": "^3.5.3", "prettier": "^3.5.3",