UI filter refactor (#1406)

* Refactor Criterion
* Separate filter options from filter
* Rename utils to factory
* Sort sort by options by alphabetical
* Refactor criterion options
* Simplify list filter options
* Refactor i8n
* Simplify ILabeledIdCriterion
This commit is contained in:
WithoutPants
2021-05-31 13:46:21 +10:00
committed by GitHub
parent c5fed1bbdc
commit 3e81d45ae9
51 changed files with 1330 additions and 1963 deletions

View File

@@ -22,7 +22,6 @@ import { ScenePlayer } from "src/components/ScenePlayer";
import { TextUtils, JWUtils } from "src/utils";
import Mousetrap from "mousetrap";
import { ListFilterModel } from "src/models/list-filter/filter";
import { FilterMode } from "src/models/list-filter/types";
import { SceneQueue } from "src/models/sceneQueue";
import { QueueViewer } from "./QueueViewer";
import { SceneMarkersPanel } from "./SceneMarkersPanel";
@@ -220,10 +219,7 @@ export const Scene: React.FC = () => {
return;
}
const filterCopy = Object.assign(
new ListFilterModel(FilterMode.Scenes),
sceneQueue.query
);
const filterCopy = Object.assign(new ListFilterModel(), sceneQueue.query);
const newStart = queueStart - filterCopy.itemsPerPage;
filterCopy.currentPage = Math.ceil(newStart / filterCopy.itemsPerPage);
const query = await queryFindScenes(filterCopy);
@@ -244,10 +240,7 @@ export const Scene: React.FC = () => {
return;
}
const filterCopy = Object.assign(
new ListFilterModel(FilterMode.Scenes),
sceneQueue.query
);
const filterCopy = Object.assign(new ListFilterModel(), sceneQueue.query);
const newStart = queueStart + queueScenes.length;
filterCopy.currentPage = Math.ceil(newStart / filterCopy.itemsPerPage);
const query = await queryFindScenes(filterCopy);
@@ -284,10 +277,7 @@ export const Scene: React.FC = () => {
const pages = Math.ceil(queueTotal / query.itemsPerPage);
const page = Math.floor(Math.random() * pages) + 1;
const index = Math.floor(Math.random() * query.itemsPerPage);
const filterCopy = Object.assign(
new ListFilterModel(FilterMode.Scenes),
sceneQueue.query
);
const filterCopy = Object.assign(new ListFilterModel(), sceneQueue.query);
filterCopy.currentPage = page;
const queryResults = await queryFindScenes(filterCopy);
if (queryResults.data.findScenes.scenes.length > index) {