"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Form = void 0;
const react_1 = __importDefault(require("react"));
const AppContext_1 = require("../AppContext");
const VisuallyHidden_1 = require("../VisuallyHidden");
const Form_css_1 = __importDefault(require("./Form.css"));
function Form({ onSubmit, children, disabled = false, implicitSubmit = true, }) {
    const t = AppContext_1.useTranslate();
    const implicitSubmitContent = implicitSubmit === false ? null : (<VisuallyHidden_1.VisuallyHidden>
        <button type="submit" disabled={disabled} tabIndex={-1} aria-hidden>
          {typeof implicitSubmit === 'string' ? implicitSubmit : t('submit')}
        </button>
      </VisuallyHidden_1.VisuallyHidden>);
    return (<form action="" method="POST" noValidate onSubmit={(event) => {
        if (disabled)
            return;
        event.preventDefault();
        onSubmit();
    }} className={Form_css_1.default.Form}>
      {children}
      {implicitSubmitContent}
    </form>);
}
exports.Form = Form;
