feat: release v0.0.1

This commit is contained in:
2026-02-27 09:50:13 +03:00
parent ed30903f96
commit 8f2c799235
321 changed files with 23986 additions and 1 deletions

View File

@@ -0,0 +1,11 @@
import type { JSX } from "react";
import Player from "video.js/dist/types/player";
import { IVideoJSProps } from "../video-js/types";
export interface IWithMouseEventsProps extends IVideoJSProps {
onClick?: (player: Player | null) => void;
onMouseLeave?: (player: Player | null) => void;
onMouseEnter?: (player: Player | null) => void;
children: JSX.Element;
}
export declare const WithMouseEvents: ({ children, onMouseEnter, onMouseLeave, onClick, onReady, ...props }: IWithMouseEventsProps) => import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-mouse-events/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAIjC,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAiB,MAAM,mBAAmB,CAAC;AAGjE,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC3D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,GAAI,sEAO7B,qBAAqB,4CAkEvB,CAAC"}

View File

@@ -0,0 +1,46 @@
import { jsx as _jsx } from "react/jsx-runtime";
import React, { useCallback, useRef, useState } from "react";
import styles from "./with-mouse-events.module.scss";
export const WithMouseEvents = ({ children, onMouseEnter, onMouseLeave, onClick, onReady, ...props }) => {
const [player, setPlayer] = useState(null);
const mouseHoverTimeoutRef = useRef(null); // Реф для хранения таймера
const isHoveredRef = useRef(false); // Реф для отслеживания состояния наведения
const handlePlayer = useCallback((player) => {
setPlayer(player);
onReady && onReady(player);
}, []);
// Обработчик клика на область видео
const handleClick = useCallback((e) => {
if (onClick) {
e.preventDefault();
e.stopPropagation();
onClick(player);
}
}, [onClick, player]);
// Обработчик наведения на видео
const handleMouseEnter = useCallback(() => {
// Устанавливаем флаг, что мышь наведена
isHoveredRef.current = true;
// Запускаем таймер на 1 секунды
mouseHoverTimeoutRef.current = setTimeout(() => {
// Проверяем, что курсор все еще находится на видео
if (isHoveredRef.current) {
onMouseEnter && onMouseEnter(player);
}
}, 1);
}, [onMouseEnter, player]);
// Обработчик убирания курсора с видео
const handleMouseLeave = useCallback(() => {
// Сбрасываем флаг, что мышь не наведена
isHoveredRef.current = false;
// Очищаем таймер, если курсор убран до его срабатывания
if (mouseHoverTimeoutRef.current) {
clearTimeout(mouseHoverTimeoutRef.current);
mouseHoverTimeoutRef.current = null;
}
// Останавливаем видео, если оно было запущено
onMouseLeave && onMouseLeave(player);
}, [onMouseLeave, player]);
return (_jsx("div", { className: styles.videoArea, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, children: React.cloneElement(children, { ...props, onReady: handlePlayer }) }));
};
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-mouse-events/index.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,EAAc,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKzE,OAAO,MAAM,MAAM,iCAAiC,CAAC;AASrD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC/B,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,OAAO,EACP,GAAG,KAAK,EACe,EAAE,EAAE;IAC3B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAC;IACjE,MAAM,oBAAoB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC,CAAC,2BAA2B;IAC7F,MAAM,YAAY,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC,CAAC,2CAA2C;IAExF,MAAM,YAAY,GAAG,WAAW,CAC/B,CAAC,MAAqB,EAAE,EAAE;QACzB,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,EAED,EAAE,CACF,CAAC;IAEF,oCAAoC;IACpC,MAAM,WAAW,GAAG,WAAW,CAC9B,CAAC,CAA6B,EAAE,EAAE;QACjC,IAAI,OAAO,EAAE,CAAC;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,OAAO,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,EACD,CAAC,OAAO,EAAE,MAAM,CAAC,CACjB,CAAC;IAEF,gCAAgC;IAChC,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,wCAAwC;QACxC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAE5B,gCAAgC;QAChC,oBAAoB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9C,mDAAmD;YACnD,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;QACF,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,sCAAsC;IACtC,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,wCAAwC;QACxC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAE7B,wDAAwD;QACxD,IAAI,oBAAoB,CAAC,OAAO,EAAE,CAAC;YAClC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC3C,oBAAoB,CAAC,OAAO,GAAG,IAAI,CAAC;QACrC,CAAC;QAED,8CAA8C;QAC9C,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,OAAO,CACN,cACC,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,OAAO,EAAE,WAAW,YAEnB,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,GAC7D,CACN,CAAC;AACH,CAAC,CAAC"}

View File

@@ -0,0 +1,4 @@
.videoArea {
width: 100%;
height: 100%;
}