feat: add prettier and eslint with pre-commit hook

This commit is contained in:
2026-05-10 19:23:53 +02:00
parent be9fbe0f64
commit 3703bbfcfe
33 changed files with 1643 additions and 1245 deletions

View File

@@ -1,58 +1,72 @@
import { state } from './state'
import { displayTimeFromAbsolute, absoluteTimeFromDisplay, absoluteTimeFromRatio, getBounds } from './timeline'
import { showControls, toggleMute, togglePlayPause, toggleFullscreen, seekBy, setVolume, formatTime } from './controls'
import { state } from './state';
import {
displayTimeFromAbsolute,
absoluteTimeFromDisplay,
absoluteTimeFromRatio,
getBounds,
} from './timeline';
import {
showControls,
toggleMute,
togglePlayPause,
toggleFullscreen,
seekBy,
setVolume,
formatTime,
} from './controls';
export const setupKeyboard = (): void => {
document.addEventListener('keydown', (e) => {
const target = e.target as HTMLElement
if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) return
document.addEventListener('keydown', e => {
const target = e.target as HTMLElement;
if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable)
return;
switch (e.code) {
case 'Space':
case 'KeyK':
e.preventDefault()
togglePlayPause()
showControls()
break
e.preventDefault();
togglePlayPause();
showControls();
break;
case 'ArrowLeft':
case 'KeyJ':
e.preventDefault()
seekBy(-10)
break
e.preventDefault();
seekBy(-10);
break;
case 'ArrowRight':
case 'KeyL':
e.preventDefault()
seekBy(10)
break
e.preventDefault();
seekBy(10);
break;
case 'ArrowUp':
e.preventDefault()
setVolume(state.video.volume + 0.05)
showControls()
break
e.preventDefault();
setVolume(state.video.volume + 0.05);
showControls();
break;
case 'ArrowDown':
e.preventDefault()
setVolume(state.video.volume - 0.05)
showControls()
break
e.preventDefault();
setVolume(state.video.volume - 0.05);
showControls();
break;
case 'KeyM':
e.preventDefault()
toggleMute()
showControls()
break
e.preventDefault();
toggleMute();
showControls();
break;
case 'KeyF':
e.preventDefault()
toggleFullscreen()
showControls()
break
e.preventDefault();
toggleFullscreen();
showControls();
break;
default:
if (/^\d$/.test(e.key)) {
const b = getBounds()
const b = getBounds();
if (b.duration > 0) {
e.preventDefault()
state.video.currentTime = absoluteTimeFromRatio(parseInt(e.key, 10) / 10)
showControls()
e.preventDefault();
state.video.currentTime = absoluteTimeFromRatio(parseInt(e.key, 10) / 10);
showControls();
}
}
}
})
}
});
};