@nikelroot/video-player 0.1.6 → 0.1.7

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/README.md CHANGED
@@ -37,6 +37,8 @@ export function Example() {
37
37
  }
38
38
  ```
39
39
 
40
+ When `active` is `true`, pressing `F` toggles fullscreen.
41
+
40
42
  Build before publishing:
41
43
 
42
44
  ```bash
package/dist/index.cjs CHANGED
@@ -772,6 +772,10 @@ var assignRef = (ref, value) => {
772
772
  }
773
773
  ref.current = value;
774
774
  };
775
+ var isEditableKeyTarget = (target) => {
776
+ if (!(target instanceof HTMLElement)) return false;
777
+ return target.isContentEditable || ["INPUT", "TEXTAREA", "SELECT"].includes(target.tagName);
778
+ };
775
779
  var VideoPlayerBase = (props, ref) => {
776
780
  const {
777
781
  controlsVariant = "none",
@@ -1382,6 +1386,21 @@ var VideoPlayerBase = (props, ref) => {
1382
1386
  if (!canAttemptPlayback(videoRef.current)) return;
1383
1387
  void playAction();
1384
1388
  }, [autoPlay, playAction]);
1389
+ (0, import_react3.useEffect)(() => {
1390
+ if (typeof document === "undefined") return;
1391
+ const handleKeyDown = (event) => {
1392
+ if (event.code !== "KeyF") return;
1393
+ if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;
1394
+ if (active !== true) return;
1395
+ if (isEditableKeyTarget(event.target)) return;
1396
+ event.preventDefault();
1397
+ fullScreenAction();
1398
+ };
1399
+ document.addEventListener("keydown", handleKeyDown);
1400
+ return () => {
1401
+ document.removeEventListener("keydown", handleKeyDown);
1402
+ };
1403
+ }, [active, fullScreenAction]);
1385
1404
  (0, import_react3.useEffect)(() => {
1386
1405
  if (typeof document === "undefined") return;
1387
1406
  const doc = document;
package/dist/index.js CHANGED
@@ -743,6 +743,10 @@ var assignRef = (ref, value) => {
743
743
  }
744
744
  ref.current = value;
745
745
  };
746
+ var isEditableKeyTarget = (target) => {
747
+ if (!(target instanceof HTMLElement)) return false;
748
+ return target.isContentEditable || ["INPUT", "TEXTAREA", "SELECT"].includes(target.tagName);
749
+ };
746
750
  var VideoPlayerBase = (props, ref) => {
747
751
  const {
748
752
  controlsVariant = "none",
@@ -1353,6 +1357,21 @@ var VideoPlayerBase = (props, ref) => {
1353
1357
  if (!canAttemptPlayback(videoRef.current)) return;
1354
1358
  void playAction();
1355
1359
  }, [autoPlay, playAction]);
1360
+ useEffect(() => {
1361
+ if (typeof document === "undefined") return;
1362
+ const handleKeyDown = (event) => {
1363
+ if (event.code !== "KeyF") return;
1364
+ if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;
1365
+ if (active !== true) return;
1366
+ if (isEditableKeyTarget(event.target)) return;
1367
+ event.preventDefault();
1368
+ fullScreenAction();
1369
+ };
1370
+ document.addEventListener("keydown", handleKeyDown);
1371
+ return () => {
1372
+ document.removeEventListener("keydown", handleKeyDown);
1373
+ };
1374
+ }, [active, fullScreenAction]);
1356
1375
  useEffect(() => {
1357
1376
  if (typeof document === "undefined") return;
1358
1377
  const doc = document;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nikelroot/video-player",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "Standalone React video player with HLS support.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",