aboutsummaryrefslogtreecommitdiff
path: root/packages/web-util/src/forms/InputLine.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/web-util/src/forms/InputLine.tsx')
-rw-r--r--packages/web-util/src/forms/InputLine.tsx31
1 files changed, 15 insertions, 16 deletions
diff --git a/packages/web-util/src/forms/InputLine.tsx b/packages/web-util/src/forms/InputLine.tsx
index c7f69dd8a..ee9150492 100644
--- a/packages/web-util/src/forms/InputLine.tsx
+++ b/packages/web-util/src/forms/InputLine.tsx
@@ -1,9 +1,8 @@
import { TranslatedString } from "@gnu-taler/taler-util";
import { ComponentChildren, Fragment, VNode, h } from "preact";
-import { useEffect, useState } from "preact/hooks";
import { UIFormProps } from "./FormProvider.js";
-import { useField } from "./useField.js";
import { noHandlerPropsAndNoContextForField } from "./InputArray.js";
+import { useField } from "./useField.js";
//@ts-ignore
const TooltipIcon = (
@@ -163,20 +162,20 @@ export function InputLine<T extends object, K extends keyof T>(
const { name, placeholder, before, after, converter, type } = props;
//FIXME: remove deprecated
const fieldCtx = useField<T, K>(props.name);
- const { value, onChange, state } =
+ const { value, onChange, state, error } =
props.handler ?? fieldCtx ?? noHandlerPropsAndNoContextForField(props.name);
- const [text, setText] = useState("");
+ // const [text, setText] = useState("");
const fromString: (s: string) => any =
converter?.fromStringUI ?? defaultFromString;
const toString: (s: any) => string = converter?.toStringUI ?? defaultToString;
- useEffect(() => {
- const newValue = toString(value);
- if (newValue) {
- setText(newValue);
- }
- }, [value]);
+ // useEffect(() => {
+ // const newValue = toString(value);
+ // if (newValue) {
+ // setText(newValue);
+ // }
+ // }, [value]);
if (state.hidden) return <div />;
@@ -214,7 +213,7 @@ export function InputLine<T extends object, K extends keyof T>(
}
}
}
- const showError = value !== undefined && state.error;
+ const showError = value !== undefined && error;
if (showError) {
clazz +=
" text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500";
@@ -229,7 +228,7 @@ export function InputLine<T extends object, K extends keyof T>(
{...props}
help={props.help ?? state.help}
disabled={state.disabled ?? false}
- error={showError ? state.error : undefined}
+ error={showError ? error : undefined}
>
<textarea
rows={4}
@@ -254,18 +253,18 @@ export function InputLine<T extends object, K extends keyof T>(
{...props}
help={props.help ?? state.help}
disabled={state.disabled ?? false}
- error={showError ? state.error : undefined}
+ error={showError ? error : undefined}
>
<input
name={String(name)}
type={type}
onChange={(e) => {
- setText(e.currentTarget.value);
+ onChange(e.currentTarget.value as any);
}}
placeholder={placeholder ? placeholder : undefined}
- value={text}
+ value={value as string}
onBlur={() => {
- onChange(fromString(text));
+ onChange(fromString(value as any));
}}
// defaultValue={toString(value)}
disabled={state.disabled}