UNPKG

@shopgate/engage

Version:
68 lines (67 loc) 2.24 kB
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 };