Merge branch 'develop' into feat/i18n

This commit is contained in:
Simon Caron
2025-01-16 20:38:00 -05:00
7 changed files with 113 additions and 53 deletions

View File

@@ -80,6 +80,7 @@ export type Home = {
export type HomeSection = {
orientation?: "horizontal" | "vertical";
items?: HomeSectionItemResolver;
nextUp?: HomeSectionNextUpResolver;
};
export type HomeSectionItemResolver = {
@@ -92,6 +93,13 @@ export type HomeSectionItemResolver = {
filters?: Array<ItemFilter>;
};
export type HomeSectionNextUpResolver = {
parentId?: string;
limit?: number;
enableResumable?: boolean;
enableRewatching?: boolean;
};
export type Settings = {
home?: Home | null;
autoRotate?: boolean;
@@ -191,7 +199,14 @@ const loadSettings = (): Settings => {
}
};
const EXCLUDE_FROM_SAVE = ["home"];
const saveSettings = (settings: Settings) => {
Object.keys(settings).forEach((key) => {
if (EXCLUDE_FROM_SAVE.includes(key)) {
delete settings[key as keyof Settings];
}
});
const jsonValue = JSON.stringify(settings);
storage.set("settings", jsonValue);
};
@@ -223,11 +238,13 @@ export const useSettings = () => {
const refreshStreamyfinPluginSettings = useCallback(async () => {
if (!api) return;
const settings = await api
.getStreamyfinPluginConfig()
.then(({ data }) => data?.settings);
writeInfoLog(`Got remote settings: ${JSON.stringify(settings)}`);
const settings = await api.getStreamyfinPluginConfig().then(
({ data }) => {
writeInfoLog(`Got remote settings`);
return data?.settings;
},
(err) => undefined
);
setPluginSettings(settings);
return settings;
@@ -277,6 +294,7 @@ export const useSettings = () => {
if (Object.keys(unlockedPluginDefaults).length > 0) {
updateSettings(unlockedPluginDefaults);
}
return {
..._settings,
...overrideSettings,