Merge pull request #970 from Stremio/feat/player-subtitles-size-shortcuts
Some checks failed
Build / build (push) Has been cancelled

Player: Add subtitles size shortcuts
This commit is contained in:
Tim 2025-07-07 14:33:37 +02:00 committed by GitHub
commit a9b9631241
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 26 additions and 4 deletions

6
package-lock.json generated
View file

@ -36,7 +36,7 @@
"react-i18next": "^15.1.3", "react-i18next": "^15.1.3",
"react-is": "18.3.1", "react-is": "18.3.1",
"spatial-navigation-polyfill": "github:Stremio/spatial-navigation#64871b1422466f5f45d24ebc8bbd315b2ebab6a6", "spatial-navigation-polyfill": "github:Stremio/spatial-navigation#64871b1422466f5f45d24ebc8bbd315b2ebab6a6",
"stremio-translations": "github:Stremio/stremio-translations#8212fa77c4febd22ddb611590e9fb574dc845416", "stremio-translations": "github:Stremio/stremio-translations#abe7684165a031755e9aee39da26daa806ba7824",
"url": "0.11.4", "url": "0.11.4",
"use-long-press": "^3.2.0" "use-long-press": "^3.2.0"
}, },
@ -13434,8 +13434,8 @@
}, },
"node_modules/stremio-translations": { "node_modules/stremio-translations": {
"version": "1.44.12", "version": "1.44.12",
"resolved": "git+ssh://git@github.com/Stremio/stremio-translations.git#8212fa77c4febd22ddb611590e9fb574dc845416", "resolved": "git+ssh://git@github.com/Stremio/stremio-translations.git#abe7684165a031755e9aee39da26daa806ba7824",
"integrity": "sha512-5DladLUsghLlVRsZh2bBnb7UMqU8NEYMHc+YbzBvb1llgMk9elXFSHtAjInepZlC5zWx2pJYOQ8lQzzqogQdFw==", "integrity": "sha512-bMpdJTFZqgemdoOQAARMPG7XaFgeu/zW/0vHmzavTM9DYUNIGuQaTC5RbVXIIII00RLOXoGLYf+dsxRVFiS9mA==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/string_decoder": { "node_modules/string_decoder": {

View file

@ -41,7 +41,7 @@
"react-i18next": "^15.1.3", "react-i18next": "^15.1.3",
"react-is": "18.3.1", "react-is": "18.3.1",
"spatial-navigation-polyfill": "github:Stremio/spatial-navigation#64871b1422466f5f45d24ebc8bbd315b2ebab6a6", "spatial-navigation-polyfill": "github:Stremio/spatial-navigation#64871b1422466f5f45d24ebc8bbd315b2ebab6a6",
"stremio-translations": "github:Stremio/stremio-translations#8212fa77c4febd22ddb611590e9fb574dc845416", "stremio-translations": "github:Stremio/stremio-translations#abe7684165a031755e9aee39da26daa806ba7824",
"url": "0.11.4", "url": "0.11.4",
"use-long-press": "^3.2.0" "use-long-press": "^3.2.0"
}, },

View file

@ -236,6 +236,12 @@ const Player = ({ urlParams, queryParams }) => {
updateSettings({ subtitlesSize: size }); updateSettings({ subtitlesSize: size });
}, [updateSettings]); }, [updateSettings]);
const onUpdateSubtitlesSize = React.useCallback((delta) => {
const sizeIndex = CONSTANTS.SUBTITLES_SIZES.indexOf(video.state.subtitlesSize);
const size = CONSTANTS.SUBTITLES_SIZES[Math.max(0, Math.min(CONSTANTS.SUBTITLES_SIZES.length - 1, sizeIndex + delta))];
onSubtitlesSizeChanged(size);
}, [video.state.subtitlesSize, onSubtitlesSizeChanged]);
const onSubtitlesOffsetChanged = React.useCallback((offset) => { const onSubtitlesOffsetChanged = React.useCallback((offset) => {
updateSettings({ subtitlesOffset: offset }); updateSettings({ subtitlesOffset: offset });
}, [updateSettings]); }, [updateSettings]);
@ -622,6 +628,14 @@ const Player = ({ urlParams, queryParams }) => {
onIncreaseSubtitlesDelay(); onIncreaseSubtitlesDelay();
break; break;
} }
case 'Minus': {
onUpdateSubtitlesSize(-1);
break;
}
case 'Equal': {
onUpdateSubtitlesSize(1);
break;
}
case 'Escape': { case 'Escape': {
closeMenus(); closeMenus();
!settings.escExitFullscreen && window.history.back(); !settings.escExitFullscreen && window.history.back();
@ -677,6 +691,7 @@ const Player = ({ urlParams, queryParams }) => {
toggleSideDrawer, toggleSideDrawer,
onDecreaseSubtitlesDelay, onDecreaseSubtitlesDelay,
onIncreaseSubtitlesDelay, onIncreaseSubtitlesDelay,
onUpdateSubtitlesSize,
]); ]);
React.useEffect(() => { React.useEffect(() => {

View file

@ -61,6 +61,13 @@ const Shortcuts = forwardRef<HTMLDivElement>((_, ref) => {
<kbd>F</kbd> <kbd>F</kbd>
</div> </div>
</Option> </Option>
<Option label={'SETTINGS_SHORTCUT_SUBTITLES_SIZE'}>
<div className={styles['shortcut-container']}>
<kbd>-</kbd>
<div className={styles['label']}>{ t('SETTINGS_SHORTCUT_AND') }</div>
<kbd>=</kbd>
</div>
</Option>
<Option label={'SETTINGS_SHORTCUT_SUBTITLES_DELAY'}> <Option label={'SETTINGS_SHORTCUT_SUBTITLES_DELAY'}>
<div className={styles['shortcut-container']}> <div className={styles['shortcut-container']}>
<kbd>G</kbd> <kbd>G</kbd>