Commit graph

28 commits

Author SHA1 Message Date
Tim
8b9dfa5e82 refactor: core logic 2026-05-05 04:22:59 +02:00
AK
b2eec31114 Merge branch 'development' into fix/fullscreen-state-desync-on-route-change
Resolves a conflict in src/App/App.js between the new GamepadProvider
(landed via #882 on development) and FullscreenProvider on this branch.
Both wrap parts of the app tree at the same point.

Resolution: nest as <GamepadProvider> > <ShortcutsProvider> >
<FullscreenProvider>. FullscreenProvider stays innermost so it remains
inside ShortcutsProvider — required for the onShortcut('fullscreen', ...)
subscription added in 35b100767. Both ShortcutsModal and GamepadModal
render as siblings inside FullscreenProvider. NavBar conflict
auto-merged cleanly (kept useFullscreen import, added gamepad-nav hook).

Lint and types clean on App.js, HorizontalNavBar.js, FullscreenProvider.tsx.
2026-04-29 09:45:59 -04:00
Timothy Z.
0c1af71aa9 Merge remote-tracking branch 'origin/development' into feat/gamepad-support
# Conflicts:
#	package-lock.json
#	package.json
#	src/App/App.js
#	src/routes/Player/Player.js
#	src/routes/Settings/General/General.tsx
2026-04-28 16:47:48 +03:00
AK
b7f7a3d2ed fix(fullscreen): consume FullscreenProvider, remove per-instance state
useFullscreen is now a thin useContext consumer of FullscreenProvider,
so all callers share a single fullscreen state owned by the app root.

Why this fixes the desync bug:

stremio-router keeps multiple route layers mounted at once, and each
top-level route (Board, Discover, Library, Calendar, Addons, Settings,
Search) renders its own MainNavBars -> HorizontalNavBar -> useFullscreen.
The previous hook held local useState plus its own listeners, so each
route had an independent boolean. Entering fullscreen, then navigating
to another tab, mounted a fresh hook initialized to false; the icon
flipped back to "enter fullscreen" and clicking it re-requested
fullscreen on top of the existing one, leaving the UI unresponsive
until a route remount happened to coincide with reality.

With one provider above the router, state outlives route remounts and
listeners are attached exactly once. The hook's return tuple shape
([fullscreen, requestFullscreen, exitFullscreen, toggleFullscreen]) is
preserved, so all three call sites (HorizontalNavBar, NavMenuContent,
Player) keep working with no API change.

Also removes the legacy src/common/useFullscreen.ts and routes its
imports through stremio/common/Fullscreen (and the stremio/common
barrel for App.js / Player).

Note: MainNavBars is still rendered per-route. Lifting it to a single
app-level layout above the router is a worthwhile follow-up (eliminates
6+ duplicate mounts) but carries non-trivial CSS / useRouteFocused /
stacked-route risk and is out of scope for this PR; tracking separately.

Made-with: Cursor
2026-04-27 01:52:02 -04:00
Timothy Z.
c8592d5610 feat: use an icon for hdr badge 2026-04-21 13:22:35 +03:00
Timothy Z.
fcd85bdcf4 feat: handle http/magnets from search bar 2026-03-30 18:40:24 +03:00
Tim
64b13d6092 chore: move assets to dedicated folder 2026-01-14 04:39:34 +01:00
Botzy
39bfd7cc22 fix: issue with hook imports 2025-04-02 13:46:46 +03:00
Botzy
83571fdd26 Merge branch 'development' into feat/gamepad-support 2025-04-01 16:53:01 +03:00
Tim
ad11609bee fix(NavMenu): incorrect import 2025-04-01 14:43:47 +02:00
Tim
e0d1662f86 feat(shell): implement escape key fullscreen behavior 2025-04-01 12:23:42 +02:00
Botzy
91ee610023 feat(MetaDetails): added gamepad support 2025-03-28 17:26:50 +02:00
Botzy
96164511b5 feat(GamepadSupport): added support for HorizontalNavBar 2025-03-28 15:24:38 +02:00
Botzy
476f2f8551 feat(useVerticalSpatialNav): added hook for enabling spatial nav on vertical navigation 2025-03-26 19:00:55 +02:00
Tim
180de13e26
Merge pull request #831 from Stremio/fix/user-panel-behind-server-warning
Some checks are pending
Build / build (push) Waiting to run
Board: Ensure user panel is visible correctly when the server warning is not dismissed
2025-02-18 12:09:15 +01:00
Ivelin Megdanov
a51fccbe16 Moved LESS variables after the imports 2025-02-12 12:58:41 +02:00
Ivelin Megdanov
7fbd723db4 Renamed LESS variables 2025-02-12 12:50:08 +02:00
Ivelin Megdanov
804cf46161 add LESS variables for height calculations 2025-02-12 12:42:06 +02:00
Ivelin Megdanov
2b92474160 Using viewport height instead of 100vh 2025-02-12 12:22:25 +02:00
Ivelin Megdanov
40626ecb78 Fixed max height calculation on mobile 2025-02-12 11:25:16 +02:00
Ivelin Megdanov
173e58467e Fix user panel appearing behind server warning 2025-02-11 16:21:11 +02:00
Ivelin Megdanov
675257eb56 fix: prevent navbar icons to cut on mobile 2025-02-10 18:02:04 +02:00
Timothy Z.
b266ae5f2b refactor(NavTabButton): lower icon opacity 2025-01-17 16:35:10 +02:00
Timothy Z.
1d158d342e Merge branch 'development' into refactor/nav-tab-button-styles 2025-01-15 19:30:02 +02:00
IEduStu
9bbc448e41 fix: improve navigation buttons contrast 2025-01-13 22:25:35 +02:00
Timothy Z.
71b5d35af8 fix(SearchBar): components imports 2025-01-10 20:41:39 +02:00
Tim
ccf593d644 Merge branch 'development' of https://github.com/Stremio/stremio-web into refactor/components 2025-01-06 14:28:54 +01:00
Tim
003881d06d refactor: move components to their own folder 2024-12-31 18:34:22 +01:00