import React from "react";
import { Icon, LoadingIndicator } from "src/components/Shared";
import { StashSetting } from "./StashConfiguration";
import { SettingSection } from "./SettingSection";
import { BooleanSetting, StringListSetting, StringSetting } from "./Inputs";
import { SettingStateContext } from "./context";
import { useIntl } from "react-intl";
import { faQuestionCircle } from "@fortawesome/free-solid-svg-icons";
export const SettingsLibraryPanel: React.FC = () => {
const intl = useIntl();
const { general, loading, error, saveGeneral, defaults, saveDefaults } =
React.useContext(SettingStateContext);
function commaDelimitedToList(value: string | undefined) {
if (value) {
return value.split(",").map((s) => s.trim());
}
}
function listToCommaDelimited(value: string[] | undefined) {
if (value) {
return value.join(", ");
}
}
if (error) return
{error.message}
;
if (loading) return ;
return (
<>
saveGeneral({ stashes: v })}
/>
saveGeneral({ videoExtensions: commaDelimitedToList(v) })
}
/>
saveGeneral({ imageExtensions: commaDelimitedToList(v) })
}
/>
saveGeneral({ galleryExtensions: commaDelimitedToList(v) })
}
/>
{intl.formatMessage({
id: "config.general.excluded_video_patterns_desc",
})}
}
value={general.excludes ?? undefined}
onChange={(v) => saveGeneral({ excludes: v })}
defaultNewValue="sample\.mp4$"
/>
{intl.formatMessage({
id: "config.general.excluded_image_gallery_patterns_desc",
})}
}
value={general.imageExcludes ?? undefined}
onChange={(v) => saveGeneral({ imageExcludes: v })}
defaultNewValue="sample\.jpg$"
/>
saveGeneral({ createGalleriesFromFolders: v })}
/>
saveGeneral({ writeImageThumbnails: v })}
/>
{
saveDefaults({ deleteFile: v });
}}
/>
{
saveDefaults({ deleteGenerated: v });
}}
/>
>
);
};