From 8ce4bceea75358365f21fa481c78fdfd5a9be3a1 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 17 May 2022 09:05:23 -0400 Subject: [PATCH] fix type errors Signed-off-by: Sebastian Malton --- src/renderer/components/input/input.tsx | 24 +++++++++++++------ .../components/input/input_validators.ts | 2 +- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/renderer/components/input/input.tsx b/src/renderer/components/input/input.tsx index 9514e796e3..0c8014150f 100644 --- a/src/renderer/components/input/input.tsx +++ b/src/renderer/components/input/input.tsx @@ -12,15 +12,25 @@ import { Icon } from "../icon"; import type { TooltipProps } from "../tooltip"; import { Tooltip } from "../tooltip"; import * as Validators from "./input_validators"; -import type { InputValidator } from "./input_validators"; +import type { InputValidator, InputValidation, InputValidationResult, SyncValidationMessageBuilder } from "./input_validators"; import isFunction from "lodash/isFunction"; import uniqueId from "lodash/uniqueId"; import { debounce } from "lodash"; -const { conditionalValidators, ...InputValidators } = Validators; +const { conditionalValidators, AsyncInputValidationError, asyncInputValidator, inputValidator, ...InputValidators } = Validators; -export { InputValidators }; -export type { InputValidator }; +export { + InputValidators, + AsyncInputValidationError, + asyncInputValidator, + inputValidator, +}; +export type { + InputValidator, + InputValidation, + InputValidationResult, + SyncValidationMessageBuilder, +}; type InputElement = HTMLInputElement | HTMLTextAreaElement; type InputElementProps = @@ -78,7 +88,7 @@ const defaultProps: Partial = { blurOnEnter: true, }; -function isAsyncValidator(validator: InputValidator): validator is InputValidator { +function isAsyncValidator(validator: InputValidator): validator is InputValidator { return typeof validator.debounce === "number"; } @@ -86,7 +96,7 @@ export class Input extends React.Component { static defaultProps = defaultProps as object; public input: InputElement | null = null; - public validators: InputValidator[] = []; + public validators: InputValidator[] = []; public state: State = { focused: false, @@ -218,7 +228,7 @@ export class Input extends React.Component { }); } - private getValidatorError(value: string, { message }: InputValidator) { + private getValidatorError(value: string, { message }: InputValidator) { if (isFunction(message)) return message(value, this.props); return message || ""; diff --git a/src/renderer/components/input/input_validators.ts b/src/renderer/components/input/input_validators.ts index 59e550b803..a9c03b6866 100644 --- a/src/renderer/components/input/input_validators.ts +++ b/src/renderer/components/input/input_validators.ts @@ -28,7 +28,7 @@ export type SyncValidationMessageBuilder = ( : (value: string, props?: InputProps) => ReactNode ); -export type InputValidator = { +export type InputValidator = { /** * Filters itself based on the input props */