@webitch/short-player 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/layout.d.ts +6 -6
- package/dist/app/layout.js +23 -0
- package/dist/app/layout.js.map +1 -0
- package/dist/app/page.d.ts +1 -1
- package/dist/app/page.js +19 -0
- package/dist/app/page.js.map +1 -0
- package/dist/component/index.d.ts +20 -20
- package/dist/component/index.d.ts.map +1 -1
- package/dist/component/index.js +64 -0
- package/dist/component/index.js.map +1 -0
- package/dist/entites/PlayBtn/ui/index.d.ts +4 -4
- package/dist/entites/PlayBtn/ui/index.js +23 -0
- package/dist/entites/PlayBtn/ui/index.js.map +1 -0
- package/dist/entites/ProgressBar/index.d.ts +1 -1
- package/dist/entites/ProgressBar/index.js +6 -0
- package/dist/entites/ProgressBar/index.js.map +1 -0
- package/dist/entites/ProgressBar/lib/handlers.d.ts +10 -10
- package/dist/entites/ProgressBar/lib/handlers.js +99 -0
- package/dist/entites/ProgressBar/lib/handlers.js.map +1 -0
- package/dist/entites/ProgressBar/ui/index.d.ts +7 -7
- package/dist/entites/ProgressBar/ui/index.js +135 -0
- package/dist/entites/ProgressBar/ui/index.js.map +1 -0
- package/dist/entites/SettingsButtons/index.d.ts +1 -1
- package/dist/entites/SettingsButtons/index.js +6 -0
- package/dist/entites/SettingsButtons/index.js.map +1 -0
- package/dist/entites/SettingsButtons/lib/handlers.d.ts +7 -7
- package/dist/entites/SettingsButtons/lib/handlers.js +46 -0
- package/dist/entites/SettingsButtons/lib/handlers.js.map +1 -0
- package/dist/entites/SettingsButtons/models/settings-buttons.interface.d.ts +5 -5
- package/dist/entites/SettingsButtons/models/settings-buttons.interface.js +3 -0
- package/dist/entites/SettingsButtons/models/settings-buttons.interface.js.map +1 -0
- package/dist/entites/SettingsButtons/ui/index.d.ts +2 -2
- package/dist/entites/SettingsButtons/ui/index.js +60 -0
- package/dist/entites/SettingsButtons/ui/index.js.map +1 -0
- package/dist/entites/ShortDescription/ui/index.d.ts +9 -9
- package/dist/entites/ShortDescription/ui/index.d.ts.map +1 -1
- package/dist/entites/ShortDescription/ui/index.js +15 -0
- package/dist/entites/ShortDescription/ui/index.js.map +1 -0
- package/dist/entites/ShortVideoBtns/ui/index.d.ts +10 -10
- package/dist/entites/ShortVideoBtns/ui/index.d.ts.map +1 -1
- package/dist/entites/ShortVideoBtns/ui/index.js +16 -0
- package/dist/entites/ShortVideoBtns/ui/index.js.map +1 -0
- package/dist/entites/SoundBtn/lib/handlers.d.ts +5 -5
- package/dist/entites/SoundBtn/lib/handlers.js +61 -0
- package/dist/entites/SoundBtn/lib/handlers.js.map +1 -0
- package/dist/entites/SoundBtn/ui/index.d.ts +6 -6
- package/dist/entites/SoundBtn/ui/index.js +94 -0
- package/dist/entites/SoundBtn/ui/index.js.map +1 -0
- package/dist/entites/progress-bar/index.d.ts +1 -1
- package/dist/entites/progress-bar/index.js +6 -0
- package/dist/entites/progress-bar/index.js.map +1 -0
- package/dist/entites/progress-bar/lib/handlers.d.ts +15 -15
- package/dist/entites/progress-bar/lib/handlers.js +109 -0
- package/dist/entites/progress-bar/lib/handlers.js.map +1 -0
- package/dist/entites/progress-bar/ui/progress-bar.d.ts +10 -10
- package/dist/entites/progress-bar/ui/progress-bar.js +125 -0
- package/dist/entites/progress-bar/ui/progress-bar.js.map +1 -0
- package/dist/features/player-tools/lib/handlers.d.ts +2 -2
- package/dist/features/player-tools/lib/handlers.js +14 -0
- package/dist/features/player-tools/lib/handlers.js.map +1 -0
- package/dist/features/player-tools/model/player-tools.interface.d.ts +13 -13
- package/dist/features/player-tools/model/player-tools.interface.js +3 -0
- package/dist/features/player-tools/model/player-tools.interface.js.map +1 -0
- package/dist/features/player-tools/ui/player-tools.d.ts +2 -2
- package/dist/features/player-tools/ui/player-tools.js +23 -0
- package/dist/features/player-tools/ui/player-tools.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/shared/constants/svgs.d.ts +18 -18
- package/dist/shared/constants/svgs.js +22 -0
- package/dist/shared/constants/svgs.js.map +1 -0
- package/dist/shared/constants/themes.d.ts +4 -4
- package/dist/shared/constants/themes.js +9 -0
- package/dist/shared/constants/themes.js.map +1 -0
- package/dist/shared/hooks/getDeviceIsMobile.d.ts +4 -4
- package/dist/shared/hooks/getDeviceIsMobile.d.ts.map +1 -1
- package/dist/shared/hooks/getDeviceIsMobile.js +14 -0
- package/dist/shared/hooks/getDeviceIsMobile.js.map +1 -0
- package/dist/shared/providers/themeProvider.d.ts +16 -16
- package/dist/shared/providers/themeProvider.js +56 -0
- package/dist/shared/providers/themeProvider.js.map +1 -0
- package/dist/shared/ui/Svg/index.d.ts +12 -12
- package/dist/shared/ui/Svg/index.d.ts.map +1 -1
- package/dist/shared/ui/Svg/index.js +49 -0
- package/dist/shared/ui/Svg/index.js.map +1 -0
- package/dist/shared/ui/index.d.ts +1 -1
- package/dist/shared/ui/index.js +6 -0
- package/dist/shared/ui/index.js.map +1 -0
- package/dist/shared/utils/formatViews.d.ts +1 -1
- package/dist/shared/utils/formatViews.js +14 -0
- package/dist/shared/utils/formatViews.js.map +1 -0
- package/dist/shared/utils/getHHSStime.d.ts +1 -1
- package/dist/shared/utils/getHHSStime.d.ts.map +1 -1
- package/dist/shared/utils/getHHSStime.js +36 -0
- package/dist/shared/utils/getHHSStime.js.map +1 -0
- package/dist/widgets/video-tag/lib/handlers.d.ts +5 -5
- package/dist/widgets/video-tag/lib/handlers.js +26 -0
- package/dist/widgets/video-tag/lib/handlers.js.map +1 -0
- package/dist/widgets/video-tag/model/video-tag.interface.d.ts +15 -15
- package/dist/widgets/video-tag/model/video-tag.interface.js +3 -0
- package/dist/widgets/video-tag/model/video-tag.interface.js.map +1 -0
- package/dist/widgets/video-tag/ui/video-tag.d.ts +2 -2
- package/dist/widgets/video-tag/ui/video-tag.js +62 -0
- package/dist/widgets/video-tag/ui/video-tag.js.map +1 -0
- package/package.json +6 -4
- package/dist/index.ts +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../src/entites/SettingsButtons/lib/handlers.ts"],"names":[],"mappings":";;;AAIO,MAAM,sBAAsB,GAAG,CAAC,QAAqC,EAAE,KAAa,EAAE,EAAE;IAC3F,IAAG,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAM;IAEzC,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,KAAK,CAAA;AACzC,CAAC,CAAA;AAJY,QAAA,sBAAsB,0BAIlC;AAEM,MAAM,SAAS,GAAG,CAAC,CAAmB,EAAE,QAAmB,EAAE,eAA8F,EAAE,cAAgD,EAAE,EAAE;IACpN,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,IAAI,QAAQ,EAAE,CAAC;QACX,eAAe,CAAC,CAAC,IAAiB,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5D,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB;AAEK,MAAM,UAAU,GAAG,CAAC,YAAyB,EAAE,eAAuD,EAAE,cAAgD,EAAE,EAAE;IAC3J,eAAe,CAAC,EAAE,CAAC,CAAC;IACpB,cAAc,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC;AAHW,QAAA,UAAU,cAGrB;AAEK,MAAM,MAAM,GAAG,CAAC,YAAyB,EAAE,eAA8F,EAAE,cAAgD,EAAE,EAAE;IAClM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,cAAc,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;AACL,CAAC,CAAC;AANW,QAAA,MAAM,UAMjB;AAEK,MAAM,oBAAoB,GAAG,CAAC,CAAmB,EAAE,SAA4C,EAAE,EAAE;IACtG,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAA;IAElE,SAAS,CAAC,CAAC,IAAa,EAAE,EAAE;QACxB,IAAG,IAAI,EAAE,CAAC;YACN,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,EAAE,CAAA;YAC1B,OAAO,KAAK,CAAA;QAChB,CAAC;aAAM,CAAC;YACJ,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,iBAAiB,EAAE,CAAA;YACpC,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAbY,QAAA,oBAAoB,wBAahC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { RefObject } from "react";
|
|
2
|
-
export interface ISettingsButtons {
|
|
3
|
-
videoRef: RefObject<HTMLVideoElement | null>;
|
|
4
|
-
}
|
|
5
|
-
export type ModalType = 'settings' | 'quality' | 'speed' | null;
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
export interface ISettingsButtons {
|
|
3
|
+
videoRef: RefObject<HTMLVideoElement | null>;
|
|
4
|
+
}
|
|
5
|
+
export type ModalType = 'settings' | 'quality' | 'speed' | null;
|
|
6
6
|
//# sourceMappingURL=settings-buttons.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-buttons.interface.js","sourceRoot":"","sources":["../../../../src/entites/SettingsButtons/models/settings-buttons.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ISettingsButtons } from '../models/settings-buttons.interface';
|
|
2
|
-
export declare const SettingsButtons: React.FC<ISettingsButtons>;
|
|
1
|
+
import { ISettingsButtons } from '../models/settings-buttons.interface';
|
|
2
|
+
export declare const SettingsButtons: React.FC<ISettingsButtons>;
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.SettingsButtons = void 0;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
const react_1 = require("react");
|
|
10
|
+
const ui_1 = require("../../../shared/ui");
|
|
11
|
+
const component_1 = require("../../../component");
|
|
12
|
+
const handlers_1 = require("../lib/handlers");
|
|
13
|
+
const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
|
|
14
|
+
const SettingsButtons = ({ videoRef }) => {
|
|
15
|
+
var _a;
|
|
16
|
+
const [isFull, setIsFull] = (0, react_1.useState)(false);
|
|
17
|
+
const [activeModal, setActiveModal] = (0, react_1.useState)(null);
|
|
18
|
+
const [modalHistory, setModalHistory] = (0, react_1.useState)([]);
|
|
19
|
+
const context = (0, component_1.usePlayerContext)();
|
|
20
|
+
(0, react_1.useEffect)(() => {
|
|
21
|
+
const handleClickOutSide = (e) => {
|
|
22
|
+
const modal = document.getElementById('settingsWrapper');
|
|
23
|
+
if (!(modal === null || modal === void 0 ? void 0 : modal.contains(e.target))) {
|
|
24
|
+
(0, handlers_1.closeModal)(modalHistory, setModalHistory, setActiveModal);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
window.addEventListener('mousedown', handleClickOutSide);
|
|
28
|
+
return () => {
|
|
29
|
+
window.removeEventListener('mousedown', handleClickOutSide);
|
|
30
|
+
};
|
|
31
|
+
}, [videoRef]);
|
|
32
|
+
(0, react_1.useEffect)(() => {
|
|
33
|
+
const handlePressFtoFullScreen = (e) => {
|
|
34
|
+
if (e.key.toLowerCase() === 'f') {
|
|
35
|
+
console.log('F');
|
|
36
|
+
(0, handlers_1.handleOpenFullScreen)(setIsFull);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
document.addEventListener('keyup', handlePressFtoFullScreen);
|
|
40
|
+
return () => {
|
|
41
|
+
document.removeEventListener('keyup', handlePressFtoFullScreen);
|
|
42
|
+
};
|
|
43
|
+
}, []);
|
|
44
|
+
const handleSpeed = (value) => {
|
|
45
|
+
(0, handlers_1.handleChangeVideoSpeed)(videoRef, value);
|
|
46
|
+
(0, handlers_1.closeModal)(modalHistory, setModalHistory, setActiveModal);
|
|
47
|
+
};
|
|
48
|
+
const handleChangeQualityLevel = (newQualityLevel) => {
|
|
49
|
+
context.hls.currentLevel = newQualityLevel;
|
|
50
|
+
(0, handlers_1.closeModal)(modalHistory, setModalHistory, setActiveModal);
|
|
51
|
+
};
|
|
52
|
+
const handleSubtitleBtn = (e) => {
|
|
53
|
+
context.hls.subtitleDisplay ? context.hls.subtitleDisplay = false : context.hls.subtitleDisplay = true;
|
|
54
|
+
};
|
|
55
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.settingsContainer, children: [(0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.subtitle, onClick: (e) => handleSubtitleBtn(e), children: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.btnWrap, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'subtitle' }) }) }), (0, jsx_runtime_1.jsxs)("div", { id: 'settingsWrapper', className: styles_module_scss_1.default.settingsWrapper, children: [(0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.settings, onClick: (e) => (0, handlers_1.openModal)(e, 'settings', setModalHistory, setActiveModal), children: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.btnWrapSettings, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'settings' }) }) }), activeModal === 'settings' && ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.modal, children: [(0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: (e) => (0, handlers_1.openModal)(e, 'quality', setModalHistory, setActiveModal), children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.modalBtnContainer, children: [(0, jsx_runtime_1.jsx)("div", { children: "\u041A\u0430\u0447\u0435\u0441\u0442\u0432\u043E" }), (0, jsx_runtime_1.jsx)("div", { children: `${(_a = context.hls.levels[context.hls.currentLevel]) === null || _a === void 0 ? void 0 : _a.height}p` })] }) }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: (e) => (0, handlers_1.openModal)(e, 'speed', setModalHistory, setActiveModal), children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.modalBtnContainer, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.speedLabel, children: "\u0421\u043A\u043E\u0440\u043E\u0441\u0442\u044C \u0432\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u0435\u0434\u0435\u043D\u0438\u044F" }), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.speedValue, children: [videoRef.current.playbackRate, "x"] })] }) })] })), activeModal === 'quality' && ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.modal, onClick: () => (0, handlers_1.goBack)(modalHistory, setModalHistory, setActiveModal), children: [(0, jsx_runtime_1.jsxs)("h3", { className: styles_module_scss_1.default.modalHeader, children: ['<', " \u041A\u0430\u0447\u0435\u0441\u0442\u0432\u043E"] }), context.hls.levels.map((level, index) => {
|
|
56
|
+
return ((0, jsx_runtime_1.jsxs)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleChangeQualityLevel(index), children: [level === null || level === void 0 ? void 0 : level.height, "p"] }, index));
|
|
57
|
+
})] })), activeModal === 'speed' && ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.modal, onClick: () => (0, handlers_1.goBack)(modalHistory, setModalHistory, setActiveModal), children: [(0, jsx_runtime_1.jsxs)("h3", { className: styles_module_scss_1.default.modalHeader, children: ['<', " \u0421\u043A\u043E\u0440\u043E\u0441\u0442\u044C \u0432\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u0435\u0434\u0435\u043D\u0438\u044F"] }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(0.25), children: "0.25x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(0.5), children: "0.5x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(0.75), children: "0.75x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(1), children: "1x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(1.25), children: "1.25x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(1.5), children: "1.5x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(1.75), children: "1.75x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(2), children: "2x" })] }))] }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.subtitle, onClick: (e) => (0, handlers_1.handleOpenFullScreen)(e, setIsFull), children: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.btnWrap, children: isFull ? (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'fullScreenOff' }) : (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'fullScreenOn' }) }) })] }));
|
|
58
|
+
};
|
|
59
|
+
exports.SettingsButtons = SettingsButtons;
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entites/SettingsButtons/ui/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface IShortDescription {
|
|
3
|
-
channelUrl: string;
|
|
4
|
-
channelAvatarUrl: string;
|
|
5
|
-
username: string;
|
|
6
|
-
videoName: string;
|
|
7
|
-
}
|
|
8
|
-
export declare const ShortDescription: React.FC<IShortDescription>;
|
|
9
|
-
export {};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface IShortDescription {
|
|
3
|
+
channelUrl: string;
|
|
4
|
+
channelAvatarUrl: string;
|
|
5
|
+
username: string;
|
|
6
|
+
videoName: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const ShortDescription: React.FC<IShortDescription>;
|
|
9
|
+
export {};
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entites/ShortDescription/ui/index.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entites/ShortDescription/ui/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,UAAU,iBAAiB;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAaxD,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ShortDescription = void 0;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
const link_1 = __importDefault(require("next/link"));
|
|
10
|
+
const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
|
|
11
|
+
const ShortDescription = ({ channelAvatarUrl, channelUrl, username, videoName }) => {
|
|
12
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.shortDescriptionContainer, children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.channelInfo, children: [(0, jsx_runtime_1.jsxs)(link_1.default, { href: channelUrl, className: styles_module_scss_1.default.channelInfo, children: [(0, jsx_runtime_1.jsx)("img", { src: channelAvatarUrl, alt: 'avatar', className: styles_module_scss_1.default.channelAvatar }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.channelUsername, children: username })] }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.subscriptionBtn, children: "\u043F\u043E\u0434\u043F\u0438\u0441\u0430\u0442\u044C\u0441\u044F" })] }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.videoName, children: videoName })] }));
|
|
13
|
+
};
|
|
14
|
+
exports.ShortDescription = ShortDescription;
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entites/ShortDescription/ui/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;AAIZ,qDAA4B;AAC5B,8EAAyC;AAUlC,MAAM,gBAAgB,GAAgC,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;IACnH,OAAO,CACH,iCAAK,SAAS,EAAE,4BAAM,CAAC,yBAAyB,aAC5C,iCAAK,SAAS,EAAE,4BAAM,CAAC,WAAW,aAC9B,wBAAC,cAAI,IAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,4BAAM,CAAC,WAAW,aACjD,gCAAK,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAC,QAAQ,EAAC,SAAS,EAAE,4BAAM,CAAC,aAAa,GAAG,EAC3E,gCAAK,SAAS,EAAE,4BAAM,CAAC,eAAe,YAAG,QAAQ,GAAO,IACrD,EACP,mCAAQ,SAAS,EAAE,4BAAM,CAAC,eAAe,mFAAsB,IAC7D,EACN,gCAAK,SAAS,EAAE,4BAAM,CAAC,SAAS,YAAG,SAAS,GAAO,IACjD,CACT,CAAA;AACL,CAAC,CAAA;AAbY,QAAA,gBAAgB,oBAa5B"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface IShortVideoBtns {
|
|
3
|
-
channelId: string;
|
|
4
|
-
videoId: string;
|
|
5
|
-
dislikes: string;
|
|
6
|
-
likes: string;
|
|
7
|
-
commentsCount: string;
|
|
8
|
-
}
|
|
9
|
-
export declare const ShortVideoBtns: React.FC<IShortVideoBtns>;
|
|
10
|
-
export {};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface IShortVideoBtns {
|
|
3
|
+
channelId: string;
|
|
4
|
+
videoId: string;
|
|
5
|
+
dislikes: string;
|
|
6
|
+
likes: string;
|
|
7
|
+
commentsCount: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const ShortVideoBtns: React.FC<IShortVideoBtns>;
|
|
10
|
+
export {};
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entites/ShortVideoBtns/ui/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entites/ShortVideoBtns/ui/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,UAAU,eAAe;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAA;CACxB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkCpD,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ShortVideoBtns = void 0;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
|
|
10
|
+
const ui_1 = require("../../../shared/ui");
|
|
11
|
+
const formatViews_1 = require("../../../shared/utils/formatViews");
|
|
12
|
+
const ShortVideoBtns = ({ channelId, videoId, dislikes, likes, commentsCount = 875 }) => {
|
|
13
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer, children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.itemWrapper, children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_svg, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'like', size: 'big' }) }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_text, children: (0, formatViews_1.formatViews)(+likes) })] }), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_svg, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'dislike', size: 'big' }) }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_text, children: (0, formatViews_1.formatViews)(+dislikes) })] }), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_svg, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'comments', size: 'big' }) }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_text, children: commentsCount })] }), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_svg, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'share', size: 'big' }) }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_text, children: "\u043F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F" })] })] }) }));
|
|
14
|
+
};
|
|
15
|
+
exports.ShortVideoBtns = ShortVideoBtns;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entites/ShortVideoBtns/ui/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;AAIZ,8EAAyC;AACzC,2CAAwC;AACxC,mEAA+D;AAUxD,MAAM,cAAc,GAA8B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,GAAG,GAAG,EAAE,EAAE,EAAE;IACtH,OAAO,CACH,gCAAK,SAAS,EAAE,4BAAM,CAAC,uBAAuB,YAC1C,iCAAK,SAAS,EAAE,4BAAM,CAAC,WAAW,aAC9B,iCAAK,SAAS,EAAE,4BAAM,CAAC,4BAA4B,aAC/C,gCAAK,SAAS,EAAE,4BAAM,CAAC,gCAAgC,YACnD,uBAAC,QAAG,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,GAAE,GAC3B,EACN,gCAAK,SAAS,EAAE,4BAAM,CAAC,iCAAiC,YAAG,IAAA,yBAAW,EAAC,CAAC,KAAK,CAAC,GAAO,IACnF,EACN,iCAAK,SAAS,EAAE,4BAAM,CAAC,4BAA4B,aAC/C,gCAAK,SAAS,EAAE,4BAAM,CAAC,gCAAgC,YACnD,uBAAC,QAAG,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,KAAK,GAAE,GAC9B,EACN,gCAAK,SAAS,EAAE,4BAAM,CAAC,iCAAiC,YAAG,IAAA,yBAAW,EAAC,CAAC,QAAQ,CAAC,GAAO,IACtF,EAEN,iCAAK,SAAS,EAAE,4BAAM,CAAC,4BAA4B,aAC/C,gCAAK,SAAS,EAAE,4BAAM,CAAC,gCAAgC,YACnD,uBAAC,QAAG,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,KAAK,GAAE,GAC/B,EACN,gCAAK,SAAS,EAAE,4BAAM,CAAC,iCAAiC,YAAG,aAAa,GAAO,IAC7E,EAEN,iCAAK,SAAS,EAAE,4BAAM,CAAC,4BAA4B,aAC/C,gCAAK,SAAS,EAAE,4BAAM,CAAC,gCAAgC,YACnD,uBAAC,QAAG,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,GAAE,GAC5B,EAEN,gCAAK,SAAS,EAAE,4BAAM,CAAC,iCAAiC,6EAAkB,IACxE,IACJ,GACJ,CACT,CAAA;AACL,CAAC,CAAA;AAlCY,QAAA,cAAc,kBAkC1B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { RefObject } from "react";
|
|
2
|
-
export declare const handleMuteOnClick: (e: React.MouseEvent, videoRef: RefObject<HTMLVideoElement | null>, setCurrentVolume: (volume: number) => void) => void;
|
|
3
|
-
export declare const handleMouseClickSoundBtn: (e: React.MouseEvent, videoRef: RefObject<HTMLVideoElement | null>, setCurrentVolume: (volume: number) => void) => void;
|
|
4
|
-
export declare const handleMouseDownSoundBtn: (e: React.MouseEvent, setIsDraggingVolume: (isDragging: boolean) => void) => void;
|
|
5
|
-
export declare const handleMouseUpSoundBtn: (e: React.MouseEvent, setIsDraggingVolume: (isDragging: boolean) => void) => void;
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
export declare const handleMuteOnClick: (e: React.MouseEvent, videoRef: RefObject<HTMLVideoElement | null>, setCurrentVolume: (volume: number) => void) => void;
|
|
3
|
+
export declare const handleMouseClickSoundBtn: (e: React.MouseEvent, videoRef: RefObject<HTMLVideoElement | null>, setCurrentVolume: (volume: number) => void) => void;
|
|
4
|
+
export declare const handleMouseDownSoundBtn: (e: React.MouseEvent, setIsDraggingVolume: (isDragging: boolean) => void) => void;
|
|
5
|
+
export declare const handleMouseUpSoundBtn: (e: React.MouseEvent, setIsDraggingVolume: (isDragging: boolean) => void) => void;
|
|
6
6
|
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleMouseUpSoundBtn = exports.handleMouseDownSoundBtn = exports.handleMouseClickSoundBtn = exports.handleMuteOnClick = void 0;
|
|
4
|
+
// Клик на иконку для мьюта/анмьюта
|
|
5
|
+
const handleMuteOnClick = (e, videoRef, setCurrentVolume) => {
|
|
6
|
+
e.stopPropagation();
|
|
7
|
+
if (!videoRef.current)
|
|
8
|
+
return;
|
|
9
|
+
if (videoRef.current.muted || videoRef.current.volume === 0) {
|
|
10
|
+
videoRef.current.muted = false;
|
|
11
|
+
videoRef.current.volume = 0.5;
|
|
12
|
+
setCurrentVolume(50);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
videoRef.current.muted = true;
|
|
16
|
+
setCurrentVolume(0);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.handleMuteOnClick = handleMuteOnClick;
|
|
20
|
+
// Клик на звуковую панель для установки громкости
|
|
21
|
+
const handleMouseClickSoundBtn = (e, videoRef, setCurrentVolume) => {
|
|
22
|
+
e.stopPropagation();
|
|
23
|
+
const soundVolumeBackgroundBar = document.getElementById('soundVolumeBackground');
|
|
24
|
+
if (!soundVolumeBackgroundBar || !videoRef.current)
|
|
25
|
+
return;
|
|
26
|
+
const positionOfSoundBar = soundVolumeBackgroundBar.getBoundingClientRect();
|
|
27
|
+
const positionOfNewVolume = (e.clientX - positionOfSoundBar.left) / positionOfSoundBar.width;
|
|
28
|
+
const newVolume = Math.max(0, Math.min(1, positionOfNewVolume));
|
|
29
|
+
console.log(newVolume);
|
|
30
|
+
videoRef.current.volume = newVolume;
|
|
31
|
+
setCurrentVolume(newVolume * 100);
|
|
32
|
+
};
|
|
33
|
+
exports.handleMouseClickSoundBtn = handleMouseClickSoundBtn;
|
|
34
|
+
// Начало перетаскивания
|
|
35
|
+
const handleMouseDownSoundBtn = (e, setIsDraggingVolume) => {
|
|
36
|
+
setIsDraggingVolume(true);
|
|
37
|
+
};
|
|
38
|
+
exports.handleMouseDownSoundBtn = handleMouseDownSoundBtn;
|
|
39
|
+
// Конец перетаскивания
|
|
40
|
+
const handleMouseUpSoundBtn = (e, setIsDraggingVolume) => {
|
|
41
|
+
e.stopPropagation();
|
|
42
|
+
setIsDraggingVolume(false);
|
|
43
|
+
};
|
|
44
|
+
exports.handleMouseUpSoundBtn = handleMouseUpSoundBtn;
|
|
45
|
+
// Перемещение при перетаскивании
|
|
46
|
+
// export const handleMouseMoveSoundBtn = (
|
|
47
|
+
// e: React.MouseEvent,
|
|
48
|
+
// isDraggingVolume: boolean,
|
|
49
|
+
// setCurrentVolume: (volume: number) => void,
|
|
50
|
+
// videoRef: RefObject<HTMLVideoElement | null>
|
|
51
|
+
// ) => {
|
|
52
|
+
// if (!isDraggingVolume || !videoRef.current) return
|
|
53
|
+
// const soundVolumeBackgroundBar = document.getElementById('soundVolumeBackground')
|
|
54
|
+
// if (!soundVolumeBackgroundBar) return
|
|
55
|
+
// const positionOfSoundBar = soundVolumeBackgroundBar.getBoundingClientRect()
|
|
56
|
+
// const newVolume = (e.clientX - positionOfSoundBar.left) / positionOfSoundBar.width
|
|
57
|
+
// const clampedVolume = Math.max(0, Math.min(1, newVolume))
|
|
58
|
+
// videoRef.current.volume = clampedVolume
|
|
59
|
+
// setCurrentVolume(clampedVolume * 100)
|
|
60
|
+
// }
|
|
61
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../src/entites/SoundBtn/lib/handlers.ts"],"names":[],"mappings":";;;AAEA,mCAAmC;AAC5B,MAAM,iBAAiB,GAAG,CAC7B,CAAmB,EACnB,QAA4C,EAC5C,gBAA0C,EAC5C,EAAE;IACA,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAM;IAE7B,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QAC9B,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QAC7B,gBAAgB,CAAC,EAAE,CAAC,CAAA;IACxB,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;QAC7B,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;AACL,CAAC,CAAA;AAhBY,QAAA,iBAAiB,qBAgB7B;AAED,kDAAkD;AAC3C,MAAM,wBAAwB,GAAG,CACpC,CAAmB,EACnB,QAA4C,EAC5C,gBAA0C,EAC5C,EAAE;IACA,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,MAAM,wBAAwB,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAA;IAEjF,IAAI,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAM;IAE1D,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,qBAAqB,EAAE,CAAA;IAC3E,MAAM,mBAAmB,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAA;IAC5F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAA;IAC/D,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEvB,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAA;IACnC,gBAAgB,CAAC,SAAS,GAAG,GAAG,CAAC,CAAA;AACrC,CAAC,CAAA;AAjBY,QAAA,wBAAwB,4BAiBpC;AAED,wBAAwB;AACjB,MAAM,uBAAuB,GAAG,CACnC,CAAmB,EACnB,mBAAkD,EACpD,EAAE;IACA,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAA;AALY,QAAA,uBAAuB,2BAKnC;AAED,uBAAuB;AAChB,MAAM,qBAAqB,GAAG,CACjC,CAAmB,EACnB,mBAAkD,EACpD,EAAE;IACA,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,mBAAmB,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AANY,QAAA,qBAAqB,yBAMjC;AAED,iCAAiC;AACjC,2CAA2C;AAC3C,4BAA4B;AAC5B,kCAAkC;AAClC,kDAAkD;AAClD,mDAAmD;AACnD,SAAS;AACT,yDAAyD;AAEzD,wFAAwF;AACxF,4CAA4C;AAE5C,kFAAkF;AAClF,yFAAyF;AACzF,gEAAgE;AAEhE,8CAA8C;AAC9C,4CAA4C;AAC5C,IAAI"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React, { RefObject } from 'react';
|
|
2
|
-
interface ISoundVolume {
|
|
3
|
-
videoRef: RefObject<HTMLVideoElement | null>;
|
|
4
|
-
}
|
|
5
|
-
export declare const SoundBtn: React.FC<ISoundVolume>;
|
|
6
|
-
export {};
|
|
1
|
+
import React, { RefObject } from 'react';
|
|
2
|
+
interface ISoundVolume {
|
|
3
|
+
videoRef: RefObject<HTMLVideoElement | null>;
|
|
4
|
+
}
|
|
5
|
+
export declare const SoundBtn: React.FC<ISoundVolume>;
|
|
6
|
+
export {};
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.SoundBtn = void 0;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
const react_1 = require("react");
|
|
10
|
+
const handlers_1 = require("../lib/handlers");
|
|
11
|
+
const ui_1 = require("../../../shared/ui");
|
|
12
|
+
const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
|
|
13
|
+
const SoundBtn = ({ videoRef }) => {
|
|
14
|
+
const [isVisibleSoundBar, setIsVisibleSoundBar] = (0, react_1.useState)(false);
|
|
15
|
+
const [currentVolume, setCurrentVolume] = (0, react_1.useState)(50);
|
|
16
|
+
const [isDraggingVolume, setIsDraggingVolume] = (0, react_1.useState)(false);
|
|
17
|
+
// Глобальные обработчики для перетаскивания
|
|
18
|
+
(0, react_1.useEffect)(() => {
|
|
19
|
+
const handleGlobalMouseMove = (e) => {
|
|
20
|
+
if (isDraggingVolume && videoRef.current) {
|
|
21
|
+
const soundVolumeBackgroundBar = document.getElementById('soundVolumeBackground');
|
|
22
|
+
if (!soundVolumeBackgroundBar)
|
|
23
|
+
return;
|
|
24
|
+
const positionOfSoundBar = soundVolumeBackgroundBar.getBoundingClientRect();
|
|
25
|
+
let newCurrentVolume = ((e.clientX - positionOfSoundBar.left) / positionOfSoundBar.width) * 100;
|
|
26
|
+
newCurrentVolume = Math.max(0, Math.min(100, newCurrentVolume));
|
|
27
|
+
setCurrentVolume(newCurrentVolume);
|
|
28
|
+
videoRef.current.volume = newCurrentVolume / 100;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const handleGlobalMouseUp = (e) => {
|
|
32
|
+
e.stopPropagation();
|
|
33
|
+
// Если был drag (мышь двигалась), то не даем событию всплывать
|
|
34
|
+
if (isDraggingVolume) {
|
|
35
|
+
e.stopPropagation();
|
|
36
|
+
e.stopImmediatePropagation();
|
|
37
|
+
// Отменяем стандартное поведение и всплытие
|
|
38
|
+
if (e.preventDefault) {
|
|
39
|
+
e.preventDefault();
|
|
40
|
+
}
|
|
41
|
+
setIsDraggingVolume(false);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
window.addEventListener('mousemove', handleGlobalMouseMove);
|
|
45
|
+
window.addEventListener('mouseup', handleGlobalMouseUp, true); // capture phase
|
|
46
|
+
return () => {
|
|
47
|
+
window.removeEventListener('mousemove', handleGlobalMouseMove);
|
|
48
|
+
window.removeEventListener('mouseup', handleGlobalMouseUp, true);
|
|
49
|
+
};
|
|
50
|
+
}, [isDraggingVolume, videoRef]);
|
|
51
|
+
// Предотвращаем click на родителе после drag
|
|
52
|
+
(0, react_1.useEffect)(() => {
|
|
53
|
+
const preventParentClick = (e) => {
|
|
54
|
+
if (isDraggingVolume) {
|
|
55
|
+
e.stopPropagation();
|
|
56
|
+
e.preventDefault();
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
// Ловим click на window до того, как он дойдет до родителя
|
|
60
|
+
window.addEventListener('click', preventParentClick, true);
|
|
61
|
+
return () => {
|
|
62
|
+
window.removeEventListener('click', preventParentClick, true);
|
|
63
|
+
};
|
|
64
|
+
}, [isDraggingVolume]);
|
|
65
|
+
if (!videoRef.current)
|
|
66
|
+
return null;
|
|
67
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.soundAndTimeContainer, children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.soundContainer, onMouseEnter: () => setIsVisibleSoundBar(true), onMouseLeave: () => {
|
|
68
|
+
if (!isDraggingVolume) {
|
|
69
|
+
setIsVisibleSoundBar(false);
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
// Предотвращаем всплытие кликов от всего контейнера звука
|
|
73
|
+
onClick: (e) => e.stopPropagation(), onMouseUp: (e) => e.stopPropagation(), onMouseDown: (e) => e.stopPropagation(), children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.soundBtnWrapper, children: (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.soundBtn, onClick: (e) => {
|
|
74
|
+
e.stopPropagation();
|
|
75
|
+
(0, handlers_1.handleMuteOnClick)(e, videoRef, setCurrentVolume);
|
|
76
|
+
}, children: currentVolume ? (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'soundOn' }) : (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'soundOff' }) }) }), (0, jsx_runtime_1.jsx)("div", { id: 'soundVolumeBackground', className: styles_module_scss_1.default.soundVolumeBackground, onClick: (e) => {
|
|
77
|
+
e.stopPropagation();
|
|
78
|
+
(0, handlers_1.handleMouseClickSoundBtn)(e, videoRef, setCurrentVolume);
|
|
79
|
+
}, onMouseDown: (e) => {
|
|
80
|
+
e.stopPropagation();
|
|
81
|
+
(0, handlers_1.handleMouseDownSoundBtn)(e, setIsDraggingVolume);
|
|
82
|
+
}, onMouseUp: (e) => {
|
|
83
|
+
e.stopPropagation();
|
|
84
|
+
(0, handlers_1.handleMouseUpSoundBtn)(e, setIsDraggingVolume);
|
|
85
|
+
}, children: (0, jsx_runtime_1.jsx)("div", { id: 'filledSoundBar', className: styles_module_scss_1.default.soundVolumeFilled, style: { width: `${currentVolume}%` }, children: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.pointer, onMouseDown: (e) => {
|
|
86
|
+
e.stopPropagation();
|
|
87
|
+
(0, handlers_1.handleMouseDownSoundBtn)(e, setIsDraggingVolume);
|
|
88
|
+
}, onMouseUp: (e) => {
|
|
89
|
+
e.stopPropagation();
|
|
90
|
+
(0, handlers_1.handleMouseUpSoundBtn)(e, setIsDraggingVolume);
|
|
91
|
+
} }) }) })] }) }));
|
|
92
|
+
};
|
|
93
|
+
exports.SoundBtn = SoundBtn;
|
|
94
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entites/SoundBtn/ui/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ProgressBar } from './ui/progress-bar';
|
|
1
|
+
export { ProgressBar } from './ui/progress-bar';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProgressBar = void 0;
|
|
4
|
+
var progress_bar_1 = require("./ui/progress-bar");
|
|
5
|
+
Object.defineProperty(exports, "ProgressBar", { enumerable: true, get: function () { return progress_bar_1.ProgressBar; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entites/progress-bar/index.ts"],"names":[],"mappings":";;;AAAA,kDAA+C;AAAtC,2GAAA,WAAW,OAAA"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { IFragment } from "@/widget/video-tag/model/video-tag.interface";
|
|
2
|
-
import { Dispatch, JSX, RefObject, SetStateAction } from "react";
|
|
3
|
-
export declare const handleMouseMove: (e: React.MouseEvent, isDragging: boolean, duration: number, progressContainerRef: RefObject<HTMLDivElement | null>, setHoverTime: (newHoverTime: number) => void) => void;
|
|
4
|
-
export declare const handleClick: (e: React.MouseEvent, isDragging: boolean, duration: number, progressContainerRef: RefObject<HTMLDivElement | null>, videoRef: RefObject<HTMLMediaElement>, setCurrentVideoTime: (newCurrentVideoTime: number) => void) => void;
|
|
5
|
-
export declare const handleMouseDown: (e: React.MouseEvent, setIsDragging: Dispatch<SetStateAction<boolean>>) => void;
|
|
6
|
-
export interface ProgressBarFragmentProps {
|
|
7
|
-
duration: number;
|
|
8
|
-
fragments: IFragment[] | null | undefined;
|
|
9
|
-
bufferedFragments: Array<{
|
|
10
|
-
start: number;
|
|
11
|
-
end: number;
|
|
12
|
-
}>;
|
|
13
|
-
currentVideoTime: number;
|
|
14
|
-
}
|
|
15
|
-
export declare const getProgressBarFragments: ({ duration, fragments, bufferedFragments, currentVideoTime, }: ProgressBarFragmentProps) => JSX.Element[];
|
|
1
|
+
import { IFragment } from "@/widget/video-tag/model/video-tag.interface";
|
|
2
|
+
import { Dispatch, JSX, RefObject, SetStateAction } from "react";
|
|
3
|
+
export declare const handleMouseMove: (e: React.MouseEvent, isDragging: boolean, duration: number, progressContainerRef: RefObject<HTMLDivElement | null>, setHoverTime: (newHoverTime: number) => void) => void;
|
|
4
|
+
export declare const handleClick: (e: React.MouseEvent, isDragging: boolean, duration: number, progressContainerRef: RefObject<HTMLDivElement | null>, videoRef: RefObject<HTMLMediaElement>, setCurrentVideoTime: (newCurrentVideoTime: number) => void) => void;
|
|
5
|
+
export declare const handleMouseDown: (e: React.MouseEvent, setIsDragging: Dispatch<SetStateAction<boolean>>) => void;
|
|
6
|
+
export interface ProgressBarFragmentProps {
|
|
7
|
+
duration: number;
|
|
8
|
+
fragments: IFragment[] | null | undefined;
|
|
9
|
+
bufferedFragments: Array<{
|
|
10
|
+
start: number;
|
|
11
|
+
end: number;
|
|
12
|
+
}>;
|
|
13
|
+
currentVideoTime: number;
|
|
14
|
+
}
|
|
15
|
+
export declare const getProgressBarFragments: ({ duration, fragments, bufferedFragments, currentVideoTime, }: ProgressBarFragmentProps) => JSX.Element[];
|
|
16
16
|
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getProgressBarFragments = exports.handleMouseDown = exports.handleClick = exports.handleMouseMove = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const styles_module_scss_1 = __importDefault(require("../ui/styles.module.scss"));
|
|
9
|
+
// Упрощенные хендлеры для мыши
|
|
10
|
+
const handleMouseMove = (e, isDragging, duration, progressContainerRef, setHoverTime) => {
|
|
11
|
+
if (!isDragging && progressContainerRef.current && duration) {
|
|
12
|
+
const rect = progressContainerRef.current.getBoundingClientRect();
|
|
13
|
+
const clickPosition = Math.min(Math.max(e.clientX - rect.left, 0), rect.width);
|
|
14
|
+
const newTime = (clickPosition / rect.width) * duration;
|
|
15
|
+
setHoverTime(newTime);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.handleMouseMove = handleMouseMove;
|
|
19
|
+
const handleClick = (e, isDragging, duration, progressContainerRef, videoRef, setCurrentVideoTime) => {
|
|
20
|
+
if (!isDragging && progressContainerRef.current && duration) {
|
|
21
|
+
const rect = progressContainerRef.current.getBoundingClientRect();
|
|
22
|
+
const clickPosition = Math.min(Math.max(e.clientX - rect.left, 0), rect.width);
|
|
23
|
+
const newTime = (clickPosition / rect.width) * duration;
|
|
24
|
+
videoRef.current.currentTime = newTime;
|
|
25
|
+
setCurrentVideoTime(newTime);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.handleClick = handleClick;
|
|
29
|
+
const handleMouseDown = (e, setIsDragging) => {
|
|
30
|
+
console.log('handleMouseDown22222');
|
|
31
|
+
setIsDragging(true);
|
|
32
|
+
};
|
|
33
|
+
exports.handleMouseDown = handleMouseDown;
|
|
34
|
+
const getProgressBarFragments = ({ duration, fragments, bufferedFragments, currentVideoTime, }) => {
|
|
35
|
+
const elements = [];
|
|
36
|
+
// Общая логика прогресса и буфера
|
|
37
|
+
const getGradientStops = (start, end, progress, buffers) => {
|
|
38
|
+
const gradientStops = [];
|
|
39
|
+
const progressPercent = progress >= end
|
|
40
|
+
? 100
|
|
41
|
+
: progress > start
|
|
42
|
+
? ((progress - start) / (end - start)) * 100
|
|
43
|
+
: 0;
|
|
44
|
+
if (progressPercent > 0) {
|
|
45
|
+
gradientStops.push("#1e90ff 0%");
|
|
46
|
+
gradientStops.push(`#1e90ff ${progressPercent}%`);
|
|
47
|
+
gradientStops.push(`#444 ${progressPercent}%`);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
gradientStops.push("#444 0%");
|
|
51
|
+
}
|
|
52
|
+
const bufferStops = [];
|
|
53
|
+
buffers.forEach(buffered => {
|
|
54
|
+
const overlapStart = Math.max(start, buffered.start);
|
|
55
|
+
const overlapEnd = Math.min(end, buffered.end);
|
|
56
|
+
if (overlapStart < overlapEnd) {
|
|
57
|
+
const bufferStartPercent = ((overlapStart - start) / (end - start)) * 100;
|
|
58
|
+
const bufferEndPercent = ((overlapEnd - start) / (end - start)) * 100;
|
|
59
|
+
if (bufferEndPercent > progressPercent) {
|
|
60
|
+
bufferStops.push({
|
|
61
|
+
start: Math.max(bufferStartPercent, progressPercent),
|
|
62
|
+
end: bufferEndPercent,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
bufferStops.forEach(buffer => {
|
|
68
|
+
gradientStops.push(`#666 ${buffer.start}%`);
|
|
69
|
+
gradientStops.push(`#666 ${buffer.end}%`);
|
|
70
|
+
});
|
|
71
|
+
const lastValue = gradientStops.length > 0
|
|
72
|
+
? parseFloat(gradientStops[gradientStops.length - 1].split(" ")[1].replace("%", ""))
|
|
73
|
+
: 0;
|
|
74
|
+
if (lastValue < 100) {
|
|
75
|
+
gradientStops.push(`#444 ${Math.max(lastValue, progressPercent)}%`);
|
|
76
|
+
gradientStops.push(`#444 100%`);
|
|
77
|
+
}
|
|
78
|
+
return gradientStops;
|
|
79
|
+
};
|
|
80
|
+
// Если нет фрагментов — одна сплошная полоса
|
|
81
|
+
if (!duration || !fragments || fragments.length === 0) {
|
|
82
|
+
const gradientStops = getGradientStops(0, duration || 100, currentVideoTime, bufferedFragments);
|
|
83
|
+
const gradient = `linear-gradient(to right, ${gradientStops.join(", ")})`;
|
|
84
|
+
elements.push((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.fragment, style: {
|
|
85
|
+
left: "0%",
|
|
86
|
+
width: "100%",
|
|
87
|
+
background: gradient,
|
|
88
|
+
pointerEvents: 'none'
|
|
89
|
+
} }, "single-fragment"));
|
|
90
|
+
return elements;
|
|
91
|
+
}
|
|
92
|
+
// Если фрагменты есть — рисуем каждый фрагмент
|
|
93
|
+
fragments.forEach((fragment, index) => {
|
|
94
|
+
const fragmentStartPercent = (fragment.start / duration) * 100;
|
|
95
|
+
const fragmentEndPercent = (fragment.end / duration) * 100;
|
|
96
|
+
const fragmentWidthPercent = fragmentEndPercent - fragmentStartPercent;
|
|
97
|
+
const gradientStops = getGradientStops(fragment.start, fragment.end, currentVideoTime, bufferedFragments);
|
|
98
|
+
const gradient = `linear-gradient(to right, ${gradientStops.join(", ")})`;
|
|
99
|
+
elements.push((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.fragment, style: {
|
|
100
|
+
left: `${fragmentStartPercent}%`,
|
|
101
|
+
width: `${fragmentWidthPercent}%`,
|
|
102
|
+
background: gradient,
|
|
103
|
+
pointerEvents: 'none'
|
|
104
|
+
} }, index));
|
|
105
|
+
});
|
|
106
|
+
return elements;
|
|
107
|
+
};
|
|
108
|
+
exports.getProgressBarFragments = getProgressBarFragments;
|
|
109
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../src/entites/progress-bar/lib/handlers.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { RefObject } from "react";
|
|
2
|
-
import { IFragment } from "../../../widget/video-tag/model/video-tag.interface";
|
|
3
|
-
interface IProgressBar {
|
|
4
|
-
duration: number;
|
|
5
|
-
videoRef: RefObject<HTMLVideoElement>;
|
|
6
|
-
fragments?: IFragment[];
|
|
7
|
-
isLiveStream?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export declare const ProgressBar: React.FC<IProgressBar>;
|
|
10
|
-
export {};
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
import { IFragment } from "../../../widget/video-tag/model/video-tag.interface";
|
|
3
|
+
interface IProgressBar {
|
|
4
|
+
duration: number;
|
|
5
|
+
videoRef: RefObject<HTMLVideoElement>;
|
|
6
|
+
fragments?: IFragment[];
|
|
7
|
+
isLiveStream?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const ProgressBar: React.FC<IProgressBar>;
|
|
10
|
+
export {};
|
|
11
11
|
//# sourceMappingURL=progress-bar.d.ts.map
|