@shopgate/engage
Version:
Shopgate's ENGAGE library.
68 lines (67 loc) • 2.24 kB
JavaScript
import * as React from 'react';
import PropTypes from 'prop-types';
import { StoreContext } from "./Store.context";
import { FulfillmentContext } from "../../locations.context";
import { StockInfo } from "../StockInfo";
import { LocationIcon } from "../../../components";
import { i18n } from "../../../core";
import { address as container, addressIcon, stockInfoContainer } from "./Store.style";
/**
* Renders the pickup location's address information.
* @param {Object} props The component props.
* @param {Object} props.address The address object.
* @param {boolean} props.pure Whether to only render the address without any wrapper components.
* @returns {JSX.Element}
*/
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
export function StoreAddress({
address,
pure
}) {
const store = React.useContext(StoreContext);
const {
product
} = React.useContext(FulfillmentContext);
if (!address) {
return null;
}
const addressContent = /*#__PURE__*/_jsxs("div", {
children: [/*#__PURE__*/_jsx("div", {
"data-test-id": "street",
children: address.street
}), address.street2 && address.street2 !== '' && /*#__PURE__*/_jsx("div", {
"data-test-id": "street2",
children: address.street2
}), address.street3 && address.street3 !== '' && /*#__PURE__*/_jsx("div", {
"data-test-id": "street3",
children: address.street3
}), address.street4 && address.street4 !== '' && /*#__PURE__*/_jsx("div", {
"data-test-id": "street4",
children: address.street4
}), i18n.text('locations.address', address)]
});
if (pure) {
return addressContent;
}
return /*#__PURE__*/_jsxs("div", {
className: container,
children: [/*#__PURE__*/_jsx("div", {
className: addressIcon,
"aria-hidden": true,
children: /*#__PURE__*/_jsx(LocationIcon, {})
}), /*#__PURE__*/_jsxs("div", {
children: [addressContent, product && /*#__PURE__*/_jsx("div", {
className: stockInfoContainer,
children: /*#__PURE__*/_jsx(StockInfo, {
location: store,
product: product,
showStoreName: false
})
})]
})]
});
}
StoreAddress.defaultProps = {
address: null,
pure: false
};