@hhgtech/hhg-components
Version:
Hello Health Group common components
94 lines (87 loc) • 6.67 kB
JavaScript
import { _ as __rest } from './tslib.es6-ea4dfe68.js';
import React__default, { createContext, useContext } from 'react';
import { useMantineTheme } from '@mantine/core';
import { useForm, isNotEmpty } from '@mantine/form';
import './index-5d405c0d.js';
import { D as DatePicker } from './index-afb403a9.js';
import './index-9f5659e8.js';
import './index-c68a0fa7.js';
import './index.styles-770020ac.js';
import { u as useTranslations } from './index-9d21b711.js';
import '@mantine/hooks';
import './useMantineLocale-0c6bea99.js';
import './index-90813715.js';
import './index-ebe66e27.js';
import './utils-cb7242c7.js';
import './index-5e947517.js';
import './other-4ccb5568.js';
import './index-c2190f6e.js';
import { H as HealthToolFormWrapper } from './index-8a080703.js';
import { G as GenderOptionControl } from './index-f931f6b2.js';
import { CalendarMB } from '@hhgtech/icons/other';
const BabyVaccineFormContext = createContext({});
const DefaultLayout = (_a) => {
var props = __rest(_a, []);
const { t } = useTranslations();
const { currentUrl, submitProps, form } = useContext(BabyVaccineFormContext);
return (React__default.createElement(HealthToolFormWrapper, Object.assign({ formLayout: "default" }, props),
React__default.createElement(GenderOptionControl, Object.assign({ isBaby: true }, form.getInputProps('gender'))),
React__default.createElement(DatePicker, Object.assign({ label: t('babyGrowth.input.birthday'), placeholder: 'DD/MM/YYYY', popoverProps: {
withinPortal: true,
}, maxDate: new Date() }, form.getInputProps('age'))),
React__default.createElement(HealthToolFormWrapper.Submit, Object.assign({ type: "submit", className: "due-date-calculate-button", dataEventCategory: "Health Tool", dataEventAction: "Vaccination Tool", dataEventLabel: currentUrl }, submitProps), t('dueDatePage.lastPeriod.calculate'))));
};
const InlineLayout = (_a) => {
var props = __rest(_a, []);
const { t } = useTranslations();
const { currentUrl, submitProps, form } = useContext(BabyVaccineFormContext);
return (React__default.createElement(HealthToolFormWrapper, Object.assign({ formLayout: "inline" }, props),
React__default.createElement(HealthToolFormWrapper.FormRow, null,
React__default.createElement(HealthToolFormWrapper.BorderInlineControl, { label: t('tools.selectBabyGender'), width: 'none' },
React__default.createElement(GenderOptionControl, Object.assign({ isBaby: true, hideLabel: true, type: "radio" }, form.getInputProps('gender')))),
form.errors.gender && (React__default.createElement(HealthToolFormWrapper.Error, null, form.errors.gender))),
React__default.createElement(HealthToolFormWrapper.FormRow, null,
React__default.createElement(HealthToolFormWrapper.BorderInlineControl, { label: t('babyGrowth.input.birthday') },
React__default.createElement(DatePicker, Object.assign({ placeholder: 'DD/MM/YYYY', popoverProps: {
withinPortal: true,
}, maxDate: new Date() }, form.getInputProps('age'), { error: null }))),
form.errors.age && (React__default.createElement(HealthToolFormWrapper.Error, null, form.errors.age))),
React__default.createElement(HealthToolFormWrapper.Submit, Object.assign({ type: "submit", className: "due-date-calculate-button", dataEventCategory: "Health Tool", dataEventAction: "Vaccination Tool", dataEventLabel: currentUrl }, submitProps), t('dueDatePage.lastPeriod.calculate'))));
};
const MbLayout = (_a) => {
var props = __rest(_a, []);
const { t } = useTranslations();
const { currentUrl, submitProps, form } = useContext(BabyVaccineFormContext);
return (React__default.createElement(HealthToolFormWrapper, Object.assign({ formLayout: "default" }, props),
React__default.createElement(HealthToolFormWrapper.Control, null,
React__default.createElement(GenderOptionControl, Object.assign({ isBaby: true }, form.getInputProps('gender'), { error: null }))),
form.errors.gender && (React__default.createElement(HealthToolFormWrapper.Error, null, form.errors.gender)),
React__default.createElement(HealthToolFormWrapper.FormRow, null,
React__default.createElement(HealthToolFormWrapper.BorderBoxControl, { label: t('babyGrowth.input.birthday'), rightSection: React__default.createElement(CalendarMB, null) },
React__default.createElement(DatePicker, Object.assign({ placeholder: 'DD/MM/YYYY', popoverProps: {
withinPortal: true,
}, maxDate: new Date(), rightSection: null }, form.getInputProps('age'), { error: null }))),
form.errors.age && (React__default.createElement(HealthToolFormWrapper.Error, null, form.errors.age))),
React__default.createElement(HealthToolFormWrapper.Submit, Object.assign({ type: "submit", className: "due-date-calculate-button", dataEventCategory: "Health Tool", dataEventAction: "Vaccination Tool", dataEventLabel: currentUrl }, submitProps), t('dueDatePage.lastPeriod.calculate'))));
};
var OvulationCalculatorType;
(function (OvulationCalculatorType) {
OvulationCalculatorType[OvulationCalculatorType["trackPeriod"] = 0] = "trackPeriod";
OvulationCalculatorType[OvulationCalculatorType["conceive"] = 1] = "conceive";
OvulationCalculatorType[OvulationCalculatorType["avoidPregnancy"] = 2] = "avoidPregnancy";
})(OvulationCalculatorType || (OvulationCalculatorType = {}));
const BabyVaccineForm = (_a) => {
var { formLayout = 'default', submitProps, currentUrl, onSubmit } = _a, props = __rest(_a, ["formLayout", "submitProps", "currentUrl", "onSubmit"]);
const { t } = useTranslations();
const theme = useMantineTheme();
const isMarryBaby = theme.other.template === 'mb';
const form = useForm({
validate: {
gender: isNotEmpty(t('validation.error.requiredField')),
age: isNotEmpty(t('validation.error.requiredField')),
},
});
const commonProps = Object.assign({ onSubmit: form.onSubmit(onSubmit) }, props);
return (React__default.createElement(BabyVaccineFormContext.Provider, { value: { submitProps, currentUrl, form } }, formLayout === 'inline' ? (React__default.createElement(InlineLayout, Object.assign({}, commonProps))) : isMarryBaby ? (React__default.createElement(MbLayout, Object.assign({ formLayout: formLayout }, commonProps))) : (React__default.createElement(DefaultLayout, Object.assign({}, commonProps)))));
};
export { BabyVaccineForm as B };