Commit graph

307 commits

Author SHA1 Message Date
Tim
c38ffc36b6 refactor: move file drop logic to provider 2026-05-06 09:10:45 +02:00
Tim
8b9dfa5e82 refactor: core logic 2026-05-05 04:22:59 +02:00
Timothy Z.
69a11bd25d fix: correctly scroll only content in modal 2026-05-01 19:33:46 +03:00
Timothy Z.
e6078f6822 fix: gamepad modal overflow 2026-05-01 19:07:42 +03:00
Timothy Z.
6fc21e314d
Merge pull request #1237 from AKnassa/fix/fullscreen-state-desync-on-route-change
App: Correctly display fullscreen status
2026-05-01 18:41:19 +03:00
Timothy Z.
7637620ac5 gamepad: add lock unlock on dom 2026-04-29 17:25:35 +03:00
Timothy Z.
73a02564b3 refactor: make sure the gamepad modal focus is respected 2026-04-29 16:48:53 +03: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.
c47a06c667 refactor: correctl change layout xbox controller 2026-04-29 16:18:12 +03:00
Timothy Z.
5079af1c8d refactor: support auto controller detection 2026-04-29 15:57:40 +03:00
Timothy Z.
e5570f94a3 correct code indentation 2026-04-29 13:23:49 +03:00
Timothy Z.
a649ef696a correct types for dir analog btns 2026-04-29 13:23:15 +03:00
Timothy Z.
4756a959e8 code style improvements 2026-04-29 13:21:22 +03:00
Timothy Z.
12f3138341 add diagram animation 2026-04-29 00:16:38 +03:00
Timothy Z.
5abe361d00 refactor: improve player navigation 2026-04-28 23:52:59 +03:00
Timothy Z.
70e14c4871 refactor: improve navigation 2026-04-28 23:49:46 +03:00
Timothy Z.
0b601010e2 fix: tests + stale callbacks 2026-04-28 22:57:33 +03:00
Timothy Z.
f95273b8ce feat: add controller guide 2026-04-28 22:31:33 +03: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
AK
c97a9f1566 feat(app): mount FullscreenProvider at app root
Wrap the router with <FullscreenProvider> so a single provider instance
spans the whole app lifetime. The legacy useFullscreen hook is still
intact and continues to drive consumers; the provider is in place but
not yet consumed. Splitting this from the consumer cutover keeps each
commit independently buildable.

Made-with: Cursor
2026-04-27 01:50:51 -04:00
Timothy Z.
1f293b7cbc
Merge pull request #1180 from Stremio/feat/magnet-http-streams-handing
feat: handle http/magnets from search bar
2026-04-13 17:17:42 +03:00
mrcanelas
0e1d22d279 feat(ui): add font fallback for country flags on Windows 2026-04-01 18:52:22 -03:00
Timothy Z.
e260e52322 refactor: change type to info 2026-03-31 13:45:08 +03:00
Timothy Z.
ac9ca71b53 fix: ios pwa styles for the standalone display 2026-02-23 15:59:29 +02:00
Timothy Z.
fab318e647 lower the bottom safe inset revert to primary bg 2026-02-23 15:44:01 +02:00
Timothy Z.
c95f314a50 fix: sideDrawer safe areas 2026-02-23 15:35:55 +02:00
Timothy Z.
8623627f4d refactor: use both vars for html background 2026-02-23 15:23:37 +02:00
Timothy Z.
df0d24a7d9 fix: PWA safe area inset bg color 2026-02-23 15:08:24 +02:00
Tim
64b13d6092 chore: move assets to dedicated folder 2026-01-14 04:39:34 +01:00
Tim
9dbf950a40 chore: replace deprecated lodash.isequal 2026-01-14 03:12:15 +01:00
dexter21767-dev
6c7a2755fb update trakt logo styling 2025-12-15 16:17:49 +01:00
Tim
5969bc9251
Merge pull request #1041 from Stremio/feat/shortcuts-modal
App: Add shortcuts modal
2025-10-23 15:57:34 +02:00
Timothy Z.
c416971d22
Merge pull request #1009 from actuallylost/chore/typos
chore: fix all typos and misspellings
2025-10-23 16:51:45 +03:00
Tim
7b2e5305e0 Merge branch 'development' of https://github.com/Stremio/stremio-web into chore/update-pull-user-from-api-action 2025-10-22 13:41:11 +02:00
Tim
9fa0e46423 feat: add shortcuts modal 2025-10-12 12:06:59 +02:00
actuallylost
67f5446030
chore: fix all typos and misspellings 2025-09-27 16:23:06 +03:00
Lachezar Lechev
d177f86018
chore: change PullUserFromAPI action and include args
Signed-off-by: Lachezar Lechev <lachezar@ambire.com>
2025-09-03 12:07:30 +03:00
a snaek
53dfddec74
Update SearchParamsHandler.js 2025-08-05 10:23:15 +02:00
Botzy
45ffc79b1b Merge branch 'development' into feat/gamepad-support 2025-06-10 16:34:38 +03:00
Tim
5d9a005686 style(App): use singlequote for string 2025-05-27 20:30:23 +02:00
Tim
41546d65d2 feat: full deeplink support for shell 2025-05-27 20:16:26 +02:00
Alexandru Branza
2ef3f52c1c Fix Font Weight for Safari 2025-04-08 16:55:36 +03:00
Tim
9aa0490989 fix(App): non latin chars font 2025-04-04 18:58:36 +02:00
Tim
bbb26717c5 feat(shell): implement pause on minimize setting 2025-04-01 16:36:00 +02:00
Botzy
5927b17e87 feat(GamesupportProvider): add enabled prop to start/stop gamepad support 2025-03-24 17:09:09 +02:00
Botzy
4617d030aa feat(GamepadProvider): added Gamepad context and provider 2025-03-24 13:37:39 +02:00
Tim
383928e792 fix(App): ignore 3 slashes deeplinks for shell open-media 2025-03-20 11:22:27 +01:00
Tim
eb3fad32f1 fix(App): check if transportUrl is valid before opening it 2025-03-20 11:17:10 +01:00
Tim
53ffa321d8 feat(App): handle shell open-media event to open addons 2025-03-20 11:00:30 +01:00