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 }); }} /> ); };