@shopgate/engage
Version:
Shopgate's ENGAGE library.
14 lines • 2.64 kB
JavaScript
function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import*as React from'react';import{UIEvents,i18n}from'@shopgate/engage/core';import{SheetList}from'@shopgate/engage/components';import SheetDrawer from"../../../components/SheetDrawer";import{QUICK_RESERVE,MULTI_LINE_RESERVE}from"../../constants";import{sheetDrawer}from"./FulfillmentPathSelector.style";var callback=null;var EVENT_SET_OPEN='FulfillmentPathSelector.setOpen';/**
* @param {Object} props The component props.
* @returns {JSX.Element}
*/function FulfillmentPathSelector(){var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),isOpen=_React$useState2[0],setIsOpen=_React$useState2[1];/**
* Handles opening of the sheet.
*/function handleOpen(){setIsOpen(true);}React.useEffect(function(){UIEvents.addListener(EVENT_SET_OPEN,handleOpen);return function(){UIEvents.removeListener(EVENT_SET_OPEN,handleOpen);};},[]);/**
* @param {string} value The selected value.
*/function handleSelect(value){if(callback!==null){callback(value);}setIsOpen(false);callback=null;}/**
* @param {Object} event The click event.
*/function handleQuickReserve(event){event.preventDefault();handleSelect(QUICK_RESERVE);}/**
* @param {Object} event The click event.
*/function handleReserveToCart(event){event.preventDefault();handleSelect(MULTI_LINE_RESERVE);}/**
* Handles the case when the sheet is closed manually.
*/function handleClose(){if(callback!==null){callback('');}setIsOpen(false);callback=null;}return React.createElement(SheetDrawer,{isOpen:isOpen,title:i18n.text('locations.choose_reservation_type'),className:sheetDrawer,onDidClose:handleClose},React.createElement(SheetList,null,React.createElement(SheetList.Item,{title:i18n.text('locations.quick_reserve'),onClick:handleQuickReserve}),React.createElement(SheetList.Item,{title:i18n.text('locations.reserve_to_cart'),onClick:handleReserveToCart})));}FulfillmentPathSelector.open=function(callbackFn){callback=callbackFn;UIEvents.emit(EVENT_SET_OPEN);};export default FulfillmentPathSelector;