mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 12:54:38 +03:00
Add folder browser to path filter field (#3570)
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
||||
DateCriterion,
|
||||
TimestampCriterion,
|
||||
BooleanCriterion,
|
||||
PathCriterionOption,
|
||||
} from "src/models/list-filter/criteria/criterion";
|
||||
import { useIntl } from "react-intl";
|
||||
import {
|
||||
@@ -36,6 +37,7 @@ import { RatingCriterion } from "../../models/list-filter/criteria/rating";
|
||||
import { RatingFilter } from "./Filters/RatingFilter";
|
||||
import { BooleanFilter } from "./Filters/BooleanFilter";
|
||||
import { OptionsListFilter } from "./Filters/OptionsListFilter";
|
||||
import { PathFilter } from "./Filters/PathFilter";
|
||||
|
||||
interface IGenericCriterionEditor {
|
||||
criterion: Criterion<CriterionValue>;
|
||||
@@ -137,6 +139,11 @@ const GenericCriterionEditor: React.FC<IGenericCriterionEditor> = ({
|
||||
// <OptionsFilter criterion={criterion} onValueChanged={onValueChanged} />
|
||||
// );
|
||||
}
|
||||
if (criterion.criterionOption instanceof PathCriterionOption) {
|
||||
return (
|
||||
<PathFilter criterion={criterion} onValueChanged={onValueChanged} />
|
||||
);
|
||||
}
|
||||
if (criterion instanceof DurationCriterion) {
|
||||
return (
|
||||
<DurationFilter criterion={criterion} onValueChanged={onValueChanged} />
|
||||
|
||||
32
ui/v2.5/src/components/List/Filters/PathFilter.tsx
Normal file
32
ui/v2.5/src/components/List/Filters/PathFilter.tsx
Normal file
@@ -0,0 +1,32 @@
|
||||
import React from "react";
|
||||
import { Form } from "react-bootstrap";
|
||||
import { FolderSelect } from "src/components/Shared/FolderSelect/FolderSelect";
|
||||
import { ConfigurationContext } from "src/hooks/Config";
|
||||
import {
|
||||
Criterion,
|
||||
CriterionValue,
|
||||
} from "../../../models/list-filter/criteria/criterion";
|
||||
|
||||
interface IInputFilterProps {
|
||||
criterion: Criterion<CriterionValue>;
|
||||
onValueChanged: (value: string) => void;
|
||||
}
|
||||
|
||||
export const PathFilter: React.FC<IInputFilterProps> = ({
|
||||
criterion,
|
||||
onValueChanged,
|
||||
}) => {
|
||||
const { configuration } = React.useContext(ConfigurationContext);
|
||||
const libraryPaths = configuration?.general.stashes.map((s) => s.path);
|
||||
|
||||
return (
|
||||
<Form.Group>
|
||||
<FolderSelect
|
||||
currentDirectory={criterion.value ? criterion.value.toString() : ""}
|
||||
setCurrentDirectory={(v) => onValueChanged(v)}
|
||||
collapsible
|
||||
defaultDirectories={libraryPaths}
|
||||
/>
|
||||
</Form.Group>
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user