Skip to content

Commit

Permalink
Validate required writeback form fields
Browse files Browse the repository at this point in the history
  • Loading branch information
kulyk committed Jun 16, 2022
1 parent 804ee0c commit 05e61d7
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions frontend/src/metabase/writeback/containers/WritebackForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { t } from "ttag";

import Form from "metabase/containers/Form";

import validate from "metabase/lib/validate";
import { TYPE } from "metabase/lib/types";

import Field from "metabase-lib/lib/metadata/Field";
Expand Down Expand Up @@ -56,6 +57,18 @@ function getFieldTypeProps(field: Field) {
return { type: "input" };
}

function getFieldValidationProp(field: Field) {
let validator = validate as any;

if (field.database_required) {
validator = validator.required();
}

return {
validate: validator,
};
}

function WritebackForm({ table, row, onSubmit, ...props }: WritebackFormProps) {
const editableFields = useMemo(() => table.fields.filter(isEditableField), [
table,
Expand All @@ -78,6 +91,7 @@ function WritebackForm({ table, row, onSubmit, ...props }: WritebackFormProps) {
description: field.description,
initial: initialValue,
...getFieldTypeProps(field),
...getFieldValidationProp(field),
};
}),
};
Expand Down

0 comments on commit 05e61d7

Please sign in to comment.