diff --git a/src/routes/player/SeekBar.tsx b/src/routes/player/SeekBar.tsx index 00b6db0cdb0b0f974ebe237fb891f7d0f2b2111c..61913ae29d4e791ee00a522a256d02d6d9dd2d1e 100644 --- a/src/routes/player/SeekBar.tsx +++ b/src/routes/player/SeekBar.tsx @@ -1,5 +1,6 @@ import React, {MouseEvent, useCallback, useMemo, useState} from "react"; import {createUseStyles} from "react-jss"; +import {getMousePosition} from "../../util/mouse/getMousePosition"; import {useOffsetRef} from "../../util/offset/useOffsetRef"; import {PreviewBar} from "./PreviewBar"; @@ -10,21 +11,6 @@ interface Props { position: number, } -interface MousePosition { - absolute: number, - relative: number -} - -function getMousePosition(event: MouseEvent<HTMLDivElement>): MousePosition | null { - const position = event.clientX - event.currentTarget.offsetLeft; - const width = event.currentTarget.offsetWidth; - if (position > width) return null; - return { - absolute: position, - relative: position / width - }; -} - export function SeekBar({video, previewTrack, duration, position}: Props) { const classes = useStyles(); diff --git a/src/util/mouse/MousePosition.tsx b/src/util/mouse/MousePosition.tsx new file mode 100644 index 0000000000000000000000000000000000000000..90ab9548ba45b63b0cbd6520906b2101482430de --- /dev/null +++ b/src/util/mouse/MousePosition.tsx @@ -0,0 +1,4 @@ +export interface MousePosition { + absolute: number, + relative: number +} diff --git a/src/util/mouse/getMousePosition.tsx b/src/util/mouse/getMousePosition.tsx new file mode 100644 index 0000000000000000000000000000000000000000..ded060c777e0b2abdfac0e17d89cad5573edd912 --- /dev/null +++ b/src/util/mouse/getMousePosition.tsx @@ -0,0 +1,12 @@ +import {MouseEvent} from "react"; +import {MousePosition} from "./MousePosition"; + +export function getMousePosition(event: MouseEvent<HTMLDivElement>): MousePosition | null { + const position = event.clientX - event.currentTarget.offsetLeft; + const width = event.currentTarget.offsetWidth; + if (position > width) return null; + return { + absolute: position, + relative: position / width + }; +}