@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
59 lines • 1.64 kB
JavaScript
import React, { useMemo } from 'react';
import StringField from "../String/index.js";
import useTranslation from "../../hooks/useTranslation.js";
function Address(props) {
const {
element: Element = StringField,
...rest
} = props;
if (Element === StringField) {
Object.assign(rest, {
autoComplete: 'street-address',
inputMode: 'text',
trim: true,
...rest
});
}
return React.createElement(Element, rest);
}
Address._supportsSpacingProps = true;
Address.Postal = function PostalAddress(props) {
const {
label,
errorRequired,
errorPattern
} = useTranslation().PostalAddress;
const errorMessages = useMemo(() => ({
'Field.errorRequired': errorRequired,
'Field.errorPattern': errorPattern,
...props.errorMessages
}), [errorPattern, errorRequired, props.errorMessages]);
const postalAddressProps = {
label,
errorMessages,
...props
};
return React.createElement(Address, postalAddressProps);
};
Address.Postal['_supportsSpacingProps'] = true;
Address.Street = function StreetAddress(props) {
const {
label,
errorRequired,
errorPattern
} = useTranslation().StreetAddress;
const errorMessages = useMemo(() => ({
'Field.errorRequired': errorRequired,
'Field.errorPattern': errorPattern,
...props.errorMessages
}), [errorPattern, errorRequired, props.errorMessages]);
const streetAddressProps = {
label,
errorMessages,
...props
};
return React.createElement(Address, streetAddressProps);
};
Address.Street['_supportsSpacingProps'] = true;
export default Address;
//# sourceMappingURL=Address.js.map