diff --git a/ui/v2.5/src/components/List/Filters/PathFilter.tsx b/ui/v2.5/src/components/List/Filters/PathFilter.tsx index dbf3bebcb..2ac345cc4 100644 --- a/ui/v2.5/src/components/List/Filters/PathFilter.tsx +++ b/ui/v2.5/src/components/List/Filters/PathFilter.tsx @@ -39,6 +39,8 @@ export const PathFilter: React.FC = ({ currentDirectory={criterion.value ? criterion.value.toString() : ""} setCurrentDirectory={(v) => onValueChanged(v)} collapsible + quoteSpaced + hideError defaultDirectories={libraryPaths} /> )} diff --git a/ui/v2.5/src/components/Shared/FolderSelect/FolderSelect.tsx b/ui/v2.5/src/components/Shared/FolderSelect/FolderSelect.tsx index cc89eaeb9..9dfd61f5b 100644 --- a/ui/v2.5/src/components/Shared/FolderSelect/FolderSelect.tsx +++ b/ui/v2.5/src/components/Shared/FolderSelect/FolderSelect.tsx @@ -13,6 +13,8 @@ interface IProps { defaultDirectories?: string[]; appendButton?: JSX.Element; collapsible?: boolean; + quoteSpaced?: boolean; + hideError?: boolean; } export const FolderSelect: React.FC = ({ @@ -21,15 +23,26 @@ export const FolderSelect: React.FC = ({ defaultDirectories, appendButton, collapsible = false, + quoteSpaced = false, + hideError = false, }) => { const [showBrowser, setShowBrowser] = React.useState(false); const [directory, setDirectory] = useState(currentDirectory); - const { data, error, loading } = useDirectory(directory); + + const isQuoted = + quoteSpaced && directory.startsWith('"') && directory.endsWith('"'); + const { data, error, loading } = useDirectory( + isQuoted ? directory.slice(1, -1) : directory + ); + const intl = useIntl(); + const defaultDirectoriesOrEmpty = defaultDirectories ?? []; + const selectableDirectories: string[] = currentDirectory - ? data?.directory.directories ?? defaultDirectories ?? [] - : defaultDirectories ?? []; + ? data?.directory.directories ?? + (error && hideError ? [] : defaultDirectoriesOrEmpty) + : defaultDirectoriesOrEmpty; const debouncedSetDirectory = useDebouncedSetState(setDirectory, 250); @@ -40,6 +53,10 @@ export const FolderSelect: React.FC = ({ }, [currentDirectory, directory, debouncedSetDirectory]); function setInstant(value: string) { + if (quoteSpaced && value.includes(" ")) { + value = `"${value}"`; + } + setCurrentDirectory(value); setDirectory(value); } @@ -95,13 +112,13 @@ export const FolderSelect: React.FC = ({ {loading ? ( - ) : ( + ) : !hideError ? ( - )} + ) : undefined} ) : undefined} - {error !== undefined && ( + {!hideError && error !== undefined && (
Error: {error.message}
)}