[Feature] Better resolution search (#1568)

* Fix width in database test setup
* Added more filters on resolution field
* added test to verify resolution range is defined for every resolution
* Refactor UI code

Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
This commit is contained in:
Jekora
2021-08-02 05:22:39 +02:00
committed by GitHub
parent 723446842f
commit ede8cca631
11 changed files with 200 additions and 123 deletions

View File

@@ -1,37 +1,20 @@
import { ResolutionEnum } from "src/core/generated-graphql";
import {
ResolutionCriterionInput,
CriterionModifier,
} from "src/core/generated-graphql";
import { stringToResolution, resolutionStrings } from "src/utils/resolution";
import { CriterionType } from "../types";
import { CriterionOption, StringCriterion } from "./criterion";
abstract class AbstractResolutionCriterion extends StringCriterion {
protected toCriterionInput(): ResolutionEnum | undefined {
switch (this.value) {
case "144p":
return ResolutionEnum.VeryLow;
case "240p":
return ResolutionEnum.Low;
case "360p":
return ResolutionEnum.R360P;
case "480p":
return ResolutionEnum.Standard;
case "540p":
return ResolutionEnum.WebHd;
case "720p":
return ResolutionEnum.StandardHd;
case "1080p":
return ResolutionEnum.FullHd;
case "1440p":
return ResolutionEnum.QuadHd;
case "1920p":
return ResolutionEnum.VrHd;
case "4k":
return ResolutionEnum.FourK;
case "5k":
return ResolutionEnum.FiveK;
case "6k":
return ResolutionEnum.SixK;
case "8k":
return ResolutionEnum.EightK;
// no default
protected toCriterionInput(): ResolutionCriterionInput | undefined {
const value = stringToResolution(this.value);
if (value !== undefined) {
return {
value,
modifier: this.modifier,
};
}
}
}
@@ -42,20 +25,13 @@ class ResolutionCriterionOptionType extends CriterionOption {
messageID: value,
type: value,
parameterName: value,
options: [
"144p",
"240p",
"360p",
"480p",
"540p",
"720p",
"1080p",
"1440p",
"4k",
"5k",
"6k",
"8k",
modifierOptions: [
CriterionModifier.Equals,
CriterionModifier.NotEquals,
CriterionModifier.GreaterThan,
CriterionModifier.LessThan,
],
options: resolutionStrings,
});
}
}