aboutsummaryrefslogtreecommitdiff
path: root/packages/web-util/src/forms/useField.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/web-util/src/forms/useField.ts')
-rw-r--r--packages/web-util/src/forms/useField.ts30
1 files changed, 15 insertions, 15 deletions
diff --git a/packages/web-util/src/forms/useField.ts b/packages/web-util/src/forms/useField.ts
index eed8cebea..fad53ebac 100644
--- a/packages/web-util/src/forms/useField.ts
+++ b/packages/web-util/src/forms/useField.ts
@@ -8,15 +8,25 @@ export interface InputFieldHandler<Type> {
isDirty: boolean;
}
+/**
+ * @depreacted removing this so we don't depend on context to create a form
+ * @param name
+ * @returns
+ */
export function useField<T extends object, K extends keyof T>(
name: K,
-): InputFieldHandler<T[K]> {
+): InputFieldHandler<T[K]> | undefined {
+ const ctx = useContext(FormContext);
+ if (!ctx) {
+ //no context, can't be used
+ return undefined;
+ }
const {
value: formValue,
computeFormState,
onUpdate: notifyUpdate,
readOnly: readOnlyForm,
- } = useContext(FormContext);
+ } = ctx
type P = typeof name;
type V = T[P];
@@ -24,7 +34,7 @@ export function useField<T extends object, K extends keyof T>(
const fieldValue = readField(formValue.current, String(name)) as V;
// console.log("USE FIELD", String(name), formValue.current, fieldValue);
- const [currentValue, setCurrentValue] = useState<any | undefined>(fieldValue);
+ // const [currentValue, setCurrentValue] = useState<any | undefined>(fieldValue);
const fieldState =
readField<Partial<FieldUIOptions>>(formState, String(name)) ?? {};
@@ -38,7 +48,7 @@ export function useField<T extends object, K extends keyof T>(
};
function onChange(value: V): void {
- setCurrentValue(value);
+ // setCurrentValue(value);
formValue.current = setValueDeeper(
formValue.current,
String(name).split("."),
@@ -52,7 +62,7 @@ export function useField<T extends object, K extends keyof T>(
return {
value: fieldValue,
onChange,
- isDirty: currentValue !== undefined,
+ isDirty: fieldValue !== undefined,
state,
};
}
@@ -67,18 +77,8 @@ export function useField<T extends object, K extends keyof T>(
function readField<T>(
object: any,
name: string,
- debug?: boolean,
): T | undefined {
return name.split(".").reduce((prev, current) => {
- if (debug) {
- console.log(
- "READ",
- name,
- prev,
- current,
- prev ? prev[current] : undefined,
- );
- }
return prev ? prev[current] : undefined;
}, object);
}