feat: "open in spotify" button (#1839)

* feat: open in spotify

* fix: disable native spotify URI by default
This commit is contained in:
riccardo
2026-03-15 19:49:33 +01:00
committed by GitHub
parent f2ab01199f
commit d96b282cae
7 changed files with 118 additions and 7 deletions
@@ -154,6 +154,8 @@ const ENV_SETTING_SPECS: EnvSettingSpec[] = [
{ key: 'FS_GENERAL_LASTFM_API_KEY', path: ['general', 'lastfmApiKey'], type: 'string' },
{ key: 'FS_GENERAL_LAST_FM', path: ['general', 'lastFM'], type: 'bool' },
{ key: 'FS_GENERAL_MUSIC_BRAINZ', path: ['general', 'musicBrainz'], type: 'bool' },
{ key: 'FS_GENERAL_SPOTIFY', path: ['general', 'spotify'], type: 'bool' },
{ key: 'FS_GENERAL_SPOTIFY_NATIVE_APP', path: ['general', 'nativeSpotify'], type: 'bool' },
{ key: 'FS_GENERAL_NATIVE_ASPECT_RATIO', path: ['general', 'nativeAspectRatio'], type: 'bool' },
{
key: 'FS_GENERAL_PLAYERBAR_OPEN_DRAWER',
+6
View File
@@ -477,6 +477,7 @@ export const GeneralSettingsSchema = z.object({
lastfmApiKey: z.string(),
musicBrainz: z.boolean(),
nativeAspectRatio: z.boolean(),
nativeSpotify: z.boolean(),
passwordStore: z.string().optional(),
pathReplace: z.string(),
pathReplaceWith: z.string(),
@@ -499,6 +500,7 @@ export const GeneralSettingsSchema = z.object({
sidebarPlaylistSorting: z.boolean(),
sideQueueType: SideQueueTypeSchema,
skipButtons: SkipButtonsSchema,
spotify: z.boolean(),
theme: z.nativeEnum(AppTheme),
themeDark: z.nativeEnum(AppTheme),
themeLight: z.nativeEnum(AppTheme),
@@ -1129,6 +1131,7 @@ const initialState: SettingsState = {
lastfmApiKey: '',
musicBrainz: true,
nativeAspectRatio: false,
nativeSpotify: false,
passwordStore: undefined,
pathReplace: '',
pathReplaceWith: '',
@@ -1161,6 +1164,7 @@ const initialState: SettingsState = {
skipBackwardSeconds: 5,
skipForwardSeconds: 10,
},
spotify: true,
theme: AppTheme.DEFAULT_DARK,
themeDark: AppTheme.DEFAULT_DARK,
themeLight: AppTheme.DEFAULT_LIGHT,
@@ -2549,6 +2553,8 @@ export const useExternalLinks = () =>
externalLinks: state.general.externalLinks,
lastFM: state.general.lastFM,
musicBrainz: state.general.musicBrainz,
nativeSpotify: state.general.nativeSpotify,
spotify: state.general.spotify,
}),
shallow,
);