mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-09-26 23:28:59 +03:00
* update date-fns, i18next, react-dropzone, react-markdown and @types/node react-i18next 17 peers `i18next >= 26.2.0`, so the two move together. react-day-picker already depends on date-fns 4, so date-fns now dedupes to a single copy. react-dropzone 20 declares `node >=22` in `engines`, but npm only warns on Node 20 and nothing in the build needs Node 22. * update js-yaml, @hookform/resolvers and prettier js-yaml 5 has no default export, so `DictAsYamlField` imports `dump`, `load` and `YAMLException` by name. @hookform/resolvers 5 types `zodResolver` with the schema's input and output types separately, and fields with defaults are optional on input, so the zone and classification model forms pass both types to `useForm`. zod's range now starts at 3.25, which resolvers 5 requires. * format with prettier 3.9
35 lines
977 B
TypeScript
35 lines
977 B
TypeScript
import type { FormValidation } from "@rjsf/utils";
|
|
import type { TFunction } from "i18next";
|
|
import { isJsonObject } from "@/lib/utils";
|
|
import type { JsonObject } from "@/types/configForm";
|
|
|
|
export function validateDetectDimensions(
|
|
formData: unknown,
|
|
errors: FormValidation,
|
|
t: TFunction,
|
|
): FormValidation {
|
|
if (!isJsonObject(formData as JsonObject)) {
|
|
return errors;
|
|
}
|
|
|
|
const data = formData as JsonObject;
|
|
const width = data.width;
|
|
const height = data.height;
|
|
|
|
const widthErrors = errors.width as
|
|
{ addError?: (message: string) => void } | undefined;
|
|
const heightErrors = errors.height as
|
|
{ addError?: (message: string) => void } | undefined;
|
|
|
|
const message = t("detect.dimensionMustBeEven", { ns: "config/validation" });
|
|
|
|
if (typeof width === "number" && width % 2 !== 0) {
|
|
widthErrors?.addError?.(message);
|
|
}
|
|
if (typeof height === "number" && height % 2 !== 0) {
|
|
heightErrors?.addError?.(message);
|
|
}
|
|
|
|
return errors;
|
|
}
|