diff --git a/src/routes/Settings/Settings.js b/src/routes/Settings/Settings.js
index fbaf32afc..ca87bbadd 100644
--- a/src/routes/Settings/Settings.js
+++ b/src/routes/Settings/Settings.js
@@ -31,6 +31,7 @@ const Settings = () => {
const toast = useToast();
const {
interfaceLanguageSelect,
+ gamepadSupportToggle,
hideSpoilersToggle,
subtitlesLanguageSelect,
subtitlesSizeSelect,
@@ -352,6 +353,16 @@ const Settings = () => {
{...hideSpoilersToggle}
/>
+
{ t('SETTINGS_NAV_PLAYER') }
diff --git a/src/routes/Settings/useProfileSettingsInputs.js b/src/routes/Settings/useProfileSettingsInputs.js
index afad298ed..95da4bddd 100644
--- a/src/routes/Settings/useProfileSettingsInputs.js
+++ b/src/routes/Settings/useProfileSettingsInputs.js
@@ -32,6 +32,22 @@ const useProfileSettingsInputs = (profile) => {
}
}), [profile.settings]);
+ const gamepadSupportToggle = React.useMemo(() => ({
+ checked: profile.settings.gamepadSupport,
+ onClick: () => {
+ core.transport.dispatch({
+ action: 'Ctx',
+ args: {
+ action: 'UpdateSettings',
+ args: {
+ ...profile.settings,
+ gamepadSupport: !profile.settings.gamepadSupport
+ }
+ }
+ });
+ }
+ }), [profile.settings]);
+
const hideSpoilersToggle = React.useMemo(() => ({
checked: profile.settings.hideSpoilers,
onClick: () => {
@@ -341,6 +357,7 @@ const useProfileSettingsInputs = (profile) => {
}), [profile.settings]);
return {
interfaceLanguageSelect,
+ gamepadSupportToggle,
hideSpoilersToggle,
subtitlesLanguageSelect,
subtitlesSizeSelect,
diff --git a/src/types/models/Ctx.d.ts b/src/types/models/Ctx.d.ts
index 47f18749f..6f641b3ad 100644
--- a/src/types/models/Ctx.d.ts
+++ b/src/types/models/Ctx.d.ts
@@ -22,6 +22,7 @@ type Settings = {
escExitFullscreen: boolean,
interfaceLanguage: string,
hideSpoilers: boolean,
+ gamepadSupport: boolean,
nextVideoNotificationDuration: number,
playInBackground: boolean,
playerType: string | null,