From 3d392bbcab30ed107ef4d724cb1e1711e75bb0cc Mon Sep 17 00:00:00 2001 From: Ittai Shay Date: Mon, 2 Feb 2026 16:17:48 -0800 Subject: [PATCH] feat(media): add fullscreen keyboard shortcut to React controls --- src/lib/viewers/media/MediaBaseViewer.js | 4 ++++ .../media/__tests__/MediaBaseViewer-test.js | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/lib/viewers/media/MediaBaseViewer.js b/src/lib/viewers/media/MediaBaseViewer.js index d5f3eb93f..83d79a1aa 100644 --- a/src/lib/viewers/media/MediaBaseViewer.js +++ b/src/lib/viewers/media/MediaBaseViewer.js @@ -1164,6 +1164,10 @@ class MediaBaseViewer extends BaseViewer { case 'shift+m': this.toggleMute(); break; + case 'f': + case 'shift+f': + this.toggleFullscreen(); + break; default: return false; } diff --git a/src/lib/viewers/media/__tests__/MediaBaseViewer-test.js b/src/lib/viewers/media/__tests__/MediaBaseViewer-test.js index 3497b13bb..43e209641 100644 --- a/src/lib/viewers/media/__tests__/MediaBaseViewer-test.js +++ b/src/lib/viewers/media/__tests__/MediaBaseViewer-test.js @@ -1254,6 +1254,20 @@ describe('lib/viewers/media/MediaBaseViewer', () => { expect(media.toggleMute).toBeCalled(); }); + test('should toggle fullscreen and return true on f', () => { + jest.spyOn(media, 'toggleFullscreen').mockImplementation(); + + expect(media.handleKeydownReact('f')).toBe(true); + expect(media.toggleFullscreen).toBeCalled(); + }); + + test('should toggle fullscreen and return true on Shift+F', () => { + jest.spyOn(media, 'toggleFullscreen').mockImplementation(); + + expect(media.handleKeydownReact('Shift+F')).toBe(true); + expect(media.toggleFullscreen).toBeCalled(); + }); + test('should return false if another key is pressed', () => { expect(media.handleKeydownReact('Esc')).toBe(false); });