{"version":3,"sources":["assets/images/shape.png","assets/images/ERROR.png","assets/images/logo_icon.png","assets/images/mgmLogo.png","styles/global.js","pages/OrderError/styles.js","pages/OrderError/index.js","WebsocketManager.js","services/api.js","context/auth/index.js","routes/Route.js","components/Input/styles.js","components/Input/index.js","assets/images/iconTake.svg","pages/Login/styles.js","services/getValidationErrors.js","pages/Login/index.js","components/ScrollToTop/index.js","pages/Menu/ProductDetails/styles.js","pages/Menu/ProductDetails/index.js","context/order/index.js","context/cart/index.js","context/menu/index.js","utils/formatValue.js","pages/Menu/styles.js","pages/Product/styles.js","pages/Product/index.js","pages/CloseAccount/styles.js","pages/TableAccount/styles.js","utils/formatTime.js","components/CancelationComponent/styles.js","components/CancelationComponent/ConfirmCancelation/styles.js","components/CancelationComponent/ConfirmCancelation/index.js","components/ModalComponent/styles.js","components/ModalComponent/index.js","components/CancelationComponent/index.js","components/ProductItemTableAccount/index.js","pages/TableAccount/index.js","context/PeopleAtTableContext/index.js","pages/CloseAccount/index.js","pages/Menu/index.js","pages/Cart/styles.js","pages/Cart/MenuItemList/styles.js","components/TextArea/styles.js","components/TextArea/index.js","pages/Cart/MenuItemList/index.js","components/BuyersScrollNav/styles.js","components/BuyersScrollNav/index.js","pages/Cart/index.js","pages/ConfirmOrder/styles.js","pages/ConfirmOrder/index.js","components/Table/styles.js","components/Table/index.js","components/Footer/styles.js","context/ordersContext/index.js","components/Footer/index.js","pages/RestaurantTables/styles.js","context/tablesContext/index.js","components/ModalMGM/styles.js","components/ModalMGM/index.js","pages/RestaurantTables/index.js","pages/OrdersPending/OrderPendingItem/styles.js","pages/OrdersPending/OrderPendingItem/index.js","pages/OrdersPending/styles.js","pages/OrdersPending/index.js","pages/OrdersClosed/OrderClosedItem/styles.js","pages/OrdersClosed/OrderClosedItem/index.js","pages/OrdersClosed/styles.js","pages/OrdersClosed/index.js","pages/PaymentsPix/PaymentsPixItem/styles.js","services/formatCompleteDate.js","pages/PaymentsPix/PaymentsPixItem/index.js","pages/PaymentsPix/styles.js","pages/PaymentsPix/PaymentsPosItem/styles.js","pages/PaymentsPix/PaymentsPosItem/index.js","pages/PaymentsPix/index.js","pages/WaiterTickets/WaiterTicketsItem/styles.js","pages/WaiterTickets/WaiterTicketsItem/index.js","pages/WaiterTickets/styles.js","context/waiterTicketContext/index.js","pages/WaiterTickets/index.js","pages/WaitingPayment/styles.js","pages/WaitingPayment/index.js","context/posContext/index.js","routes/index.js","App.js","index.js","assets/images/noImage.png"],"names":["module","exports","createGlobalStyle","Container","styled","div","props","error","toString","css","Content","Footer","OrderError","errorMessage","errorAction","setErrorComponent","useAuth","src","errorImage","alt","type","onClick","WebsocketManager","token","this","messageCallbacks","Map","wss_url","process","replace","socket","socketConnect","io","reconnectionDelayMax","transports","query","on","message","onMessage","JSON","parse","console","warn","data","values","cb","id","callback","set","close","api","axios","create","baseURL","AuthContext","createContext","AuthProvider","children","history","useHistory","useState","websocketManager","setWebsocketManager","errorComponent","setErrorMessage","setErrorAction","tokenStorage","localStorage","getItem","defaults","headers","Authorization","userToken","setUserToken","sessionKeyStorage","sessionKey","setSessionKey","stoneDeviceStorage","stoneDevice","setStoneDevice","restaurantIdStorage","restaurantId","setRestaurantId","restaurantNameStorage","restaurantName","setRestaurantName","restaurantHasStone","setRestaurantHasStone","restaurantFantasyNameStorage","restaurantFantasyName","setRestaurantFantasyName","restaurantAvatarStorage","restaurantAvatar","setRestaurantAvatar","restaurantWithWaiterCloseBillStorage","restaurantWithWaiterCloseBill","setRestaurantWithWaiterCloseBill","tableNumberStorage","tableNumber","setTableNumber","tableKeyStorage","tableKey","setTableKey","tableStatusStorage","tableStatus","setTableStatus","basketIdStorage","basketId","setBasketId","tableIdStorage","tableId","setTableId","restaurantServiceTaxStorage","restaurantServiceTax","setRestaurantServiceTax","serviceTaxValueStorage","serviceTaxValue","setServiceTaxValue","isBalconyStorage","isBalcony","setIsBalcony","isPosStorage","isPos","setIsPos","isStoneTransactionStorage","stoneTransactionId","setStoneTransactionId","restaurantHasPixStorage","restaurantHasPix","setRestaurantHasPix","restaurantUseCommandStorage","restaurantUseCommand","setRestaurantUseCommand","buyerCreatedByWaiterStorage","buyerCreatedByWaiter","setBuyerCreatedByWaiter","buyerSelectedByWaiterStorage","buyerSelectedByWaiter","setBuyerSelectedByWaiter","buyersCreatedByWaiterStorage","buyersCreatedByWaiter","setBuyersCreatedByWaiter","waiterStorage","waiter","setWaiter","useEffect","setItem","stringify","manager","addMessageCallback","log","setRestaurant","useCallback","name","fantasy_name","avatar","service_tax","has_pix","has_stone_pos","waiters_can_close_sessions","command","service_tax_value","waiterLogout","removeItem","setTable","number","key","waiterLogin","a","emailTrim","email","trim","post","password","response","user","restaurant","table_type","url","has_service_tax","phone","stone_device","getRerstaurantInfo","get","getPos","balconyLogin","lastOrder","closeCart","order","table_id","Number","channel","res","orderBasket","basket_id","push","ok","alert","errorType","products","payload","map","item","window","location","reload","posLogin","transaction_id","tableLogin","command_table_number","buyer_id","updatedBasket","buyer","buyers","filter","b","Provider","value","context","useContext","Route","isPrivate","Component","component","rest","render","to","pathname","InputContainer","Error","Input","label","maxlength","inputRef","useRef","useField","fieldName","registerField","defaultValue","ref","current","path","htmlFor","_extends","Object","assign","target","i","arguments","length","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","createElement","className","d","transform","_ref","svgRef","title","viewBox","undefined","ForwardRef","forwardRef","Title","Logo","LogoImg","StyledForm","Form","InputArea","FiEyeStyled","FiEye","getValidationErrors","err","validationErrors","inner","forEach","Login","formRef","setErrors","schema","Yup","shape","required","validate","abortEarly","errors","onSubmit","style","color","placeholder","document","querySelector","getAttribute","setAttribute","ScrollToTop","useLocation","scrollTo","footer","ProductName","h1","ImageProduct","button","DescriptionProduct","ProductDetails","product","closeProductModal","image","url_thumb","description","OrderContext","OrderProvider","orderStorage","orders","setOrders","addToOrder","cart","uuid","addToOrderBalcony","addToOrderPos","closeOrder","useMemo","CartContext","CartProvider","useOrder","cartStorage","setCart","addCartToOrder","addCartToOrderBalcony","addCartToOrderPos","increment","orderingId","newCart","findCart","findIndex","ordering_system_id","amount","intern_id","decrement","addToCart","basket","complementsCategory","isProductWeight","productExist","complement_categories","observation","v4","price","use_weight","weight","inputProductWeight","is_unitary","removeFromCart","cartFiltered","addObservation","useCart","MenuContext","MenuProvider","menuProducts","setMenuProducts","productsFiltered","setProductsFiltered","menuStorage","menu","setMenu","getMenu","handleSearchInputProduct","cat","available","prod","productFind","toLowerCase","normalize","includes","e","interval","setInterval","clearInterval","formatValue","Intl","NumberFormat","currency","format","HeaderAction","ButtonDetails","ButtonOutline","MenuContent","scrolling","MenuItemBody","li","ProductsArea","AddToCart","isProductSelected","ProductInfo","ProductImage","ProductPrice","span","ButtonGoToCart","MenuItemHeader","NotificationBadge","ButtonAction","disable","ModalTitle","p","ModalFooter","ConfirmButton","SearchBar","form","ButtonSearchInput","ButtonDeleteInput","ModalStyled","Modal","CloseButton","AddItemsProduct","EditAction","EditActionButtons","ComplementsHeaderProduct","ComplementItem","ComplementItemDescription","ComplementItemAmount","InformationText","QuestionSubtitle","Product","closeFullProductModal","countProducts","tableType","setObservation","setAmount","modalPhrase","setModalPhrase","modalAction","setComplementsCategory","mandatoryComplements","setMandatoryComplements","setInputProductWeight","modalIsOpen","setIsOpen","complementsFiltered","setComplementsFiltered","adcFilter","newFilter","nome","find","filtro","novoFiltro","inputComplementRef","openModal","phrase","handleAddComplements","delivery_price","limit","categoryLimit","categoryId","categoryAdditional","categoryMoreExpensiveOnly","minimum","useAverage","categoryFind","category","complementFind","complements","checkAmount","newCategoryExist","categoryExist","categoryTotalAmount","reduce","acum","curr","complementExist","complement","additional","more_expensive_only","use_average","handleRemoveComplements","complementId","categoryExistId","filteredComplements","mandatoryPDV","compl","optional","complementMoreExpensive","local_price","parseFloat","parseInt","totalComplementsPrice","complementCat","amountAverage","accum","totalPriceAverage","totalCategoryComplementsAmount","check","deleteCheckAmount","isOpen","toggle","size","onChange","handleChangeProductWeight","height","width","display","alignItems","justifyContent","categ","Fragment","question","getElementById","deleteValue","marginTop","comp","filterFound","ft","fotoPadrao","borderRadius","fontSize","fontWeight","fontFamily","filtered","handleAddObservation","maxLength","sold_off","checkedMandatoryComplements","hasMinimum","minimumCheck","complementsAmountSum","every","Nav","nav","RouterDomLink","Link","shade","NumberFormatStyled","PeopleArea","MenuItem","ButtonsArea","CancelButton","ClosingButton","Orders","ServiceTax","PriceTextArea","PriceTotalText","PriceText","formatTime","date","parseISO","locale","pt","Wrapper","TextRegular","TextSemiBold","ButtonsContainer","DropdownContainer","select","input","TextMedium","ButtonContainer","Button","disabled","ConfirmText","ConfirmCancelComponent","setModalVisible","order_id","order_basket_id","new_amount","setCancelationModalVisible","fetchData","confirmDisabled","setConfirmDisabled","setPassword","justification","setJustification","orderBasketAmount","setOrderBasketAmount","then","catch","confirmCancel","put","order_cancel_password","cancel_reason","from_gm","finally","delete","Overlay","ModalWrapper","Header","ModalComponent","modalVisible","overlayRef","overlayTouchable","event","CancelationComponent","amountArray","setAmountArray","amountValue","setAmountValue","confirmCancelModal","setConfirmCancelModal","amountArr","margin","flexDirection","gap","flex","ProductItemTableAccount","bill","cancelationModalVisible","marginBottom","status","start_time","total_price","background","border","TableAccount","totalTable","tablePayments","setTotalPayments","customStyles","content","maxWidth","top","left","right","bottom","marginRight","isModalCloseAccountOpened","setIsModalCloseAccountOpened","toggleCloseAccountModal","openModalPrintMessage","params","session_key","total_value","getTableData","totalPrice","totalPriceTax","total_service_price","arrayCollapse","setArrayCollapse","collapseId","prevArray","index","newArray","splice","modalPrintMessageOpen","setModalPrintMessageOpen","modalPrintMessage","setModalPrintMessage","toggleModalPrintMessage","table_session_id","onRequestClose","contentLabel","table","bills","order_baskets","PeopleAtTableContext","PeopleAtTableProvider","setTotalTable","peopleAtTable","setPeopleAtTable","updatePeopleAtTable","people","getPeopleAtTable","dataTable","people_at_table","usePeopleAtTable","currencyFormatter","CloseAccount","oldPeopleAtTable","setOldPeopleAtTable","inputChanged","setInputChanged","icon","buttonColor","pointerEvents","onValueChange","onFocus","onBlur","Menu","setAppElement","modalProductIsOpen","setModalProductIsOpen","modalFullProductIsOpen","setModalFullProductIsOpen","useMenu","itemProduct","setItemProduct","cartAmount","minimumComplementValue","complementHasPrice","cp","sort","getCategoryImage","prd","Shape","openProductModal","price_promotion","productState","setProductState","toggleModalProduct","handleSelectProduct","openFullProductModal","productFormatted","productsHasCounted","setProductsHasCounted","state","position","zIndex","padding","onClosed","count","pr","effect","Effect","SCALE","paddingTop","noImage","allowZeroExpanded","elementPosition","offsetTop","behavior","handleScroll","backgroundImage","backgroundSize","backgroundPosition","preparation_time","logo_icon","serial_number","ItemListHeader","MenuItemImage","MenuItemDescription","MenuItemComplements","MenuItemQuantity","TextareaContainer","TextArea","MenuItemList","modalObservation","setIsModalObservation","toggleModalOservation","closeModal","items","CategoryThumbnailLink","alan","buttonAdd","CategoryList","BuyersScrollNav","createBuyer","newBuyer","selectedItem","setSelectedItem","handleSelectItem","toUpperCase","substring","Cart","setBuyers","makingOrder","setMakingOrder","commandTableNumber","setCommandTableNumber","isModalCreateBuyerOpened","setIsModalCreateBuyerOpened","setNewBuyer","requireTableNumber","setRequireTableNumber","toggleModalCreateBuyer","require_table_number","totalProductPrice","TotalAccumulator","totalCategories","categoryAccumulator","totalComplements","complementAccumulator","handleMakeAOrderPos","goBack","min","matches","excludeEmptyString","toggleModalErrorCommand","newBuyers","isModalErrorCommandOpened","setIsModalErrorCommandOpened","duration","text","overlay","backgroundColor","ModalBody","mask","maskChar","handleChangeCommandTableNumber","Message","ConfirmOrder","Table","OrdersPendingBadge","ButtonOption","OrdersContext","OrdersProvider","ordersPendingStorage","ordersPending","setOrdersPending","ordersAcceptedStorage","ordersAccepted","setOrdersAccepted","getOrders","waiter_checked","checkItem","orderFind","uncheckItem","orderAcceptedFind","order_status","useOrders","setOrdersCount","setPath","header","Tables","ul","TablesContext","TablesProvider","tablesAvailable","setTablesAvailable","tablesOccupied","setTablesOccupied","closingTables","setClosingTables","allTables","setAllTables","balcony","setBalcony","posTable","setPosTable","tables","open_sessions","closing_sessions","balconyTables","tablesFiltered","StyledModal","theme","colors","primary","default","spacing","xs","ModalMGM","useTheme","startDate","Date","endDate","addDays","timeToShowAgain","clickedLink","now","isBetweenDates","isAfter","canShowAgain","shouldShowModal","modalOpen","setModalOpen","updateTimeToShowAgain","addHours","open","fill","neutral","dark","mgmLogo","customColor","green","RestaurantTables","footerRef","tablesFilteredSearch","setTablesFilteredSearch","stonePendingTransaction","setStonePendingTransaction","modalStonePending","setModalStonePending","toggleModalStonePending","useTables","handleNavigate","table_number","table_status","table_session","loadingStoneCancel","setLoadingStoneCancel","cancelStonePending","tableFind","startsWith","tableOccpuiedFind","toast","handleNavigateFiltered","borderTop","payments","payment_value","toFixed","Row","Col","ModalDescription","MenuItemTableNumber","MenuItemBuyer","MenuItemCheck","MenuItemOrderTime","ItemComplements","ItemComplementsQuestion","ItemComplementsName","ItemOrderId","ItemBuyer","OrderPendingItem","session","start_item","complement_category","order_complements","cabecalhoHeight","SelectArea","OrdersPending","setOrderOwner","getMenuFilteredWaiters","getMenuFilteredClients","setCabecalhoHeight","cabecalhoElemento","offsetHeight","paddingLeft","options","OrderClosedItem","OrdersClosed","clientHeight","ItemList","Client","Value","Paid","Action","formatCompleteDate","PaymentsPixItem","pix","pixes","setPixes","getPixCount","checkPik","pixFound","checked","newPixes","total","payed_at","ItemHeader","PaymentsPosItem","transaction","getPaymentsPos","isFirst","loadingPrint","setLoadingPrint","cancelPayment","confirm","resendPrint","getStatus","createdAt","PaymentsPix","posPayments","setPosPayments","getPixesCount","getPaymentsPix","float","marginLeft","pay","WaiterTicketsItem","ticket","isModalCommentOpen","setIsModalcommentOpen","toggleOpenComment","checkTickets","comment","created_at","cursor","WaiterTicketContext","WaiterTicketProvider","isModalNewWaiterTicketOpened","setIsModalNewWaiterTicketOpened","waiterTicketsStorage","waiterTickets","setWaiterTickets","toggleModalWaiterTicket","getTickets","waiterTicket","ticketFound","WaiterTickets","useWaiterTickets","ModalContent","WaitingPayment","loading","setLoading","printText","setPrintText","validatePayment","paid","toggleModalNotPaid","modal","setModal","toggleModal","modalNotPaid","setModalNotPaid","handleCancel","textAlign","PosContext","PosProvider","Routes","exact","App","ReactDOM","StrictMode"],"mappings":"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","file":"static/js/main.ed29f760.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/ERROR.91402550.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/mgmLogo.c63e4f21.png\";","import { createGlobalStyle } from 'styled-components';\n\nexport default createGlobalStyle`\n\n * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n outline: 0;\n }\n\n body {\n background: #fff;\n color: #333;\n -webkit-font-smoothing: antialiased;\n font-family: 'Poppins', sans-serif;\n }\n\n#root{\n height: 100vh;\n}\n\n body, input, button {\n font-family: 'Poppins', sans-serif;\n font-size: 16px;\n }\n\n h1, h2, h3, h4, h5, h6, strong {\n font-weight: 500;\n }\n\n button{\n cursor: pointer;\n }\n\n .btn-primary {\n width: 100%;\n max-width: 414px;\n height: 48px;\n background: linear-gradient(144deg, rgba(251,74,32,1) 28%, rgba(250,5,97,1) 100%);\n color: #fff;\n border-radius: 7px;\n border: none;\n }\n\n .btn-secondary {\n width: 100%;\n max-width: 414px;\n height: 48px;\n color: #fb4a20;\n background: transparent;\n border-radius: 7px;\n border: 1px solid #fb4a20;\n margin-top: 10px;\n }\n`;\n","import styled, { css } from 'styled-components';\n\nexport const Container = styled.div`\n margin: 0 auto;\n background: #fff;\n z-index: 1000;\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n ${props =>\n props.error.toString() === 'false' &&\n css`\n display: none;\n `}\n`;\n\nexport const Content = styled.div`\n width: 100vw;\n\n height: 100vh;\n display: flex;\n padding-bottom: 48px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n img {\n width: 200px;\n }\n\n h1 {\n margin-top: 16px;\n font-size: 20px;\n }\n\n p {\n text-align: center;\n margin-top: 8px;\n padding-right: 10px;\n padding-left: 10px;\n max-width: 414px;\n\n span {\n font-size: 18px;\n font-weight: bold;\n }\n }\n`;\n\nexport const Footer = styled.div`\n width: 100%;\n max-width: 410px;\n position: fixed;\n bottom: 0;\n\n button {\n width: 100%;\n max-width: 414px;\n height: 48px;\n background: linear-gradient(\n 144deg,\n rgba(251, 74, 32, 1) 28%,\n rgba(250, 5, 97, 1) 100%\n );\n color: #fff;\n border-radius: 7px 7px 0 0;\n border: none;\n }\n`;\n","import React from 'react';\n\nimport { Container, Content, Footer } from './styles';\n\nimport { useAuth } from '../../context/auth';\n\nimport errorImage from '../../assets/images/ERROR.png';\n\nconst OrderError = ({ error, errorMessage, errorAction }) => {\n const { setErrorComponent } = useAuth();\n\n function handleNavigate() {\n errorAction[0]();\n\n setErrorComponent(false);\n }\n\n return (\n \n \n \"ilustracao\n\n

Erro ao fazer pedido!

\n

{errorMessage}

\n
\n \n
\n );\n};\n\nexport default OrderError;\n","import io from 'socket.io-client';\n\nexport default class WebsocketManager {\n constructor(token) {\n this.token = token;\n\n this.messageCallbacks = new Map();\n const wss_url = (process.env.REACT_APP_API_URL || '').replace('http', 'ws');\n this.wss_url = `${wss_url}/waiters`;\n\n this.socket = null;\n\n this.socketConnect();\n }\n\n socketConnect() {\n if (this.token) {\n this.socket = io(this.wss_url, {\n reconnectionDelayMax: 10000,\n transports: ['websocket'],\n query: {\n\n token: this.token,\n },\n });\n\n this.socket.on('event', (message) => {\n this.onMessage(JSON.parse(message));\n });\n } else {\n console.warn('Could not init websocket manager.');\n }\n }\n\n onMessage(data) {\n for (const cb of this.messageCallbacks.values()) {\n cb(data);\n }\n }\n\n addMessageCallback(id, callback) {\n this.messageCallbacks.set(id, callback);\n }\n\n checkConnection() {\n // check if websocket instance is closed, if so call `connect` function.\n if (!this.socket && this.token !== '') {\n this.socketConnect();\n }\n }\n\n close() {\n if (this.socket) {\n this.socket.close();\n this.token = '';\n this.socket = null;\n }\n }\n}\n","import axios from 'axios';\n// android:http://10.0.2.2:3333\nconst api = axios.create({\n baseURL: process.env.REACT_APP_API_URL,\n});\n\nexport default api;\n","import React, {\n createContext,\n useContext,\n useState,\n useEffect,\n useCallback,\n} from 'react';\n\nimport { useHistory } from 'react-router-dom';\nimport OrderError from '../../pages/OrderError';\nimport WebsocketManager from '../../WebsocketManager';\n\nimport api from '../../services/api';\n\nconst AuthContext = createContext();\n\nconst AuthProvider = ({ children }) => {\n const history = useHistory();\n const [websocketManager, setWebsocketManager] = useState(null);\n const [errorComponent, setErrorComponent] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const [errorAction, setErrorAction] = useState([]);\n const [userToken, setUserToken] = useState(() => {\n const tokenStorage = localStorage.getItem('@waitermanager:userToken');\n\n if (tokenStorage) {\n api.defaults.headers.Authorization = `Bearer ${tokenStorage}`;\n return tokenStorage;\n }\n\n return '';\n });\n\n const [sessionKey, setSessionKey] = useState(() => {\n const sessionKeyStorage = localStorage.getItem('@waitermanager:sessionKey');\n\n if (sessionKeyStorage) {\n return sessionKeyStorage;\n }\n\n return '';\n });\n\n const [stoneDevice, setStoneDevice] = useState(() => {\n const stoneDeviceStorage = localStorage.getItem(\n '@waitermanager:stoneDevice',\n );\n\n if (stoneDeviceStorage) {\n return JSON.parse(stoneDeviceStorage);\n }\n\n return '';\n });\n\n const [restaurantId, setRestaurantId] = useState(() => {\n const restaurantIdStorage = localStorage.getItem(\n '@waitermanager:restaurantId',\n );\n\n if (restaurantIdStorage) {\n return restaurantIdStorage;\n }\n\n return '';\n });\n\n const [restaurantName, setRestaurantName] = useState(() => {\n const restaurantNameStorage = localStorage.getItem(\n '@waitermanager:restaurantName',\n );\n\n if (restaurantNameStorage) {\n return restaurantNameStorage;\n }\n\n return '';\n });\n\n const [restaurantHasStone, setRestaurantHasStone] = useState(() => {\n const restaurantNameStorage = localStorage.getItem(\n '@waitermanager:restaurantHasStone',\n );\n\n if (restaurantNameStorage) {\n return restaurantNameStorage;\n }\n\n return '';\n });\n\n const [restaurantFantasyName, setRestaurantFantasyName] = useState(() => {\n const restaurantFantasyNameStorage = localStorage.getItem(\n '@waitermanager:restaurantFantasyName',\n );\n\n if (restaurantFantasyNameStorage) {\n return restaurantFantasyNameStorage;\n }\n\n return '';\n });\n\n const [restaurantAvatar, setRestaurantAvatar] = useState(() => {\n const restaurantAvatarStorage = localStorage.getItem(\n '@waitermanager:restaurantAvatar',\n );\n\n if (restaurantAvatarStorage) {\n return restaurantAvatarStorage;\n }\n\n return '';\n });\n\n const [\n restaurantWithWaiterCloseBill,\n setRestaurantWithWaiterCloseBill,\n ] = useState(() => {\n const restaurantWithWaiterCloseBillStorage = localStorage.getItem(\n '@waitermanager:restaurantWithWaiterCloseBill',\n );\n\n if (restaurantWithWaiterCloseBillStorage) {\n return restaurantWithWaiterCloseBillStorage;\n }\n\n return false;\n });\n\n const [tableNumber, setTableNumber] = useState(() => {\n const tableNumberStorage = localStorage.getItem(\n '@waitermanager:tableNumber',\n );\n\n if (tableNumberStorage) {\n return tableNumberStorage;\n }\n\n return '';\n });\n\n const [tableKey, setTableKey] = useState(() => {\n const tableKeyStorage = localStorage.getItem('@waitermanager:tableKey');\n\n if (tableKeyStorage) {\n return tableKeyStorage;\n }\n\n return '';\n });\n\n const [tableStatus, setTableStatus] = useState(() => {\n const tableStatusStorage = localStorage.getItem(\n '@waitermanager:tableStatus',\n );\n\n if (tableStatusStorage) {\n return tableStatusStorage;\n }\n\n return '';\n });\n\n const [basketId, setBasketId] = useState(() => {\n const basketIdStorage = localStorage.getItem('@waitermanager:basketId');\n\n if (basketIdStorage) {\n return basketIdStorage;\n }\n\n return '';\n });\n\n const [tableId, setTableId] = useState(() => {\n const tableIdStorage = localStorage.getItem('@waitermanager:tableId');\n\n if (tableIdStorage) {\n return tableIdStorage;\n }\n\n return '';\n });\n\n const [restaurantServiceTax, setRestaurantServiceTax] = useState(() => {\n const restaurantServiceTaxStorage = localStorage.getItem(\n '@waitermanager:restaurantServiceTax',\n );\n\n if (restaurantServiceTaxStorage) {\n return restaurantServiceTaxStorage;\n }\n\n return '';\n });\n\n const [serviceTaxValue, setServiceTaxValue] = useState(() => {\n const serviceTaxValueStorage = localStorage.getItem(\n '@waitermanager:serviceTaxValue',\n );\n\n if (serviceTaxValueStorage) {\n return serviceTaxValueStorage;\n }\n\n return '';\n });\n\n const [isBalcony, setIsBalcony] = useState(() => {\n const isBalconyStorage = localStorage.getItem('@waitermanager:isBalcony');\n\n if (isBalconyStorage) {\n return isBalconyStorage;\n }\n\n return '';\n });\n\n const [isPos, setIsPos] = useState(() => {\n const isPosStorage = localStorage.getItem('@waitermanager:isPos');\n\n if (isPosStorage) {\n return isPosStorage;\n }\n\n return '';\n });\n\n const [stoneTransactionId, setStoneTransactionId] = useState(() => {\n const isStoneTransactionStorage = localStorage.getItem(\n '@waitermanager:stoneTransactionId',\n );\n\n if (isStoneTransactionStorage) {\n return isStoneTransactionStorage;\n }\n\n return '';\n });\n\n const [restaurantHasPix, setRestaurantHasPix] = useState(() => {\n const restaurantHasPixStorage = localStorage.getItem(\n '@waitermanager:restaurantHasPix',\n );\n\n if (restaurantHasPixStorage) {\n return restaurantHasPixStorage;\n }\n\n return '';\n });\n\n const [restaurantUseCommand, setRestaurantUseCommand] = useState(() => {\n const restaurantUseCommandStorage = localStorage.getItem(\n '@waitermanager:restaurantUseCommand',\n );\n\n if (restaurantUseCommandStorage) {\n return restaurantUseCommandStorage;\n }\n\n return '';\n });\n\n const [buyerCreatedByWaiter, setBuyerCreatedByWaiter] = useState(() => {\n const buyerCreatedByWaiterStorage = localStorage.getItem(\n '@waitermanager:buyerCreatedByWaiter',\n );\n\n if (buyerCreatedByWaiterStorage) {\n return JSON.parse(buyerCreatedByWaiterStorage);\n }\n\n return '';\n });\n\n const [buyerSelectedByWaiter, setBuyerSelectedByWaiter] = useState(() => {\n const buyerSelectedByWaiterStorage = localStorage.getItem(\n '@waitermanager:buyerSelectedByWaiter',\n );\n\n if (buyerSelectedByWaiterStorage) {\n return JSON.parse(buyerSelectedByWaiterStorage);\n }\n\n return '';\n });\n\n const [buyersCreatedByWaiter, setBuyersCreatedByWaiter] = useState(() => {\n const buyersCreatedByWaiterStorage = localStorage.getItem(\n '@waitermanager:buyersCreatedByWaiter',\n );\n\n if (buyersCreatedByWaiterStorage) {\n return JSON.parse(buyersCreatedByWaiterStorage);\n }\n\n return '';\n });\n\n const [waiter, setWaiter] = useState(() => {\n const waiterStorage = localStorage.getItem('@waitermanager:waiter');\n\n if (waiterStorage) {\n return JSON.parse(waiterStorage);\n }\n\n return '';\n });\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:waiter', JSON.stringify(waiter));\n }, [waiter]);\n\n useEffect(() => {\n localStorage.setItem(\n '@waitermanager:buyerSelectedByWaiter',\n JSON.stringify(buyerSelectedByWaiter),\n );\n }, [buyerSelectedByWaiter]);\n\n useEffect(() => {\n localStorage.setItem(\n '@waitermanager:buyerCreatedByWaiter',\n JSON.stringify(buyerCreatedByWaiter),\n );\n }, [buyerCreatedByWaiter]);\n\n useEffect(() => {\n localStorage.setItem(\n '@waitermanager:buyersCreatedByWaiter',\n JSON.stringify(buyersCreatedByWaiter),\n );\n }, [buyersCreatedByWaiter]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:restaurantHasPix', restaurantHasPix);\n }, [restaurantHasPix]);\n\n useEffect(() => {\n localStorage.setItem(\n '@waitermanager:restaurantUseCommand',\n restaurantUseCommand,\n );\n }, [restaurantUseCommand]);\n\n useEffect(() => {\n localStorage.setItem(\n '@waitermanager:restaurantWithWaiterCloseBill',\n restaurantWithWaiterCloseBill,\n );\n }, [restaurantWithWaiterCloseBill]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:isBalcony', isBalcony);\n }, [isBalcony]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:isPos', isPos);\n }, [isPos]);\n\n useEffect(() => {\n localStorage.setItem(\n '@waitermanager:stoneTransactionId',\n stoneTransactionId,\n );\n }, [stoneTransactionId]);\n\n useEffect(() => {\n localStorage.setItem(\n '@waitermanager:stoneDevice',\n JSON.stringify(stoneDevice),\n );\n }, [stoneDevice]);\n\n useEffect(() => {\n localStorage.setItem(\n '@waitermanager:restaurantServiceTax',\n restaurantServiceTax,\n );\n }, [restaurantServiceTax]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:serviceTaxValue', serviceTaxValue);\n }, [serviceTaxValue]);\n\n useEffect(() => {\n localStorage.setItem(\n '@waitermanager:restaurantFantasyName',\n restaurantFantasyName,\n );\n }, [restaurantFantasyName]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:tableId', tableId);\n }, [tableId]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:tableStatus', tableStatus);\n }, [tableStatus]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:basketId', basketId);\n }, [basketId]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:userToken', userToken);\n }, [userToken]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:sessionKey', sessionKey);\n }, [sessionKey]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:tableNumber', tableNumber);\n }, [tableNumber]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:tableKey', tableKey);\n }, [tableKey]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:restaurantId', restaurantId);\n }, [restaurantId]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:restaurantName', restaurantName);\n }, [restaurantName]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:restaurantAvatar', restaurantAvatar);\n }, [restaurantAvatar]);\n\n useEffect(() => {\n localStorage.setItem(\n '@waitermanager:restaurantHasStone',\n restaurantHasStone,\n );\n }, [restaurantHasStone]);\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:userToken', userToken);\n\n if (userToken && userToken !== 'null') {\n const manager = new WebsocketManager(userToken);\n\n manager.addMessageCallback(-1, data => {\n console.log('AuthContext: socket new data');\n });\n\n setWebsocketManager(manager);\n } else if (websocketManager) {\n websocketManager.close();\n setWebsocketManager(null);\n }\n }, [userToken]);\n\n const setRestaurant = useCallback(\n (\n id,\n name,\n fantasy_name,\n avatar,\n service_tax,\n has_pix,\n has_stone_pos,\n waiters_can_close_sessions,\n command,\n service_tax_value,\n ) => {\n setRestaurantId(id);\n setRestaurantName(name);\n setRestaurantFantasyName(fantasy_name);\n setRestaurantAvatar(avatar);\n setRestaurantServiceTax(service_tax);\n setRestaurantHasPix(has_pix);\n setRestaurantUseCommand(command);\n setRestaurantHasStone(has_stone_pos);\n setRestaurantWithWaiterCloseBill(waiters_can_close_sessions);\n setServiceTaxValue(service_tax_value);\n },\n [],\n );\n\n const waiterLogout = useCallback(() => {\n localStorage.removeItem('@waitermanager:userToken');\n\n setUserToken('');\n }, []);\n\n const setTable = useCallback((number, key) => {\n setTableNumber(number);\n setTableKey(key);\n }, []);\n\n const waiterLogin = useCallback(\n async data => {\n const emailTrim = data.email.trim();\n\n const response = await api.post('/public/sessions/waiter', {\n email: emailTrim,\n password: data.password,\n });\n\n const { user, token } = response.data;\n\n console.log('Token on login: ', token);\n api.defaults.headers.Authorization = `Bearer ${token}`;\n\n const command = user.restaurant.table_type === 'Comanda' ? true : false;\n\n setRestaurant(\n user.restaurant.id,\n user.restaurant.name,\n user.restaurant.fantasy_name,\n user.restaurant.avatar?.url,\n user.restaurant.has_service_tax,\n user.restaurant.has_pix,\n user.restaurant.has_stone_pos,\n user.restaurant.waiters_can_close_sessions,\n command,\n user.restaurant.service_tax,\n );\n\n setWaiter({\n id: user.id,\n name: user.name,\n email: user.email,\n phone: user.phone,\n });\n\n setStoneDevice(user.stone_device || null);\n\n setUserToken(token);\n },\n [setRestaurant],\n );\n\n const getRerstaurantInfo = useCallback(async () => {\n const response = await api.get('/waiter/show');\n\n const user = response.data;\n\n const command = user.restaurant.table_type === 'Comanda' ? true : false;\n\n setRestaurant(\n user.restaurant.id,\n user.restaurant.name,\n user.restaurant.fantasy_name,\n user.restaurant.avatar?.url,\n user.restaurant.has_service_tax,\n user.restaurant.has_pix,\n user.restaurant.has_stone_pos,\n user.restaurant.waiters_can_close_sessions,\n command,\n user.restaurant.service_tax,\n );\n\n setWaiter({\n id: user.id,\n name: user.name,\n email: user.email,\n phone: user.phone,\n });\n\n setStoneDevice(user.stone_device || null);\n }, [setRestaurant]);\n\n useEffect(() => {\n getRerstaurantInfo();\n }, [getRerstaurantInfo]);\n\n const getPos = useCallback(async () => {\n const response = await api.get('/waiter/pos');\n\n setStoneDevice(response.data);\n }, [setStoneDevice]);\n\n const balconyLogin = useCallback(\n async (lastOrder, closeCart) => {\n try {\n const res = await api.post('waiter/balcony/orders', {\n order: lastOrder,\n table_id: Number(tableId),\n channel: 'gm',\n });\n\n const { orderBasket } = res.data;\n\n setBasketId(orderBasket.basket_id);\n\n closeCart();\n\n history.push('/confirmorder');\n } catch (err) {\n if (!err.response.ok) {\n if (err.response.data.error) {\n switch (err.response.data.error) {\n case 'Token inválido':\n alert('Seu login expirou, favor efetuar seu login novamente');\n waiterLogout();\n history.push(`/`);\n break;\n\n case 'Token não enviado':\n alert('Seu login expirou, favor efetuar seu login novamente');\n waiterLogout();\n history.push(`/`);\n break;\n\n default:\n break;\n }\n } else {\n switch (err.response.data.errorType) {\n case 'restaurant_closed':\n setErrorComponent(true);\n setErrorMessage(\n 'Esse Restaurante está fechado. Volte novamente mais tarde.',\n );\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n\n case 'products_not_available':\n const products = err.response.data.payload;\n\n setErrorComponent(true);\n setErrorMessage(\n `Olá, não poderemos concluir o seu pedido pois o item a seguir acabou de esgotar ou não está mais disponível: ${products.map(\n item => ` ${item} `,\n )}. Vamos te redirecionar para o carrinho para que você possa excluí-lo:\n\n `,\n );\n\n setErrorAction([\n () => {\n window.location.reload();\n },\n ]);\n break;\n\n case 'table_session_closing':\n setErrorComponent(true);\n setErrorMessage(\n 'Esta mesa está em fechamento, favor solicitar a liberação no dashboard.',\n );\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n\n case 'wrong_product':\n setErrorComponent(true);\n setErrorMessage('Esse produto não existe neste restaurante.');\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n\n case 'table_not_found':\n setErrorComponent(true);\n setErrorMessage(\n 'Mesa não encontrada, favor entrar na mesa novamente',\n );\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n\n case 'wrong_restaurant_table':\n setErrorComponent(true);\n setErrorMessage(\n 'Mesa não pertence a este restaurante, favor entrar na mesa novamente.',\n );\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n\n default:\n setErrorComponent(true);\n setErrorMessage(\n 'O sistema está apresentando falha. Tente novamente mais tarde.',\n );\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n }\n }\n }\n }\n },\n [tableId, history, waiterLogout],\n );\n\n const posLogin = useCallback(\n async (lastOrder, closeCart, type) => {\n try {\n const res = await api.post('waiter/pos/orders', {\n order: lastOrder,\n table_id: Number(tableId),\n type,\n });\n\n console.log(res.data);\n\n const { orderBasket } = res.data;\n\n setBasketId(orderBasket.basket_id);\n\n setStoneTransactionId(res.data.transaction_id);\n\n closeCart();\n\n history.push('/waitingpayment');\n } catch (err) {\n if (!err.response.ok) {\n if (err.response.data.error) {\n switch (err.response.data.error) {\n case 'Token inválido':\n alert('Seu login expirou, favor efetuar seu login novamente');\n waiterLogout();\n history.push(`/`);\n break;\n\n case 'Token não enviado':\n alert('Seu login expirou, favor efetuar seu login novamente');\n waiterLogout();\n history.push(`/`);\n break;\n\n default:\n break;\n }\n } else {\n switch (err.response.data.errorType) {\n case 'restaurant_closed':\n setErrorComponent(true);\n setErrorMessage(\n 'Esse Restaurante está fechado. Volte novamente mais tarde.',\n );\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n\n case 'products_not_available':\n const products = err.response.data.payload;\n\n setErrorComponent(true);\n setErrorMessage(\n `Olá, não poderemos concluir o seu pedido pois o item a seguir acabou de esgotar ou não está mais disponível: ${products.map(\n item => ` ${item} `,\n )}. Vamos te redirecionar para o carrinho para que você possa excluí-lo:\n\n `,\n );\n\n setErrorAction([\n () => {\n window.location.reload();\n },\n ]);\n break;\n\n case 'table_session_closing':\n setErrorComponent(true);\n setErrorMessage(\n 'Esta mesa está em fechamento, favor solicitar a liberação no dashboard.',\n );\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n\n case 'wrong_product':\n setErrorComponent(true);\n setErrorMessage('Esse produto não existe neste restaurante.');\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n\n case 'table_not_found':\n setErrorComponent(true);\n setErrorMessage(\n 'Mesa não encontrada, favor entrar na mesa novamente',\n );\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n\n case 'wrong_restaurant_table':\n setErrorComponent(true);\n setErrorMessage(\n 'Mesa não pertence a este restaurante, favor entrar na mesa novamente.',\n );\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n\n default:\n setErrorComponent(true);\n setErrorMessage(\n 'O sistema está apresentando falha. Tente novamente mais tarde.',\n );\n setErrorAction([\n () => {\n history.push(`/restauranttables`);\n },\n ]);\n break;\n }\n }\n }\n }\n },\n [tableId, history, waiterLogout],\n );\n\n const tableLogin = useCallback(\n async (lastOrder, command_table_number, closeCart) => {\n try {\n if (\n buyerSelectedByWaiter.id &&\n buyerSelectedByWaiter.id !== -33802 &&\n buyerSelectedByWaiter.id !== -33800\n ) {\n const res = await api.post('/waiter/buyer/orders', {\n order: lastOrder,\n table_id: Number(tableId),\n buyer_id: buyerSelectedByWaiter.id,\n command_table_number,\n channel: 'gm',\n });\n\n const { updatedBasket } = res.data;\n\n setBasketId(updatedBasket.basket_id);\n\n closeCart();\n\n history.push('/confirmorder');\n } else if (buyerCreatedByWaiter) {\n const buyer = await api.post('/waiter/buyer', {\n name: buyerCreatedByWaiter.name,\n phone: buyerCreatedByWaiter.phone,\n table_id: Number(tableId),\n });\n\n const res = await api.post('/waiter/buyer/orders', {\n order: lastOrder,\n table_id: Number(tableId),\n buyer_id: buyer.data.id,\n command_table_number,\n channel: 'gm',\n });\n\n const { updatedBasket } = res.data;\n\n setBasketId(updatedBasket.basket_id);\n\n closeCart();\n\n history.push('/confirmorder');\n } else {\n const res = await api.post('waiter/orders', {\n order: lastOrder,\n table_id: Number(tableId),\n command_table_number,\n channel: 'gm',\n });\n\n const { orderBasket } = res.data;\n\n setBasketId(orderBasket.basket_id);\n\n closeCart();\n\n history.push('/confirmorder');\n }\n } catch (err) {\n if (!err.response?.ok && err.response) {\n if (err.response.data.error) {\n switch (err.response.data.error) {\n case 'Token inválido':\n alert('Seu login expirou, favor efetuar seu login novamente');\n waiterLogout();\n history.push(`/`);\n break;\n\n case 'Token não enviado':\n alert('Seu login expirou, favor efetuar seu login novamente');\n waiterLogout();\n history.push(`/`);\n break;\n\n default:\n break;\n }\n } else {\n switch (err.response.data.errorType) {\n case 'restaurant_closed':\n setErrorComponent(true);\n setErrorMessage(\n 'Esse Restaurante está fechado. Volte novamente mais tarde.',\n );\n setErrorAction([() => history.push(`/restauranttables`)]);\n break;\n\n case 'products_not_available':\n const products = err.response.data.payload;\n\n setErrorComponent(true);\n setErrorMessage(\n `Olá, não poderemos concluir o seu pedido pois o item a seguir acabou de esgotar ou não está mais disponível: ${products.map(\n item => ` ${item} `,\n )}. Vamos te redirecionar para o carrinho para que você possa excluí-lo:\n\n `,\n );\n\n setErrorAction([() => window.location.reload()]);\n break;\n\n case 'table_session_closing':\n setErrorComponent(true);\n setErrorMessage(\n 'Esta mesa está em fechamento, favor solicitar a liberação no dashboard.',\n );\n setErrorAction([() => history.push(`/restauranttables`)]);\n break;\n\n case 'wrong_product':\n setErrorComponent(true);\n setErrorMessage('Esse produto não existe neste restaurante.');\n setErrorAction([() => history.push(`/restauranttables`)]);\n break;\n\n case 'table_not_found':\n setErrorComponent(true);\n setErrorMessage(\n 'Mesa não encontrada, favor entrar na mesa novamente',\n );\n setErrorAction([() => history.push(`/restauranttables`)]);\n break;\n\n case 'wrong_restaurant_table':\n setErrorComponent(true);\n setErrorMessage(\n 'Mesa não pertence a este restaurante, favor entrar na mesa novamente.',\n );\n setErrorAction([() => history.push(`/restauranttables`)]);\n break;\n\n case 'buyer_with_open_session':\n setErrorComponent(true);\n setErrorMessage(\n 'Este cliente já possui conta aberta em uma outra mesa, favor verificar no dashboard',\n );\n\n setBuyerCreatedByWaiter('');\n setBuyerSelectedByWaiter('');\n setBuyersCreatedByWaiter(buyers =>\n buyers.filter(b => b.id !== -33802),\n );\n setErrorAction([() => window.location.reload()]);\n break;\n\n default:\n setErrorComponent(true);\n await api.post('/public/client/log-error', {\n error: 'Garçom: ' + err.message,\n });\n setErrorMessage(\n 'Ocorreu um erro ao fazer o pedido. Tente novamente, por favor. Caso volte a ocorrer, faça logout do sistema e em seguida se logue novamente, ou chame o suporte para auxiliar. ',\n );\n setErrorAction([() => history.push(`/restauranttables`)]);\n break;\n }\n }\n } else {\n await api.post('/public/client/log-error', {\n error: 'Garçom: ' + err.message,\n });\n }\n }\n },\n [\n tableId,\n history,\n waiterLogout,\n buyerCreatedByWaiter,\n buyerSelectedByWaiter,\n setBuyerSelectedByWaiter,\n setBuyerCreatedByWaiter,\n setBuyersCreatedByWaiter,\n ],\n );\n\n return (\n \n {children}\n \n \n );\n};\n\nfunction useAuth() {\n const context = useContext(AuthContext);\n\n if (!context) {\n console.log('useAuth must be within a provider');\n }\n\n return context;\n}\n\nexport { AuthProvider, useAuth };\n","import React from 'react';\nimport { Route as ReactDOMRoute, Redirect } from 'react-router-dom';\n\nimport { useAuth } from '../context/auth';\n\nconst Route = ({ isPrivate = false, component: Component, ...rest }) => {\n const { userToken } = useAuth();\n\n //sessionKey && tableNumber ? redirect to /auto/restaurantName\n //!sessionKey\n\n return (\n {\n return isPrivate === !!userToken ? (\n \n ) : (\n \n );\n }}\n />\n );\n};\n\nexport default Route;\n","import styled from 'styled-components';\n\nexport const InputContainer = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 10px;\n margin-bottom: 10px;\n position: relative;\n\n label {\n font-weight: bold;\n }\n\n input {\n height: 44px;\n padding: 10px;\n border-radius: 8px;\n border: 1px solid lightgray;\n\n &:focus {\n border: 1px solid gray;\n border-radius: 8px;\n }\n }\n span {\n font-weight: bold;\n color: #ff403d;\n }\n`;\n\nexport const TextareaContainer = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 10px;\n margin-bottom: 10px;\n\n label {\n font-weight: bold;\n }\n\n textarea {\n height: 120px;\n padding: 10px;\n border-radius: 8px;\n border: 1px solid lightgray;\n resize: none;\n\n &:focus {\n border: 1px solid gray;\n border-radius: 8px;\n }\n }\n span {\n font-weight: bold;\n color: #ff403d;\n }\n`;\n\nexport const SelectContainer = styled.div`\n label {\n font-weight: bold;\n }\n`;\nexport const CheckboxContainer = styled.div`\n height: 100%;\n display: flex;\n align-items: center;\n input {\n margin: auto 0;\n }\n label {\n margin-left: 20px;\n font-weight: bold;\n }\n`;\n\nexport const InputPaymentContainer = styled.div`\n display: flex;\n flex-direction: row;\n height: 80%;\n\n label {\n font-weight: bold;\n }\n\n input {\n width: 100px;\n padding: 5px;\n font-size: 15px;\n border-radius: 8px;\n border-color: green;\n border: 2px solid green;\n\n &:focus {\n border: 2px solid green;\n border-radius: 8px;\n }\n }\n span {\n font-weight: bold;\n color: #ff403d;\n }\n`;\n\nexport const Error = styled.div`\n position: absolute;\n top: -25px;\n right: 0px;\n padding: 8px;\n border-radius: 7px;\n background: #fb4a20;\n color: #fff;\n\n &::before {\n content: '';\n border-style: solid;\n border-color: #fb4a20 transparent;\n border-width: 6px 6px 0 6px;\n top: 100%;\n bottom: 20px;\n position: absolute;\n right: 10px;\n }\n\n p {\n color: #fff;\n font-size: 10px;\n font-weight: bold;\n }\n`;\n","import React, { useEffect, useRef } from 'react';\nimport { useField } from '@unform/core';\n\nimport { InputContainer, Error } from './styles';\n\nfunction Input({ name, label, maxlength, ...rest }) {\n const inputRef = useRef(null);\n const { fieldName, registerField, defaultValue, error } = useField(name);\n\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: inputRef.current,\n path: 'value',\n });\n }, [fieldName, inputRef, registerField]);\n\n return (\n \n \n \n {error && (\n \n

{error}

\n
\n )}\n
\n );\n}\n\nexport default Input;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"title\", null, \"\\xCDCONE SITE\");\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M.18,16.2a5.46,5.46,0,0,0,.07,3.07A6.12,6.12,0,0,0,1.51,21a3.81,3.81,0,0,0,1.36.77A5.7,5.7,0,0,0,4.56,22a2.76,2.76,0,0,0,1.21-.29,5.26,5.26,0,0,0,1.14-.76,8.47,8.47,0,0,0,1-1.05,13.1,13.1,0,0,0,.89-1.22,20.12,20.12,0,0,0,1.36-2.45l.16.1A3.46,3.46,0,0,0,14,15l3.23-5.25s.16-.38-.39-.75a.88.88,0,0,0-.92-.07l-2.84,4.61-1-.64,2.84-4.61a.69.69,0,0,0-.28-.66.78.78,0,0,0-.83,0l-2.84,4.6-1-.64L12.74,7a1,1,0,0,0-.48-.77,1.39,1.39,0,0,0-.94-.12L8.08,11.33a3.43,3.43,0,0,0,.38,3.74c-.27.38-.53.73-.79,1.06s-.45.57-.7.85a9.73,9.73,0,0,1-.71.72,3.72,3.72,0,0,1-.67.51A1.13,1.13,0,0,1,5,18.4c-.33,0-.5-.23-.51-.7a7.7,7.7,0,0,1,.29-1.85c.2-.77.48-1.63.82-2.6s.71-2,1.09-3h1a.92.92,0,0,0,.66-.3,2.29,2.29,0,0,0,.46-.67A1.4,1.4,0,0,0,9,8.6a.3.3,0,0,0-.33-.31H7.45c.42-1.16.79-2.21,1.1-3.17A8.2,8.2,0,0,0,9,2.94a2.57,2.57,0,0,0-.27-1.19A3.73,3.73,0,0,0,8.08.83,2.8,2.8,0,0,0,7.27.24,1.67,1.67,0,0,0,6.55,0a.39.39,0,0,0-.44.44A4.33,4.33,0,0,1,5.85,1.8c-.17.54-.4,1.15-.68,1.83s-.6,1.41-1,2.2L3.13,8.29H1.41a1,1,0,0,0-.76.31,1.65,1.65,0,0,0-.41.69,1.09,1.09,0,0,0,0,.67.48.48,0,0,0,.52.3H2.29c-.57,1.37-1,2.7-1.45,4,0,.1-.65,1.84-.66,1.95\",\n transform: \"translate(0 -0.03)\"\n});\n\nvar SvgIconTake = function SvgIconTake(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 17.25 21.93\",\n ref: svgRef\n }, props), _ref2, title === undefined ? _ref3 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref4);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconTake, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/iconTake.64d65b59.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport { ReactComponent as LogoImg } from '../../assets/images/iconTake.svg';\nimport {Form} from '@unform/web'\nimport { FiEye } from 'react-icons/fi';\n\nexport const Container = styled.div`\n height: 100vh;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\n\nexport const Content = styled.div`\n width: 100%;\n max-width: 410px;\n padding: 10px;\n display: flex;\n flex-direction: column;\n\n p {\n text-align: center;\n }\n`;\n\nexport const Title = styled.div`\n display: flex;\n\n flex-direction: column;\n align-items: center;\n\n p {\n color: #333;\n margin-top: 20px;\n }\n`;\n\nexport const ButtonGroup = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 15px;\n`;\n\nexport const Logo = styled(LogoImg)`\n .cls-1 {\n fill: #fb4a20;\n }\n\n width: 80px;\n`;\n\nexport const StyledForm = styled(Form)`\n margin-top: 40px;\n\n p {\n font-weight: bold;\n\n }\n\n input {\n width: 100%;\n max-width: 414px;\n height: 48px;\n color: #fb4a20;\n background: transparent;\n border-radius: 7px;\n border: 1px solid #fb4a20;\n margin-top: 10px;\n text-align: center;\n\n ::placeholder {\n text-align: center;\n color: #fb4a20;\n }\n }\n\n button {\n width: 100%;\n max-width: 414px;\n height: 48px;\n background: linear-gradient(\n 144deg,\n rgba(251, 74, 32, 1) 28%,\n rgba(250, 5, 97, 1) 100%\n );\n color: #fff;\n border-radius: 7px;\n border: none;\n margin-top: 8px;\n }\n`;\n\n\n\nexport const InputArea = styled.div`\n position: relative;\n width: 100%;\n\n`;\n\nexport const FiEyeStyled = styled(FiEye)`\n position: absolute;\n right: 10px;\n bottom: 15px;\n cursor: pointer;\n color: rgba(251, 74, 32, 1);\n`;\n","export default function getValidationErrors(err) {\n const validationErrors = {};\n\n err.inner.forEach((err) => {\n validationErrors[err.path] = err.message;\n });\n\n return validationErrors;\n}\n","import React, { useState, useRef } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport { useAuth } from '../../context/auth';\nimport * as Yup from 'yup'\n\nimport Input from '../../components/Input'\n\nimport { Container, Title, Content, Logo, StyledForm, InputArea, FiEyeStyled } from './styles';\n\nimport getValidationErrors from '../../services/getValidationErrors';\n\nconst Login = () => {\n const history = useHistory();\n // const [email, setEmail] = useState('');\n // const [password, setPassword] = useState('');\n const { waiterLogin } = useAuth();\n\n const formRef = useRef(null)\n\n function togglePasswordType() {\n const password = document.querySelector('#password');\n\n const type =\n password.getAttribute('type') === 'password' ? 'text' : 'password';\n\n password.setAttribute('type', type);\n }\n\n async function handleSubmit(data) {\n try {\n if (formRef?.current) {\n formRef.current.setErrors({});\n }\n\n const schema = Yup.object().shape({\n email: Yup.string().email('Email Inválido ou com espaço em branco').required('Usuário obrigatório').trim(),\n password: Yup.string().required('Senha obrigatória'),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n });\n\n\n await waiterLogin(data);\n\n history.push('/orderspending');\n } catch (error) {\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErrors(error);\n if (formRef?.current) {\n formRef.current.setErrors(errors);\n }\n } else {\n console.log(error);\n alert('Verifique seu email e senha, e tente novamente ...');\n }\n\n }\n }\n\n // function handleEmailInput(e) {\n // setEmail(e.target.value);\n // }\n\n // function handlePasswordlInput(e) {\n // setPassword(e.target.value);\n // }\n\n return (\n \n \n \n <Logo />\n \n\n \n

Faça seu login no espaço do garçom.

\n\n \n \n \n \n \n\n\n \n
\n
\n
\n );\n};\n\nexport default Login;\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nexport default function ScrollToTop() {\n const { pathname } = useLocation();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return null;\n}\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n /* margin: 0 auto; */\n background: #fff;\n width: 100%;\n max-width: 410px;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow-x: hidden;\n height: 300px;\n margin-top: 50px;\n`;\n\nexport const Content = styled.div`\n width: 100%;\n max-width: 414px;\n height: 300px;\nposition: relative ;\n display: flex;\n flex-direction: column;\n /* padding-bottom: 65px; */\n\n\n a {\n text-decoration: none;\n color: #fb4a20;\n display: flex;\n align-items: center;\n margin-bottom: 10px;\n font-weight: 700;\n }\n`;\n\nexport const Footer = styled.footer`\n height: 58px;\nbackground-color: #fff ;\n position: fixed;\n\n bottom: 10px;\n width: 100%;\n\n button {\n\n width: 90%;\n max-width: 410px;\nborder-radius: 24px ;\n height: 48px;\n background: linear-gradient(\n 144deg,\n #FF2B3A 28%,\n #FF2E15 100%\n );\n color: #fff;\n margin-top: 10px ;\n margin-bottom: 10px ;\n border: none;\n margin-left: 15px ;\n\n span {\n font-family: Arial, Helvetica, sans-serif;\n font-weight: bold;\n margin-left: 8px;\n margin-top: 3px;\n }\n }\n`;\n\nexport const ProductName = styled.h1`\n margin-top: 30px;\n`;\n\nexport const CloseButton = styled.button`\n position: absolute;\n top: 10px;\n left: 10px;\n width: 30px;\n height: 30px;\n border-radius: 50%;\n background-color: #fff;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border: none;\n`;\n\nexport const ImageProduct = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #fff;\n\n\n overflow: hidden;\nwidth: 100% ;\n max-width: 410px;\n height: 250px;\n\n img {\n width: 100%;\n }\n`;\n\nexport const DescriptionProduct = styled.div`\n margin-top: 8px;\n padding: 10px;\n padding-bottom: 10px;\n\n h1 {\n font-size: 18px;\n font-weight: 700;\n margin-bottom: 18px ;\n }\n\n span {\n font-size: 14px;\n\n\n\n }\n`;\n\n\n\n\n\n\n\n","import React from 'react';\n\n\n// import { Modal, ModalFooter } from 'reactstrap';\nimport {\n\n FiX,\n} from 'react-icons/fi';\n\n\nimport ScrollToTop from '../../../components/ScrollToTop';\nimport {\n Container,\n Content,\n ImageProduct,\n DescriptionProduct,\n Footer,\n CloseButton,\n ProductName,\n} from './styles';\n\n\nconst ProductDetails = ({ product, closeProductModal }) => {\n\n\n return (\n \n \n \n\n\n {product.image && (\n \n {product.description}\n \n )}\n\n \n {!product.image ? (\n {product.name}\n ) : (\n

{product.name}

\n )}\n\n {product.description}\n
\n\n
\n\n \n\n
\n\n
\n
\n );\n};\n\nexport default ProductDetails;\n","import React, {\n createContext,\n useContext,\n useState,\n useCallback,\n useMemo,\n useEffect,\n} from 'react';\n\nimport { uuid } from 'uuidv4';\n\nimport { useAuth } from '../auth';\n\nconst OrderContext = createContext();\n\nconst OrderProvider = ({ children }) => {\n const { tableLogin, balconyLogin, posLogin } = useAuth();\n\n const [orders, setOrders] = useState(() => {\n const orderStorage = localStorage.getItem('@waitermanager:order');\n\n if (orderStorage) {\n return JSON.parse(orderStorage);\n }\n\n return [];\n });\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:order', JSON.stringify(orders));\n }, [orders]);\n\n const addToOrder = useCallback(\n async (cart, command_table_number, closeCart) => {\n setOrders([...orders, { order: [...cart], id: uuid() }]);\n\n const lastOrder = [...cart];\n tableLogin(lastOrder, command_table_number, closeCart);\n },\n\n [orders, tableLogin],\n );\n\n const addToOrderBalcony = useCallback(\n async (cart, closeCart) => {\n setOrders([...orders, { order: [...cart], id: uuid() }]);\n\n const lastOrder = [...cart];\n\n balconyLogin(lastOrder, closeCart);\n },\n\n [orders, balconyLogin],\n );\n\n const addToOrderPos = useCallback(\n async (cart, closeCart, type) => {\n setOrders([...orders, { order: [...cart], id: uuid() }]);\n\n const lastOrder = [...cart];\n\n posLogin(lastOrder, closeCart, type);\n },\n\n [orders, balconyLogin],\n );\n\n const closeOrder = useCallback(() => {\n localStorage.removeItem('@waitermanager:order');\n localStorage.removeItem('@waitermanager:cart');\n localStorage.removeItem('@waitermanager:basketId');\n\n setOrders([]);\n }, []);\n\n const value = useMemo(\n () => ({\n addToOrder,\n addToOrderBalcony,\n addToOrderPos,\n orders,\n closeOrder,\n }),\n [addToOrder, orders, closeOrder, addToOrderBalcony, addToOrderPos],\n );\n\n return (\n {children}\n );\n};\n\nfunction useOrder() {\n const context = useContext(OrderContext);\n\n if (!context) {\n console.log('useOrder must be within a provider');\n }\n\n return context;\n}\n\nexport { OrderProvider, useOrder };\n","import React, {\n createContext,\n useContext,\n useState,\n useMemo,\n useCallback,\n useEffect,\n} from 'react';\n\nimport { v4 } from 'uuid';\n\nimport { useOrder } from '../order/index';\n\nconst CartContext = createContext();\n\n\nconst CartProvider = ({ children }) => {\n const { addToOrder, addToOrderBalcony, addToOrderPos } = useOrder();\n const [cart, setCart] = useState(() => {\n const cartStorage = localStorage.getItem('@waitermanager:cart');\n\n if (cartStorage) {\n return JSON.parse(cartStorage);\n }\n\n return [];\n });\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:cart', JSON.stringify(cart));\n }, [cart]);\n\n const addCartToOrder = useCallback((command_table_number) => {\n addToOrder(cart, command_table_number, closeCart);\n }, [cart, addToOrder]);\n\n const addCartToOrderBalcony = useCallback(() => {\n addToOrderBalcony(cart, closeCart);\n }, [cart, addToOrderBalcony]);\n\n const addCartToOrderPos = useCallback((type) => {\n addToOrderPos(cart, closeCart, type);\n }, [cart, addToOrderPos]);\n\n const closeCart = useCallback(() => {\n localStorage.removeItem('@waitermanager:cart');\n\n setCart([]);\n }, []);\n\n const increment = useCallback(\n (id, orderingId) => {\n const newCart = [...cart];\n\n if (orderingId) {\n const findCart = newCart.findIndex(\n (item) => item.ordering_system_id === orderingId\n );\n\n newCart[findCart].amount += 1;\n\n setCart(newCart);\n } else {\n const findCart = newCart.findIndex((item) => item.intern_id === id);\n\n newCart[findCart].amount += 1;\n\n setCart(newCart);\n }\n },\n [cart]\n );\n\n const decrement = useCallback(\n (id, orderingId) => {\n const newCart = [...cart];\n\n if (orderingId) {\n const findCart = newCart.findIndex(\n (item) => item.ordering_system_id === orderingId\n );\n\n if (newCart[findCart].amount > 1) {\n newCart[findCart].amount -= 1;\n }\n\n setCart(newCart);\n } else {\n const findCart = newCart.findIndex((item) => item.id === id);\n\n if (newCart[findCart].amount > 1) {\n newCart[findCart].amount -= 1;\n }\n\n setCart(newCart);\n }\n },\n [cart]\n );\n const addToCart = useCallback(\n (basket) => {\n if (\n cart.length > 0 &&\n basket.complementsCategory.length < 1 &&\n !basket.isProductWeight\n ) {\n const productExist = cart.filter(\n (product) =>\n product.id === basket.product.id &&\n product.complement_categories.length < 1 &&\n !product.observation\n );\n\n if (productExist.length > 0) {\n increment(productExist[0].intern_id, null);\n } else {\n setCart([\n ...cart,\n {\n basket_id: v4(),\n id: basket.product.id,\n ordering_system_id: v4(),\n name: basket.product.name,\n price: basket.product.price,\n image: basket.product.image,\n amount: basket.amount,\n observation: basket.observation,\n complement_categories: basket.complementsCategory,\n use_weight: basket.isProductWeight || false,\n weight: basket.inputProductWeight || null,\n intern_id: basket.product.id + 1,\n is_unitary: basket.product.is_unitary\n },\n ]);\n }\n } else {\n setCart([\n ...cart,\n {\n basket_id: v4(),\n id: basket.product.id,\n ordering_system_id: v4(),\n name: basket.product.name,\n price: basket.product.price,\n image: basket.product.image,\n amount: basket.amount,\n observation: basket.observation,\n complement_categories: basket.complementsCategory,\n use_weight: basket.isProductWeight || false,\n weight: basket.inputProductWeight || null,\n intern_id: basket.product.id + 1,\n is_unitary: basket.product.is_unitary\n },\n ]);\n }\n },\n [cart, increment]\n );\n\n const removeFromCart = useCallback(\n id => {\n const newCart = [...cart];\n const productId = newCart.findIndex(item => item.basket_id === id);\n\n if (productId >= 0) {\n const cartFiltered = newCart.filter(\n product => product.basket_id !== id,\n );\n\n setCart(cartFiltered);\n } else {\n console.log('Produto nao existe');\n }\n },\n [cart],\n );\n\n const addObservation = useCallback(\n (id, ordering_system_id, message) => {\n const newCart = [...cart];\n\n if (ordering_system_id) {\n const findCart = newCart.findIndex(\n (item) => item.ordering_system_id === ordering_system_id\n );\n\n newCart[findCart].observation = message;\n\n setCart(newCart);\n } else {\n const findCart = newCart.findIndex((item) => item.id === id);\n\n newCart[findCart].observation = message;\n\n setCart(newCart);\n }\n },\n [cart]\n );\n\n\n const value = useMemo(\n () => ({\n addToCart,\n decrement,\n increment,\n cart,\n closeCart,\n addCartToOrder,\n addCartToOrderBalcony,\n addCartToOrderPos,\n removeFromCart,\n addObservation\n }),\n [\n addToCart,\n closeCart,\n decrement,\n increment,\n cart,\n addCartToOrder,\n addCartToOrderBalcony,\n addCartToOrderPos,\n removeFromCart,\n addObservation\n ],\n );\n\n return {children};\n};\n\nconst useCart = () => {\n const context = useContext(CartContext);\n\n if (!context) {\n console.log('useCart must be within a provider');\n }\n\n return context;\n};\n\nexport { CartProvider, useCart };\n","import React, {createContext, useContext, useMemo, useEffect, useState} from 'react';\nimport api from '../../services/api'\nimport {useAuth} from '../auth'\n\nconst MenuContext = createContext()\n\nconst MenuProvider = ({children}) => {\nconst { restaurantId } = useAuth();\nconst [menuProducts, setMenuProducts] = useState([]);\nconst [productsFiltered, setProductsFiltered] = useState();\n\n const [menu, setMenu] = useState(()=>{\n const menuStorage = localStorage.getItem('@waitermanager:menu');\n\n if(menuStorage){\n return JSON.parse(menuStorage)\n }\n\n return []\n });\n\n\n async function getMenu(){\n\n const response = await api.get(\n `public/restaurants/menu/${restaurantId}`,\n );\n setMenu(response.data);\n\n }\n\n async function handleSearchInputProduct(data) {\n\n if (data.length >= 3) {\n try {\n // if (inputProductRef?.current) {\n // inputProductRef.current.setErrors({});\n // }\n // const schema = Yup.object().shape({\n // product: Yup.string().required('Produto obrigatório'),\n // });\n\n // await schema.validate(data, {\n // abortEarly: false,\n // });\n\n // const product = data.product.toLowerCase();\n // const response = await api.get(`public/restaurants/products-available/${restaurantId}?name=${product}&delivery=false`);\n\n // const productFind = response.data.filter((prod) => {\n // if (prod.name.toLowerCase().includes(product)) {\n // return prod;\n // }\n // return '';\n // }\n\n const products = [];\n\n menu\n .filter((cat) => cat?.available === true)\n .map((cat) => cat.products.map((prod) => products.push(prod)));\n\n setMenuProducts(products);\n\n const productFind = menuProducts.filter((prod) => {\n if (\n prod.name\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .includes(data.toLowerCase())\n ) {\n return prod;\n }\n return '';\n });\n\n\n setProductsFiltered(productFind);\n } catch (error) {\n // if (error instanceof Yup.ValidationError) {\n // const errors = getValidationErrors(error);\n // if (inputProductRef?.current) {\n // inputProductRef.current.setErrors(errors);\n // }\n // } else {\n // console.tron.log(error);\n console.log(`Produto não encontrado!`);\n }\n\n }\n\n\n if (data.length === 0) {\n setProductsFiltered({ products: [] });\n }\n\n }\n\n useEffect(()=>{\n try{\n getMenu()\n }catch(e){\n console.log(\"erro ao carregar menu\")\n }\n }, [restaurantId])\n\n useEffect(() => {\n const interval = setInterval(() => {\n try {\n getMenu()\n } catch (err) {\n console.log(err);\n }\n }, 300000);\n return () => clearInterval(interval);\n }, [getMenu]);\n\n\n useEffect(() => {\n localStorage.setItem('@waitermanager:menu', JSON.stringify(menu));\n }, [menu]);\n\n\n const value = useMemo(()=>({\n menu,\n setMenu,\n handleSearchInputProduct,\n productsFiltered,\n setProductsFiltered\n\n }), [menu, setMenu, productsFiltered])\n\n return(\n \n {children}\n\n \n )\n\n}\n\nfunction useMenu(){\n const context = useContext(MenuContext);\n\n if(!context){\n console.log('useMenu must be within a provider');\n }\n\n return context;\n}\n\nexport {MenuProvider, useMenu}\n","const formatValue = value =>\n Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: 'BRL',\n }).format(value);\n\nexport default formatValue;\n","import styled, { css } from 'styled-components';\nimport NotificationBadge from 'react-notification-badge';\n\nexport const Container = styled.div`\n margin: 0 auto;\n\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const HeaderAction = styled.div`\n position: fixed;\n top: 0;\n padding-top: 14px;\n\n background: #fff;\n width: 100%;\n max-width: 410px;\n z-index: 10;\n\n header {\n display: flex;\n align-items: flex-start;\n flex-direction: column;\n justify-content: space-between;\n padding-left: 10px;\n padding-right: 10px;\n\n h1 {\n font-size: 20px;\n font-weight: bold;\n margin-bottom: 12px;\n }\n > div {\n font-size: 16px;\n color: #ff2b3a;\n display: flex;\n align-items: center;\n\n span {\n color: #ff2b3a;\n font-weight: 500;\n }\n }\n }\n`;\n\nexport const RecentlyProduct = styled.div``;\n\nexport const ButtonDetails = styled.button`\n position: absolute;\n background-color: #fff;\n border-radius: 8px 0 8px 0;\n border: 1px solid #33333380;\n width: 30px;\n height: 30px;\n left: 10px;\n`;\n\nexport const RecentlyProductHeader = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: linear-gradient(\n 144deg,\n rgba(251, 74, 32, 1) 28%,\n rgba(250, 5, 97, 1) 100%\n );\n color: #fff;\n border-radius: 7px;\n padding: 5px;\n margin-bottom: 16px;\n font-weight: bold;\n`;\n\nexport const Content = styled.div`\n width: 100%;\n max-width: 414px;\n\n display: flex;\n flex-direction: column;\n padding-bottom: 70vh;\n margin-top: 65px;\n`;\n\nexport const Footer = styled.footer`\n width: 100%;\n max-width: 410px;\n height: 65px;\n background: #fff;\n position: fixed;\n bottom: 0;\n border-top: 1px solid #33333310;\n > div {\n button {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-size: 10px;\n\n background: transparent;\n svg {\n margin-bottom: 4px;\n }\n }\n span {\n font-size: 12px;\n color: #333;\n margin-top: -20px;\n }\n img {\n width: 26px;\n }\n }\n > div {\n height: 100%;\n display: flex;\n justify-content: space-around;\n align-items: center;\n }\n`;\n\nexport const ButtonOutline = styled.button`\n width: 90px;\n height: 50px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-size: 12px;\n text-decoration: none;\n border: 1px solid #ff2b3a;\n border-radius: 100px;\n color: #333;\n svg {\n margin-bottom: 4px;\n }\n`;\n\nexport const MenuContent = styled.div`\n padding: 8px;\n background: #fff;\n border-radius: 7px;\n margin-top: 70px;\n\n ${props =>\n props.scrolling &&\n css`\n margin-top: -200px;\n `}\n`;\n\nexport const MenuItem = styled.li`\n list-style: none;\n padding: 5px;\n`;\n\nexport const Badge = styled.div`\n font-size: 10px;\n background: linear-gradient(\n 144deg,\n rgba(251, 74, 32, 1) 28%,\n rgba(250, 5, 97, 1) 100%\n );\n\n max-width: 100px;\n padding: 8px;\n min-height: 25px;\n color: #fff;\n border-radius: 15px;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-top: 8px;\n text-align: center;\n font-weight: bold;\n`;\n\nexport const MenuItemBody = styled.div`\n width: 100%;\n max-width: 414px;\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n grid-gap: 1px;\n`;\n\nexport const ProductsArea = styled.div`\n padding-top: 10px;\n display: flex;\n justify-content: center;\n position: relative;\n`;\n\nexport const AddToCart = styled.div`\n width: 113px;\n height: 177px;\n\n margin-bottom: 10px;\n background-color: #f8f9fa;\n border-radius: 7px;\n text-align: center;\n box-shadow: ${props =>\n props.isProductSelected ? '1px 1px 3px #fb4a20' : '1px 1px 3px #33333320'};\n transition: transform 0.7s;\n cursor: pointer;\n`;\nexport const ProductInfo = styled.div`\n height: 65px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n font-family: 'poppins';\n`;\n\nexport const ProductImage = styled.div`\n width: 113px;\n border-radius: 7px 7px 0 0;\n height: 110px;\n\n img {\n object-fit: cover;\n width: 113px;\n border-radius: 7px 7px 0 0;\n height: 110px;\n }\n /* background-image: url(${props => props.link});\n background-position: center; //centraliza imagem\n background-size: cover; //imagem cobre toda área do div */\n`;\n\nexport const ProductPrice = styled.span`\n font-weight: 12px;\n font-size: 12px;\n`;\n\nexport const ProductName = styled.span`\n font-weight: bold;\n font-size: 14px;\n\n line-height: 15px;\n`;\n\nexport const ButtonGoToCart = styled.div`\n width: 58px;\n height: 58px;\n display: flex;\n justify-content: center;\n align-items: center;\n background: #ff2129;\n border-radius: 50%;\n margin-bottom: 25px;\n position: relative;\n cursor: pointer;\n`;\n\nexport const CountBadge = styled(NotificationBadge)`\n position: absolute;\n top: 0;\n left: 45px;\n font-size: 12px;\n font-weight: bold;\n font-family: Arial, Helvetica, sans-serif;\n background: #fff;\n width: 22px;\n height: 22px;\n color: rgba(251, 74, 32, 1);\n border: 1px solid rgba(251, 74, 32, 1);\n border-radius: 15px;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const MenuItemHeader = styled.div`\n height: 90px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: #fff;\n border-radius: 28px;\n padding: 5px;\n margin-top: 10px;\n\n span {\n margin-left: 8px;\n }\n strong {\n font-weight: 700;\n margin-left: 8px;\n }\n`;\n\nexport const MenuItemDescription = styled.div`\n width: 190px;\n margin-left: 8px;\n color: #333;\n strong {\n font-weight: 900;\n }\n p {\n font-size: 14px;\n margin-top: 5px;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ${props =>\n props.disable === 'true' &&\n css`\n filter: opacity(30%);\n `}\n`;\n\nexport const MenuItemPrice = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n color: #333;\n p {\n font-size: 14px;\n font-weight: 900;\n font-family: Arial, Helvetica, sans-serif;\n }\n`;\n\nexport const ButtonAction = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding-bottom: 25px;\n`;\n\nexport const MenuItemPromotion = styled.p`\n color: red;\n text-decoration: line-through;\n\n filter: opacity(60%);\n`;\n\nexport const SoldOff = styled.div`\n color: red;\n font-size: 14px;\n font-weight: bold;\n\n margin-top: 8px;\n`;\n\nexport const ModalTitle = styled.div`\n p {\n text-align: left;\n font-weight: bold;\n }\n`;\n\nexport const ModalFooter = styled.div`\n width: 100%;\n margin-top: 16px;\n padding-top: 8px;\n border-top: 1px solid #33333310;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const ConfirmButton = styled.button`\n display: flex;\n align-items: center;\n padding: 7px;\n font-size: 14px;\n color: #fff;\n background: #4ceb5b;\n border: none;\n border-radius: 7px;\n margin-right: 8px;\n`;\n\nexport const RestaurantClosed = styled.div`\n position: fixed;\n width: 100%;\n max-width: 410px;\n height: 30px;\n top: 113px;\n background-color: rgba(251, 74, 32, 1);\n display: flex;\n justify-content: center;\n align-items: center;\n\n p {\n text-align: center;\n color: #fff;\n }\n`;\n\nexport const Finder = styled.form`\n background: #fff;\n width: 100%;\n max-width: 410px;\n height: 54px;\n position: fixed;\n top: 110px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n input {\n border: 1px solid rgba(251, 74, 32, 1);\n border-radius: 7px;\n text-align: center;\n height: 32px;\n\n &::placeholder {\n font-size: 12px;\n text-align: center;\n }\n }\n\n button {\n width: 50px;\n height: 32px;\n margin-left: 4px;\n border: none;\n border-radius: 7px;\n font-size: 12px;\n color: #fff;\n background: linear-gradient(\n 144deg,\n rgba(251, 74, 32, 1) 28%,\n rgba(250, 5, 97, 1) 100%\n );\n }\n`;\nexport const StartingPrice = styled.span`\n font-weight: bold;\n font-size: 12px;\n color: #adadad;\n`;\n\nexport const SearchBar = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 60px;\n width: 100%;\n margin-top: 8px;\n\n position: relative;\n\n svg {\n color: #ff2b3a90;\n position: absolute;\n left: 20px;\n }\n\n input {\n width: 95%;\n padding: 10px 15px;\n border-radius: 7px;\n border: 1px solid #d9d9d9;\n position: relative;\n color: #666666;\n padding-left: 40px;\n ::placeholder {\n color: #666666;\n }\n padding-left: 40px;\n }\n`;\n","import styled from 'styled-components';\nimport { Modal } from 'reactstrap';\nexport const Container = styled.div`\n margin: 0 auto;\n background: #fff;\n width: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n`;\n\n\nexport const SearchBar = styled.div`\n display: block;\n justify-content: flex-start;\n align-items: center;\n height: 40px;\n\n position: relative;\n margin-top: 10px;\n width: 100%;\n\n svg {\n color: #d3d3d3;\n }\n\n input {\n width: 100%;\n font-size: 12px;\n background: #fff;\n color: #4d4d4c;\n border: 2px solid #d3d3d3;\n margin-top: -10px;\n border-radius: 7px;\n padding: 8px;\n padding-left: 28px;\n ::placeholder {\n color: #4d4d4c;\n }\n }\n`;\n\nexport const ButtonSearchInput = styled.div`\n background: transparent;\n border: none;\n\n border-radius: 8px;\n position: absolute;\n left: 8px;\n bottom: 14px;\n`;\n\nexport const ButtonDeleteInput = styled.button`\n background: transparent;\n border: none;\n\n border-radius: 8px;\n position: absolute;\n right: 20px;\n bottom: 12px;\n`;\n\n\nexport const ModalStyled = styled(Modal)`\n background: #fff;\n top: 6%;\n left: 50%;\n right: auto;\n bottom: auto;\n margin-right: -50%;\n transform: translate(-50%, -50%);\n border-radius: 7px;\n position: fixed;\n z-index: 1062;\n overflow-x: hidden;\n overflow-y: auto;\n outline: 0;\n width: 95%;\n\n animation-name: transtion;\n animation-duration: 0.5s;\n\n @keyframes transtion {\n 0% {left: -50%}\n 100% {left: 50%}\n}\n`\n\nexport const Content = styled.div`\n width: 100%;\n max-width: 414px;\n height: 100%;\nposition: relative ;\n display: flex;\n flex-direction: column;\n /* padding-bottom: 65px; */\n\n a {\n text-decoration: none;\n color: #fb4a20;\n display: flex;\n align-items: center;\n margin-bottom: 10px;\n font-weight: 700;\n }\n`;\n\nexport const Footer = styled.footer`\n height: 58px;\nbackground-color: #fff ;\n position: fixed;\n bottom: 0px;\n width: 100%;\n\n button {\n margin-left: 20px;\n width: 90%;\n max-width: 410px;\nborder-radius: 24px ;\n height: 48px;\n background: #FF2c3A;\n color: #fff;\n font-weight: bold;\n border: none;\n\n span {\n font-family: Arial, Helvetica, sans-serif;\n font-weight: bold;\n margin-left: 8px;\n margin-top: 3px;\n }\n }\n`;\n\nexport const ProductName = styled.h1`\n margin-top: 30px;\n`;\n\nexport const CloseButton = styled.button`\n position: absolute;\n top: 10px;\n left: 10px;\n width: 30px;\n height: 30px;\n border-radius: 50%;\n background-color: #fff;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border: none;\n`;\n\nexport const ImageProduct = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #fff;\n margin-top: -5px;\n\n overflow: hidden;\n\n max-width: 410px;\n height: 250px;\n\n img {\n width: 100%;\n }\n`;\n\nexport const DescriptionProduct = styled.div`\n margin-top: 8px;\n padding: 10px;\n padding-bottom: 0;\n\n h1 {\n font-size: 18px;\n font-weight: 700;\n }\n\n span {\n font-size: 14px;\n }\n`;\n\nexport const AddItemsProduct = styled.div`\n padding-right: 10px;\n padding-left: 10px;\n\n padding-bottom: 35px;\n div {\n li {\n width: 100%;\n\n display: flex;\n justify-content: space-between;\n\n padding-bottom: 10px;\n padding-right: 10px;\n padding-left: 10px;\n\n align-items: center;\n\n & + li {\n border-top: 1px solid #33333320;\n padding-top: 10px;\n }\n }\n }\n`;\n\nexport const EditAction = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-left: 10px ;\n padding-right: 10px ;\n\n span {\n font-size: 14px;\n font-weight: 600;\n color: #333;\n }\n`;\n\nexport const EditActionButtons = styled.div`\n width: 100px;\n\n justify-content: space-around;\n align-items: center !important;\n display: flex;\n color: #fb4a20;\n font-size: 20px;\n font-family: Arial, Helvetica, sans-serif;\n\n p {\n margin-left: 10px ;\n margin-right: 10px ;\n }\n\n\n button {\n border: 0;\n background: transparent;\n }\n\n input {\n width: 100px;\n border-radius: 5px;\n padding: 7px 14px;\n border: 1px solid #33333380;\n }\n`;\n\nexport const ComplementsHeaderProduct = styled.div`\n margin-top: 15px;\n background: #f8f8f8;\n border-radius: 7px;\n padding: 8px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n > p {\n font-size: 10px;\n background: #fb4a20;\n color: #fff;\n border-radius: 7px;\n padding: 4px;\n }\n`;\n\nexport const ComplementItem = styled.div`\n width: 100%;\n max-width: 414px;\n display: flex;\n margin-top: 15px;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ComplementItemDescription = styled.div`\n display: flex;\n flex-direction: column;\n text-align: left;\n width: 98%;\n padding-left: 10px;\n`;\n\nexport const ComplementItemDescriptionLimit = styled.span`\n font-size: 12px;\n font-family: Arial, Helvetica, sans-serif;\n color: #fb4a20;\n`;\n\nexport const ComplementItemAmount = styled.div`\n display: flex;\n align-items: center;\n height: 30px;\n\n p {\n margin-right: 10px;\n margin-left: 10px;\n\n color: #fb4a20;\n }\n`;\n\nexport const InformationText = styled.div`\n margin-top: 20px;\n margin-bottom: 35px;\n\n p {\n display: flex;\n align-items: center;\n margin-left: 20px;\n\n svg {\n margin-right: 10px;\n }\n }\n\n input {\n width: 90%;\n max-width: 414px;\n height: 48px;\n\n margin-top: 10px;\n margin-left: 20px;\n text-align: center;\n\n color: #fb4a20;\n border-radius: 5px;\n border: 1px solid #fb4a20cc;\n\n ::placeholder {\n color: #fb4a20cc;\n font-size: 14px;\n }\n }\n`;\n\nexport const ModalTitle = styled.div`\n padding: 20px;\n display:flex;\n justify-content: space-between;\n align-items: center;\n border-radius: 7px;\n background: '#fff';\n span {\n text-align: center;\n font-weight: bold;\n }\n border: 1px solid #FF2C3A;\n\n\n`;\n\n\n\nexport const ModalFooter = styled.div`\n width: 100%;\n margin-top: 16px;\n padding-top: 8px;\n border-top: 1px solid #33333310;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const ConfirmButton = styled.button`\n display: flex;\n align-items: center;\n padding: 14px 10px;\n font-size: 14px;\n color: #fff;\n background: #FF2C3A;\n border: none;\n border-radius: 7px;\n margin-right: 8px;\n font-weight: bold;\n`;\n\nexport const QuestionSubtitle = styled.span`\n font-size: 12px;\n font-family: Arial, Helvetica, sans-serif;\n font-weight: bold;\n`;\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n FiMessageSquare,\n FiAlertCircle,\n FiX,\n FiSearch\n} from 'react-icons/fi';\n\nimport {\n FaExclamationCircle,\n FaMinusCircle,\n FaPlusCircle,\n\n} from 'react-icons/fa';\nimport { useCart } from '../../context/cart';\nimport { useAuth } from '../../context/auth';\nimport fotoPadrao from '../../assets/images/noImage.png';\n\nimport ScrollToTop from '../../components/ScrollToTop';\nimport {\n Container,\n Content,\n ImageProduct,\n DescriptionProduct,\n AddItemsProduct,\n EditAction,\n EditActionButtons,\n ComplementsHeaderProduct,\n ComplementItem,\n ComplementItemDescription,\n ComplementItemAmount,\n InformationText,\n ConfirmButton,\n ModalTitle,\n ModalFooter,\n Footer,\n CloseButton,\n QuestionSubtitle,\n ProductName,\n ModalStyled,\n SearchBar,\n ButtonDeleteInput,\n ButtonSearchInput\n} from './styles';\nimport formatValue from '../../utils/formatValue';\n\n\nconst Product = ({ product, closeFullProductModal, countProducts }) => {\n const { addToCart } = useCart();\n\n const {\n tableType,\n } = useAuth();\n\n // const location = useLocation();\n // const { product } = location.state;\n\n\n const [observation, setObservation] = useState('');\n const [amount, setAmount] = useState(1);\n const [modalPhrase, setModalPhrase] = useState('');\n const [modalAction, setModalAction] = useState([]);\n const [complementsCategory, setComplementsCategory] = useState([]);\n const [mandatoryComplements, setMandatoryComplements] = useState([]);\n const [isProductWeight, setIsProductWeight] = useState(product?.use_weight);\n const [inputProductWeight, setInputProductWeight] = useState(0);\n const [modalIsOpen, setIsOpen] = useState(false);\n const [complementsFiltered, setComplementsFiltered] = useState([]);\n\n\n function adcFilter(key, name) {\n const newFilter = { id: key, nome: name };\n const filtroExistente = complementsFiltered.find(filtro => filtro.id === key);\n\n if (filtroExistente) {\n const novoFiltro = complementsFiltered.map(filtro =>\n filtro.id === key ? newFilter : filtro\n );\n setComplementsFiltered(novoFiltro);\n } else {\n const novoFiltro = [...complementsFiltered, newFilter];\n setComplementsFiltered(novoFiltro);\n }\n }\n\n function deleteValue(complement) {\n const inputElement = document.getElementById(complement?.name);\n inputElement.value = '';\n adcFilter(complement.id, '')\n }\n\n const inputComplementRef = useRef(null);\n\n function toggleModal() {\n setIsOpen(!modalIsOpen);\n }\n\n function closeModal() {\n setIsOpen(false);\n\n if (modalAction.length > 0) {\n modalAction[0]();\n }\n }\n\n\n function openModal(phrase) {\n setIsOpen(true);\n setModalPhrase(phrase);\n }\n\n useEffect(() => {\n const mandatoryPDV = product.complement_categories.filter(item => item.available).filter(\n item =>\n item.complements.filter(compl => compl.available).length > 0 &&\n item.optional === false,\n );\n setMandatoryComplements(mandatoryPDV);\n\n }, [product?.complement_categories, tableType]);\n\n // useEffect(() => {\n // async function fetchData() {\n // try {\n // const res = await api.get('client/bills', {\n // params: { session_key: sessionKey },\n // });\n\n // setTableNumber(res.data.session.table.table_number);\n // } catch (err) {\n // const { error } = err.response.data;\n\n // if (err.response.status === 400) {\n // console.log(error);\n // openModal('Sua conta já foi fechada');\n // setModalAction([\n // () => {\n // logOut();\n // history.push('/');\n // },\n // ]);\n // }\n // }\n // }\n // if (sessionKey && tableType !== 'delivery') {\n // fetchData();\n // }\n // }, [sessionKey, history, logOut]);\n\n function handleAddObservation(e) {\n setObservation(e.target.value);\n }\n\n function increment() {\n setAmount(amount + 1);\n }\n\n function decrement() {\n setAmount(amount - 1);\n }\n\n function handleAddComplements(\n id,\n name,\n price,\n delivery_price,\n limit,\n categoryLimit,\n categoryId,\n categoryAdditional,\n categoryMoreExpensiveOnly,\n minimum,\n useAverage\n ) {\n const categoryFind = mandatoryComplements.findIndex(\n category => category.id === categoryId,\n );\n if (categoryFind >= 0) {\n const complementFind = mandatoryComplements[\n categoryFind\n ].complements.findIndex(item => item.id === id);\n\n if (complementFind >= 0) {\n mandatoryComplements[categoryFind].complements[\n complementFind\n ].checkAmount += 1;\n }\n }\n\n const newCategoryExist = [...complementsCategory];\n const categoryExist = newCategoryExist.findIndex(\n category => category.id === categoryId,\n );\n\n if (categoryExist >= 0) {\n const categoryTotalAmount = complementsCategory[\n categoryExist\n ].complements.reduce((acum, curr) => acum + curr.amount, 0);\n\n const complementExist = newCategoryExist[\n categoryExist\n ].complements.findIndex(complement => complement.id === id);\n\n if (complementExist >= 0) {\n if (categoryTotalAmount < categoryLimit) {\n if (\n newCategoryExist[categoryExist].complements[complementExist]\n .amount < limit\n ) {\n newCategoryExist[categoryExist].complements[\n complementExist\n ].amount += 1;\n newCategoryExist[categoryExist].minimum = minimum;\n } else {\n openModal(\n 'Você só pode adicionar outro complemento ao seu lanche, pois o limite deste complemento foi alcançado.',\n );\n }\n } else {\n openModal('Limite de catgoria');\n }\n } else {\n newCategoryExist[categoryExist].complements.push({\n id,\n name,\n price,\n delivery_price,\n amount: 1,\n });\n newCategoryExist[categoryExist].minimum = minimum;\n }\n\n setComplementsCategory(newCategoryExist);\n } else {\n setComplementsCategory([\n ...complementsCategory,\n {\n id: categoryId,\n additional: categoryAdditional,\n more_expensive_only: categoryMoreExpensiveOnly,\n complements: [{ id, name, price, delivery_price, amount: 1 }],\n minimum,\n use_average: useAverage\n },\n ]);\n }\n }\n\n function handleRemoveComplements(categoryId, complementId) {\n const categoryFind = mandatoryComplements.findIndex(\n category => category.id === categoryId,\n );\n if (categoryFind >= 0) {\n const complementFind = mandatoryComplements[\n categoryFind\n ].complements.findIndex(item => item.id === complementId);\n\n if (complementFind >= 0) {\n mandatoryComplements[categoryFind].complements[\n complementFind\n ].checkAmount -= 1;\n }\n }\n const newCategoryExist = [...complementsCategory];\n const categoryExistId = newCategoryExist.findIndex(\n category => category.id === categoryId,\n );\n\n if (categoryExistId >= 0) {\n const complementExist = newCategoryExist[\n categoryExistId\n ].complements.findIndex(complement => complement.id === complementId);\n\n if (\n newCategoryExist[categoryExistId].complements[complementExist].amount >\n 0\n ) {\n newCategoryExist[categoryExistId].complements[\n complementExist\n ].amount -= 1;\n\n setComplementsCategory(newCategoryExist);\n } else {\n const filteredComplements = newCategoryExist[\n categoryExistId\n ].complements.filter(complement => complement.id !== complementId);\n\n setComplementsCategory(filteredComplements);\n }\n }\n }\n\n let complementMoreExpensive = 0;\n complementsCategory\n .filter(category => category.more_expensive_only === true)\n .forEach(item => {\n let local_price = 0;\n item.complements.forEach(complement => {\n if (local_price < parseFloat(complement.price) * (parseInt(complement.amount) >= 1 ? 1 : 0)) {\n local_price = parseFloat(complement.price) * (parseInt(complement.amount) >= 1 ? 1 : 0);\n }\n });\n complementMoreExpensive += local_price;\n });\n\n const totalComplementsPrice =\n tableType === 'delivery'\n ? complementsCategory\n .filter(\n category =>\n category.additional === true &&\n category.more_expensive_only === false,\n )\n .map(complementCat => {\n if (complementCat.use_average) {\n const amountAverage = complementCat.complements.reduce(\n (accum, curr) => accum + curr.amount,\n 0,\n );\n\n const totalPriceAverage =\n complementCat.complements\n .map(item => item)\n .reduce(\n (acum, curr) =>\n acum + (curr.delivery_price || curr.price) * curr.amount,\n 0,\n ) / amountAverage;\n\n return totalPriceAverage > 0 ? Number(totalPriceAverage) : 0;\n }\n return complementCat.complements\n .map(item => item)\n .reduce(\n (acum, curr) =>\n acum + (curr.delivery_price || curr.price) * curr.amount,\n 0,\n );\n })\n .reduce((acum, curr) => acum + curr, 0) + complementMoreExpensive\n : complementsCategory\n .filter(\n category =>\n category.additional === true &&\n category.more_expensive_only === false,\n )\n\n .map(complementCat => {\n if (complementCat.use_average) {\n const amountAverage = complementCat.complements.reduce(\n (accum, curr) => accum + curr.amount,\n 0,\n );\n\n const totalPriceAverage =\n complementCat.complements\n .map(item => item)\n .reduce((acum, curr) => acum + curr.price * curr.amount, 0) /\n amountAverage;\n\n return totalPriceAverage > 0 ? Number(totalPriceAverage) : 0;\n }\n return complementCat.complements\n .map(item => item)\n .reduce((acum, curr) => acum + curr.price * curr.amount, 0);\n })\n .reduce((acum, curr) => acum + curr, 0) + complementMoreExpensive;\n\n function totalCategoryComplementsAmount(categoryId) {\n const total = complementsCategory\n .filter(category => category.id === categoryId)\n .map(item =>\n item.complements.reduce((acum, curr) => acum + curr.amount, 0),\n );\n\n return total;\n }\n\n const check = [];\n\n for (const cat of mandatoryComplements) {\n const category = cat.complements.reduce(\n (acum, curr) => acum + curr.checkAmount,\n 0,\n );\n\n check.push(category);\n }\n\n function deleteCheckAmount() {\n mandatoryComplements.map(item =>\n item.complements.map(compl => (compl.checkAmount = 0)),\n );\n }\n\n function addToCarts() {\n if (isProductWeight) {\n if (inputProductWeight) {\n if (mandatoryComplements.length > 0) {\n const checkedMandatoryComplements = check.reduce(\n (acum, curr) => acum && curr > 0,\n );\n\n const hasMinimum = complementsCategory.filter(\n item => item.minimum > 0,\n );\n\n const minimumCheck = complementsCategory.map(category => {\n const complementsAmountSum = category.complements.reduce(\n (acum, curr) => curr.amount + acum,\n 0,\n );\n\n return category.minimum > 1\n ? category.minimum <= complementsAmountSum\n : true;\n });\n\n if (hasMinimum) {\n if (minimumCheck.every(item => item === true)) {\n if (checkedMandatoryComplements) {\n addToCart({\n product,\n amount,\n observation,\n complementsCategory,\n isProductWeight,\n inputProductWeight,\n });\n closeFullProductModal()\n // history.push(`/menu`);\n // closeProductModal();\n countProducts({ id: product.id, amount: amount })\n deleteCheckAmount();\n } else {\n openModal('Favor adicionar todos os complementos obrigatórios');\n }\n } else {\n openModal('Favor adicionar a quantidade mínima de complementos');\n }\n } else if (checkedMandatoryComplements) {\n addToCart({\n product,\n amount,\n observation,\n complementsCategory,\n isProductWeight,\n inputProductWeight,\n });\n closeFullProductModal()\n // history.push(`/menu`);\n // closeProductModal();\n countProducts({ id: product.id, amount: amount })\n deleteCheckAmount();\n } else {\n openModal('Favor adicionar todos os complementos obrigatórios');\n }\n } else {\n const hasMinimum = complementsCategory.filter(\n item => item.minimum > 1,\n );\n\n const minimumCheck = complementsCategory.map(category => {\n const complementsAmountSum = category.complements.reduce(\n (acum, curr) => curr.amount + acum,\n 0,\n );\n\n return category.minimum > 1\n ? category.minimum <= complementsAmountSum\n : true;\n });\n\n if (hasMinimum) {\n if (minimumCheck.every(item => item === true)) {\n addToCart({\n product,\n amount,\n observation,\n complementsCategory,\n isProductWeight,\n inputProductWeight,\n });\n closeFullProductModal()\n // history.push(`/menu`);\n // closeProductModal();\n countProducts({ id: product.id, amount: amount })\n deleteCheckAmount();\n } else {\n openModal('Favor adicionar a quantidade mínima de complementos');\n }\n } else {\n addToCart({\n product,\n amount,\n observation,\n complementsCategory,\n isProductWeight,\n inputProductWeight,\n });\n closeFullProductModal()\n\n // history.push(`/menu`);\n // closeProductModal();\n countProducts({ id: product.id, amount: amount })\n deleteCheckAmount();\n }\n }\n } else {\n openModal('Favor informar o peso do produto.');\n }\n } else if (mandatoryComplements.length > 0) {\n const checkedMandatoryComplements = check.reduce(\n (acum, curr) => acum && curr > 0,\n );\n\n const hasMinimum = complementsCategory.filter(item => item.minimum > 0);\n\n const minimumCheck = complementsCategory.map(category => {\n const complementsAmountSum = category.complements.reduce(\n (acum, curr) => curr.amount + acum,\n 0,\n );\n\n return category.minimum > 1\n ? category.minimum <= complementsAmountSum\n : true;\n });\n\n if (hasMinimum) {\n if (minimumCheck.every(item => item === true)) {\n if (checkedMandatoryComplements) {\n addToCart({\n product,\n amount,\n observation,\n complementsCategory,\n });\n // history.push(`/menu`);\n countProducts({ id: product.id, amount: amount })\n closeFullProductModal()\n deleteCheckAmount();\n // closeProductModal();\n } else {\n openModal('Favor adicionar todos os complementos obrigatórios');\n }\n } else {\n openModal('Favor adicionar a quantidade mínima de complementos');\n }\n } else if (checkedMandatoryComplements) {\n addToCart({\n product,\n amount,\n observation,\n complementsCategory,\n });\n countProducts({ id: product.id, amount: amount })\n deleteCheckAmount();\n } else {\n openModal('Favor adicionar todos os complementos obrigatórios');\n }\n } else {\n const hasMinimum = complementsCategory.filter(item => item.minimum > 1);\n\n const minimumCheck = complementsCategory.map(category => {\n const complementsAmountSum = category.complements.reduce(\n (acum, curr) => curr.amount + acum,\n 0,\n );\n\n return category.minimum > 1\n ? category.minimum <= complementsAmountSum\n : true;\n });\n\n if (hasMinimum) {\n if (minimumCheck.every(item => item === true)) {\n addToCart({\n product,\n amount,\n observation,\n complementsCategory,\n });\n // history.push(`/menu`);\n closeFullProductModal()\n countProducts({ id: product.id, amount: amount })\n deleteCheckAmount();\n // closeProductModal();\n } else {\n openModal('Favor adicionar a quantidade mínima de complementos');\n }\n } else {\n addToCart({\n product,\n amount,\n observation,\n complementsCategory,\n });\n closeFullProductModal()\n // history.push(`/menu`);\n // closeProductModal();\n countProducts({ id: product.id, amount: amount })\n deleteCheckAmount();\n }\n }\n }\n\n function handleChangeProductWeight(e) {\n setInputProductWeight(e.target.value);\n }\n\n\n return (\n\n \n \n \n \n \n \n {modalPhrase}\n OK\n \n \n\n \n \n \n\n {product.image && (\n \n {product.description}\n \n )}\n\n \n {!product.image ? (\n {product.name}\n ) : (\n

{product.name}

\n )}\n\n {product.description}\n
\n\n \n
\n \n {isProductWeight.toString() === 'true' ? (\n Peso do Produto (kg)\n ) : (\n Quantidade\n )}\n \n {isProductWeight ? (\n {\n handleChangeProductWeight(e);\n }}\n />\n ) : (\n
\n {!product?.is_unitary && ()}\n

{amount}

\n\n {!product?.is_unitary && (\n \n )}\n\n
\n )}\n
\n
\n\n {product.complement_categories\n .filter(categ => categ.available)\n .filter(item =>\n item.complements.filter(compl => compl.available).length > 0\n )\n .map(complement => (\n\n\n \n\n \n
\n
{complement.question}
\n {complement.complements.length > 10 && (\n \n {\n adcFilter(complement.id, e.target.value)\n }\n }\n id={complement?.name}\n ref={inputComplementRef}\n />\n\n \n \n \n {\n deleteValue(complement);\n }}\n >\n \n \n \n )}\n {complement.limit > complement.minimum && (\n <>\n {complement.minimum > 1 ? (\n \n {`Escolha entre ${complement.minimum} e ${complement.limit\n }\n ${complement.limit > 1 ? ' itens' : ' item'} no total.`}\n {complement.more_expensive_only && (\n
\n Apenas o valor do complemento mais caro será\n cobrado\n
\n )}\n
\n ) : (\n \n {`Escolha até ${complement.limit} ${complement.limit > 1 ? ' itens' : ' item'\n } no total.`}\n {complement.more_expensive_only && (\n
\n Apenas o valor do complemento mais caro será\n cobrado\n
\n )}\n
\n )}\n \n )}\n\n {complement.limit < complement.minimum && (\n <>\n {complement.minimum > 1 ? (\n \n {`Escolha ${complement.minimum\n } ${complement.limit > 1 ? ' itens' : ' item'\n } no mínimo.`}\n {complement.more_expensive_only && (\n
\n Apenas o valor do complemento mais caro será\n cobrado\n
\n )}\n
\n ) : (\n \n {`Escolha até ${complement.limit} ${complement.limit > 1 ? ' itens' : ' item'\n } no total.`}\n {complement.more_expensive_only && (\n
\n Apenas o valor do complemento mais caro será\n cobrado\n
\n )}\n
\n )}\n \n )}\n\n {complement.limit === complement.minimum && (\n <>\n {complement.minimum > 1 ? (\n \n {`Escolha ${complement.minimum} ${complement.limit > 1 ? ' itens' : ' item'\n } no total.`}\n {complement.more_expensive_only && (\n
\n Apenas o valor do complemento mais caro será\n cobrado\n
\n )}\n
\n ) : (\n \n {`Escolha até ${complement.limit} ${complement.limit > 1 ? ' itens' : ' item'\n } no total.`}\n {complement.more_expensive_only && (\n
\n Apenas o valor do complemento mais caro será\n cobrado\n
\n )}\n
\n )}\n \n )}\n
\n\n {complement.optional !== true &&

Obrigatório

}\n
\n \n\n {complement.complements.length > 10 ? (\n complement.complements\n .filter(comp => comp.available)\n .filter(item => {\n const filterFound = complementsFiltered.find(ft => ft.id === complement.id && ft.nome.length > 3);\n return filterFound ? item.name.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').includes(filterFound.nome.toLowerCase()) : item;\n })\n .map(item => (\n
  • \n {item.image && (\n \n )}\n \n \n {item.name}\n \n {item.description && (\n \n {item.description}\n \n )}\n {(Number(item.price) > 0) &\n (complement.additional === true) ? (\n \n + {formatValue(item.price)}\n \n ) : null}\n\n\n \n\n \n {complementsCategory\n .filter(category => category.id === complement.id)\n .map(cat =>\n cat.complements\n .filter(\n complement => complement.id === item.id,\n )\n .map(filtered => {\n if (filtered.amount >= 1) {\n return (\n \n {\n handleRemoveComplements(\n complement.id,\n item.id,\n );\n }}\n />\n \n {filtered.amount}\n

    \n
    \n );\n }\n return '';\n }),\n )}\n\n {totalCategoryComplementsAmount(complement.id) <\n complement.limit && (\n {\n handleAddComplements(\n item.id,\n item.name,\n item.price,\n item.delivery_price,\n item.limit,\n complement.limit,\n complement.id,\n complement.additional,\n complement.more_expensive_only,\n complement.minimum,\n complement.use_average,\n );\n }}\n />\n )}\n
    \n
  • \n ))) : (complement.complements\n .filter(comp => comp.available)\n .map(item => (\n
  • \n {item.image && (\n \n )}\n \n \n {item.name}\n \n {item.description && (\n \n {item.description}\n \n )}\n {(Number(item.price) > 0) &\n (complement.additional === true) ? (\n \n + {formatValue(item.price)}\n \n ) : null}\n\n\n \n\n \n {complementsCategory\n .filter(category => category.id === complement.id)\n .map(cat =>\n cat.complements\n .filter(\n complement => complement.id === item.id,\n )\n .map(filtered => {\n if (filtered.amount >= 1) {\n return (\n \n {\n handleRemoveComplements(\n complement.id,\n item.id,\n );\n }}\n />\n \n {filtered.amount}\n

    \n
    \n );\n }\n return '';\n }),\n )}\n\n {totalCategoryComplementsAmount(complement.id) <\n complement.limit && (\n {\n handleAddComplements(\n item.id,\n item.name,\n item.price,\n item.delivery_price,\n item.limit,\n complement.limit,\n complement.id,\n complement.additional,\n complement.more_expensive_only,\n complement.minimum,\n complement.use_average,\n );\n }}\n />\n )}\n
    \n
  • \n )))}\n
    \n
    \n\n\n\n ))}\n\n \n

    \n \n Quer fazer alguma observação?\n

    \n {\n handleAddObservation(e);\n }}\n maxLength=\"150\"\n />\n
    \n
    \n
    \n\n
    \n {product.sold_off ? (\n \n ) : (\n \n )}\n
    \n\n
    \n
    \n );\n\n};\n\nexport default Product;\n","import styled, { css } from 'styled-components';\nimport { Link } from 'react-router-dom';\nimport { shade } from 'polished';\nimport NumberFormat from 'react-number-format';\n\nexport const Container = styled.div`\n margin: 0 auto;\n background: #fff;\n\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const HeaderAction = styled.div`\n width: 100%;\n max-width: 410px;\n\n padding: 10px;\n\n position: fixed;\n top: 0;\n\n background: #fff;\n border-bottom: 1px solid #f8f8f8;\n\n header {\n color: #000;\n font-weight: bold;\n\n h1 {\n color: #000;\n font-weight: bold;\n }\n }\n`;\nexport const ButtonEditPeople = styled.button`\n background-color: transparent;\n border: none;\n margin-top: 20px;\n span {\n color: #666666;\n text-decoration: underline;\n font-weight: bold;\n }\n`;\nexport const Nav = styled.nav`\n width: 100%;\n max-width: 410px;\n\n position: fixed;\n top: 94px;\n margin-left: 16px;\n\n display: flex;\n justify-content: center;\n\n li {\n display: inline-flex;\n list-style: none;\n margin-right: 24px;\n color: #fb4a20;\n font-weight: bold;\n font-size: 14px;\n cursor: pointer;\n\n & + li {\n border-left: 1px solid #fb4a2070;\n padding-left: 24px;\n }\n\n &:hover {\n text-decoration: underline;\n }\n svg {\n margin-right: 4px;\n }\n }\n`;\n\nexport const Content = styled.div`\n width: 100%;\n max-width: 414px;\n height: 50px;\n display: flex;\n flex-direction: column;\n padding-bottom: 65px;\n margin-top: 65px;\n\n header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n h1 {\n font-size: 24px;\n font-weight: bold;\n }\n\n a {\n color: #33333370;\n font-size: 12px;\n font-weight: 900;\n }\n }\n`;\n\nexport const MenuContent = styled.div`\n background: #fff;\n border-radius: 7px;\n padding-bottom: 170px;\n`;\n\nexport const RouterDomLink = styled(Link)`\n display: flex;\n align-items: center;\n text-decoration: none;\n color: ${shade(0.1, '#333333')};\n`;\n\nexport const NumberFormatStyled = styled(NumberFormat)`\n text-align: center;\n height: 32px;\n width: calc(100% - 54px);\n max-width: 130px;\n min-width: 120px;\n padding: 2px;\n border-radius: 8px;\n border: 1px solid #bfbfbf;\n &:focus {\n border: 1px solid #656565;\n border-radius: 8px;\n }\n`;\n\nexport const PeopleArea = styled.div`\n color: #666666;\n margin-top: 20px;\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nexport const SubmitStyledButton = styled.button`\n height: 32px;\n width: 32px;\n border-radius: 8px;\n border: none;\n margin-left: 8px;\n padding: 8px;\n align-items: center;\n\n background-color: #0ccab4;\n\n svg {\n color: #fff;\n }\n &:disabled {\n pointer-events: none;\n cursor: not-allowed;\n background-color: transparent;\n border: 1px solid #bfbfbf;\n svg {\n filter: opacity(0.3);\n color: #333;\n }\n }\n`;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n margin: 0 auto;\n background: #fff;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const Content = styled.div`\n width: 100%;\n max-width: 410px;\n\n padding: 10px;\n\n display: flex;\n flex-direction: column;\n padding-bottom: 35px;\n\n padding-top: 0px;\n\n header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n h1 {\n font-size: 24px;\n font-weight: bold;\n }\n\n a {\n color: #fb4a20;\n font-size: 12px;\n font-weight: 900;\n }\n }\n`;\n\nexport const MenuContent = styled.div`\n border-radius: 7px;\n padding-bottom: 130px;\n`;\n\nexport const MenuItem = styled.li`\n width: 100%;\n max-width: 410px;\n\n padding-top: 15px;\n\n list-style: none;\n\n div {\n font-family: Arial, Helvetica, sans-serif;\n }\n`;\n\nexport const Footer = styled.footer`\n width: 100%;\n max-width: 410px;\n\n padding-right: 30px;\n padding-left: 10px ;\n\n\n background: #fff;\n border-top: 1px solid #f8f8f8;\n position: fixed;\n bottom: 10px;\n\n\n\n\n input {\n border-radius: 24px;\n text-align: center;\n height: 48px;\n color: #ff2c19;\n\n border: 1px solid #fb4a20cc;\n\n ::placeholder {\n color: #ff2c1990;\n\n }\n }\n`;\n\nexport const ButtonsArea = styled.div`\n display: flex;\n justify-content: space-between;\n`\n\nexport const ButtonOutline = styled.button`\n width: 90px;\n height: 50px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-size: 12px;\n text-decoration: none;\n border: none;\n border-radius: 100px;\n color: #333;\n background: transparent;\n svg {\n margin-bottom: 4px;\n }\n`;\n\nexport const ModalFooter = styled.div`\n width: 100%;\n margin-top: 16px;\n padding-top: 8px;\n border-top: 1px solid #33333310;\n display: flex;\n justify-content: space-between;\n`;\n\nexport const ConfirmButton = styled.button`\n display: flex;\n align-items: center;\n padding: 7px;\n font-size: 14px;\n color: #fff;\n background: #2EC9B7;\n border: none;\n border-radius: 7px;\n margin-right: 8px;\n`;\n\nexport const CancelButton = styled.button`\n display: flex;\n align-items: center;\n padding: 7px;\n font-size: 14px;\n color: #fff;\n background: #FF1F2B;\n border: none;\n border-radius: 7px;\n margin-right: 8px;\n`;\n\nexport const PrintButton = styled.button`\n width: 40px;\n height: 40px;\n display: flex;\n\n justify-content: center;\n align-items: center;\n margin-right: 8px;\n margin-left: 8px;\n\n border: 1px solid #FF1F2B;\n border-radius: 5px;\n color: #333;\n background: transparent;\n\n\n svg{\n margin: 0\n }\n\n`;\n\nexport const ClosingButton = styled.button`\n width: 180px;\n height: 48px;\n background: #FF2B3A;\n color: #fff;\n border-radius: 24px;\n border: none;\n font-weight: bold;\n font-size: 16px;\n`\n\nexport const ButtonActionToCart = styled.button`\n background: transparent;\n border: none;\n`;\n\nexport const CartDescription = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 38px;\n\n strong {\n font-size: 20px;\n font-weight: 700;\n }\n\n p {\n font-size: 14px;\n }\n`;\n\nexport const ItemListHeader = styled.div`\n color: #333;\n font-size: 14px;\n\n > div {\n display: flex;\n justify-content: space-between;\n }\n`;\n\nexport const MenuItemHeader = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #F8F8F7;\n border-radius: 7px;\n padding: 5px;\n margin-top: 8px;\n\n > div {\n display: flex;\n align-items: center;\n font-size: 16px;\n font-weight: bold;\n color: #4D4D4C;\n\n\n }\n\n strong {\n font-weight: 700;\n }\n`;\n\nexport const Orders = styled.div`\n\n\n ul {\n width: 100%;\n max-width: 410px;\n li {\n list-style: none;\n display: flex;\n justify-content: space-between;\n\n > div {\n display: flex;\n\n > div {\n display: flex;\n margin-left: 8px;\n }\n\n p {\n margin-right: 8px;\n margin-top: 8px;\n }\n }\n\n p {\n font-size: 14px;\n }\n }\n }\n`;\n\nexport const MenuItemBody = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-top: 14px;\n margin-bottom: 14px;\n\n .bill_finished {\n color: red;\n text-decoration: line-through;\n }\n\n ul {\n li {\n p {\n display: flex;\n align-items: flex-end;\n }\n > div {\n > p {\n margin-right: 16px;\n }\n }\n }\n }\n`;\n\nexport const MenuItemProducts = styled.div``;\n\nexport const ServiceTax = styled.div`\n > div {\n display: flex;\n justify-content: space-between;\n margin-top: 8px;\n\n p {\n font-size: 14px;\n }\n }\n`;\n\nexport const DescriptionText = styled.p`\n font-size: 14px;\n line-height: 20px;\n`;\n\nexport const PriceTextArea = styled.p`\ndisplay: flex;\nalign-items: center;\nmargin-bottom: 20px;\n\n`;\n\nexport const PriceTotalText = styled.span`\n\n font-size: 18px;\n color: #666666;\n font-weight: 500;\n\n`;\n\nexport const PriceText = styled.span`\nmargin-left: 8px;\n font-size: 27px;\n color: #ff2c19;\n font-weight: 500;\n\n`;\n","import { format, parseISO } from 'date-fns';\nimport pt from 'date-fns/locale/pt';\n\nexport default function formatTime(date) {\n return format(parseISO(date), 'HH:mm', {\n locale: pt,\n });\n}\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 20px;\n`;\n\nexport const TextRegular = styled.p`\n margin-top: 0;!important;\n color: #3D3D3D;\n font-family: 'Poppins';\n font-size: 14px;\n`;\n\nexport const TextSemiBold = styled.p`\n margin-top: 0;\n color: #3D3D3D;\n font-family: 'Poppins';\n font-weight: 600;\n font-size: 14px;\n`;\n\nexport const ButtonsContainer = styled.div`\n align-items: center;\n display: flex;\n flex-direction: row;\n gap: 10px;\n justify-content: space-between;\n`;\n\nexport const DropdownContainer = styled.select`\n width: 100%;\n background-color: #fff;\n border-color: #CDCDCD;\n border-radius: 10px;\n border-width: 1px;\n height: 40px;\n padding: 10px 20px;\n`;\n\nexport const DropdownText = styled.p`\n color: #6C6C6C;\n font-family: 'Poppins';\n font-size: 14px;\n`;\n\nexport const CancelButton = styled.button`\n width: 100%;\n align-items: center;\n background-color: #FF2C3A;\n border-radius: 100px;\n color: #fff;\n font-family: 'Poppins';\n font-size: 14px;\n height: 40px;\n justify-content: center;\n padding: 5px 20px;\n border: none;\n`;","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 20px;\n`;\n\nexport const Input = styled.input`\n width: 100%;\n background-color: #fff;\n border: 1px solid #CDCDCD;\n border-radius: 10px;\n font-family: 'Poppins';\n font-size: 12px;\n padding: 10px 20px;\n`;\n\nexport const TextMedium = styled.p`\n color: #3D3D3D;\n font-family: 'Poppins';\n font-weight: 500;\n font-size: 14px;\n`;\n\nexport const ButtonContainer = styled.div`\n align-items: center;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n`;\n\nexport const Button = styled.button`\n align-items: center;\n font-family: 'Poppins';\n border-radius: 100px;\n height: 40px;\n justify-content: center;\n padding: 5px 20px;\n`;\n\nexport const CancelButton = styled(Button)`\n background-color: transparent;\n border: 1px solid #FF2C3A;\n p {\n color: #FF2C3A;\n }\n`;\n\nexport const ConfirmButton = styled(Button)`\n background-color: ${({ disabled }) => disabled ? '#f5f5f5' : '#2EC9B7' };\n cursor: ${({ disabled }) => disabled ? 'not-allowed' : 'pointer' };\n border: none;\n`;\n\nexport const ConfirmText = styled.p`\n color: #fff;\n font-family: 'Poppins';\n font-size: 14px;\n font-weight: 500;\n`;","import React, { useEffect, useState } from 'react';\nimport { Wrapper, TextMedium, Input, ButtonContainer, CancelButton, ConfirmButton, ConfirmText } from './styles';\nimport api from '../../../services/api';\nimport { useAuth } from '../../../context/auth';\n\nconst ConfirmCancelComponent = ({ setModalVisible, order_id, order_basket_id, new_amount, setCancelationModalVisible, fetchData }) => {\n const { userToken } = useAuth();\n\n const [confirmDisabled, setConfirmDisabled] = useState(true);\n const [password, setPassword] = useState('');\n const [justification, setJustification] = useState('');\n const [orderBasketAmount, setOrderBasketAmount] = useState(null);\n\n useEffect(() => {\n api.get(`waiter/basket-orders/${order_basket_id}`, {\n headers: {\n 'Authorization': `Bearer ${userToken}`,\n },\n }).then((response) => {\n console.log('asdf', response.data)\n setOrderBasketAmount(response.data.length);\n setConfirmDisabled(false);\n }).catch((error) => {\n console.error('Error fetching order basket amount:', error);\n alert('Erro ao buscar quantidade de itens do pedido\\nPor favor, tente novamente');\n });\n }, [order_basket_id, userToken]);\n\n const confirmCancel = async () => {\n setConfirmDisabled(true);\n if (new_amount === 0) {\n if (orderBasketAmount === 1) {\n api.put(`waiter/orders/cancel/${order_basket_id}`, {\n order_cancel_password: password,\n cancel_reason: justification,\n from_gm: true,\n }, {\n headers: {\n 'Authorization': `Bearer ${userToken}`,\n },\n }).then((response) => {\n console.log('response', 'Item cancelado com sucesso');\n fetchData();\n setModalVisible(false);\n setCancelationModalVisible(false);\n }).catch((error) => {\n console.log('Error canceling item:', error);\n if (error.response.data.message) {\n alert(`Erro: ${error.response.data.message}`);\n } else {\n alert('Erro: Algum erro inesperado ocorreu ao cancelar o item');\n }\n }).finally(() => {\n setConfirmDisabled(false);\n });\n } else if (orderBasketAmount > 1) {\n api.delete(`waiter/orders/basket/${order_basket_id}/item/${order_id}`, {\n headers: {\n 'Authorization': `Bearer ${userToken}`,\n },\n data: {\n order_cancel_password: password,\n cancel_reason: justification,\n from_gm: true,\n },\n }).then((response) => {\n console.log('response', 'Item cancelado com sucesso');\n fetchData();\n setModalVisible(false);\n setCancelationModalVisible(false);\n }).catch((error) => {\n console.log('Error canceling item:', error);\n if (error.response.data.message) {\n alert(`Erro: ${error.response.data.message}`);\n } else {\n alert('Erro: Algum erro inesperado ocorreu ao cancelar o item');\n }\n }).finally(() => {\n setConfirmDisabled(false);\n });\n }\n\n } else if (new_amount > 0) {\n api.put(`waiter/orders/basket/${order_basket_id}/item/${order_id}/${new_amount}`, {\n order_cancel_password: password,\n cancel_reason: justification,\n from_gm: true,\n }, {\n headers: {\n 'Authorization': `Bearer ${userToken}`,\n },\n }).then((response) => {\n console.log('response', 'Item cancelado com sucesso');\n fetchData();\n setModalVisible(false);\n setCancelationModalVisible(false);\n }).catch((error) => {\n console.log('Error canceling item:', error);\n if (error.response.data.message) {\n alert(`Erro: ${error.response.data.message}`);\n } else {\n alert('Erro: Algum erro inesperado ocorreu ao cancelar o item');\n }\n }).finally(() => {\n setConfirmDisabled(false);\n });\n } else {\n setConfirmDisabled(false);\n alert('Erro: Quantidade inválida');\n }\n };\n\n return (\n \n
    \n Senha de cancelamento\n setPassword(e.target.value)}\n />\n
    \n
    \n Justificativa\n setJustification(e.target.value)}\n />\n
    \n \n setModalVisible(false)}>\n Sair\n \n \n Confirmar\n \n \n
    \n );\n};\n\nexport default ConfirmCancelComponent;\n","import styled from 'styled-components';\n\nexport const Overlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 2;\n`;\n\nexport const ModalWrapper = styled.div`\n background-color: white;\n border-radius: 5px;\n box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.16);\n padding: 20px;\n width: 300px;\n`;\n\nexport const Header = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n h2 {\n font-size: 16px;\n font-family: Poppins;\n color: #3d3d3d;\n font-weight: 700;\n }\n`;\n\nexport const CloseButton = styled.button`\n background: none;\n border: none;\n cursor: pointer;\n font-size: 20px;\n`;","import React, { useRef } from \"react\";\nimport { Header, ModalWrapper, Overlay, CloseButton } from \"./styles\";\nimport { FiX } from \"react-icons/fi\";\n\nconst ModalComponent = ({ modalVisible, setModalVisible, children, title, overlayTouchable }) => {\n const overlayRef = useRef(null);\n\n const handleOverlayPress = (event) => {\n if (event.target === overlayRef.current) {\n setModalVisible(false);\n }\n };\n\n return (\n
    \n {modalVisible && (\n \n \n
    \n

    {title}

    \n setModalVisible(false)}>\n \n \n
    \n {children}\n
    \n
    \n )}\n
    \n );\n};\n\nexport default ModalComponent;","import React, { useEffect, useRef, useState } from 'react';\nimport { ButtonsContainer, CancelButton, DropdownContainer, TextRegular, TextSemiBold, Wrapper } from './styles';\nimport ConfirmCancelComponent from './ConfirmCancelation';\nimport ModalComponent from '../ModalComponent'\n\nconst CancelationComponent = ({ product, order_basket_id, order_id, setCancelationModalVisible, fetchData }) => {\n const [amountArray, setAmountArray] = useState([{ label: '1', value: '1' }]);\n const [amountValue, setAmountValue] = useState('1');\n const [confirmCancelModal, setConfirmCancelModal] = useState(false);\n \n const handleOpenConfirmCancelModal = () => {\n setConfirmCancelModal(true);\n };\n\n useEffect(() => {\n if (product && product.amount > 1) {\n const amountArr = [];\n for (let i = 1; i <= product.amount; i++) {\n amountArr.push({ label: i.toString(), value: i.toString() });\n }\n setAmountArray(amountArr);\n }\n }, []);\n\n return (\n <>\n \n \n \n \n Selecione a quantidade a ser cancelada\n
    \n Item(s)\n {product.amount > 0 && product.product && product.product.name && (\n {product.amount.toString()}x {product.product.name}\n )}\n \n
    \n setAmountValue(e.target.value)}>\n {amountArray.map((amount) => (\n \n ))}\n \n
    \n
    \n Cancelar\n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default CancelationComponent;","import React, { useState } from \"react\";\nimport formatValue from '../../utils/formatValue';\nimport formatTime from '../../utils/formatTime';\n\nimport { uuid } from 'uuidv4'\nimport CancelationComponent from '../../components/CancelationComponent';\nimport ModalComponent from '../../components/ModalComponent';\nimport { FiX } from \"react-icons/fi\";\n\nconst ProductItemTableAccount = (props) => {\n const { basket, bill, item, fetchData } = props\n const [cancelationModalVisible, setCancelationModalVisible] = useState(false)\n const handleOpenCancelComponent = () => {\n setCancelationModalVisible(true)\n };\n return (\n <>\n {cancelationModalVisible && (\n \n \n \n )}\n
  • \n \n

    {formatTime(basket.start_time)}

    \n

    {item.amount} x

    \n

    {item.product.name}

    \n \n\n
    \n \n {formatValue(item.total_price)}\n

    \n \n
    \n
  • \n \n )\n}\n\nexport default ProductItemTableAccount","import React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { uuid } from 'uuidv4';\nimport { useAuth } from '../../context/auth';\nimport api from '../../services/api';\nimport formatValue from '../../utils/formatValue';\n\nimport {\n Container,\n Content,\n MenuContent,\n MenuItem,\n MenuItemHeader,\n MenuItemBody,\n Footer,\n Orders,\n ServiceTax,\n PriceText,\n PriceTextArea,\n PriceTotalText,\n ButtonsArea,\n ClosingButton,\n ButtonOutline,\n PrintButton,\n ModalFooter,\n ConfirmButton,\n CancelButton,\n} from './styles';\nimport { FaAngleDown, FaPrint } from 'react-icons/fa';\n\nimport Modal from 'react-modal';\nimport ProductItemTableAccount from '../../components/ProductItemTableAccount';\n\nconst TableAccount = ({ totalTable, fetchData }) => {\n const {\n sessionKey,\n restaurantServiceTax,\n restaurantWithWaiterCloseBill,\n serviceTaxValue,\n } = useAuth();\n\n const [tablePayments, setTotalPayments] = useState('');\n\n const customStyles = {\n content: {\n width: '90%',\n maxWidth: '390px',\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n filter: 'drop-shadow(0 0 4px rgba(0, 0, 0, 0.2))',\n border: 'none',\n },\n };\n\n const history = useHistory();\n\n const [isModalCloseAccountOpened, setIsModalCloseAccountOpened] = useState(\n false,\n );\n\n function toggleCloseAccountModal() {\n setIsModalCloseAccountOpened(!isModalCloseAccountOpened);\n }\n\n async function handleCloseAccount() {\n try {\n await api.put('waiter/close-table-bill', {\n key: sessionKey,\n from_gm: true,\n });\n\n openModalPrintMessage(\n 'Comanda fechada e enviada pra impressora com sucesso.',\n );\n\n history.push('/restauranttables');\n } catch (eror) {\n openModalPrintMessage('Erro ao fechar comanda.');\n console.log(eror);\n }\n }\n\n useEffect(() => {\n async function getTableData() {\n const res = await api.get('waiter/table-sessions/payments', {\n params: { session_key: sessionKey },\n });\n\n setTotalPayments(res.data.total_value);\n }\n getTableData();\n }, [sessionKey]);\n\n const totalPrice = totalTable.reduce(\n (acum, curr) => acum + curr?.total_price,\n 0,\n );\n\n const totalPriceTax = totalTable.reduce(\n (acum, curr) => acum + curr?.total_service_price,\n 0,\n );\n\n const [arrayCollapse, setArrayCollapse] = useState([]);\n\n function collapseId(id) {\n setArrayCollapse(prevArray => {\n const index = prevArray.indexOf(id);\n\n if (index === -1) {\n return [...prevArray, id];\n } else {\n const newArray = [...prevArray];\n newArray.splice(index, 1);\n return newArray;\n }\n });\n }\n\n const [modalPrintMessageOpen, setModalPrintMessageOpen] = useState(false);\n const [modalPrintMessage, setModalPrintMessage] = useState('');\n\n function openModalPrintMessage(message) {\n setModalPrintMessage(message);\n setModalPrintMessageOpen(true);\n }\n\n function toggleModalPrintMessage() {\n setModalPrintMessageOpen(!modalPrintMessageOpen);\n }\n\n async function handlePrintAccount() {\n try {\n await api.post('/waiter/printers/printer-queue', {\n table_session_id: totalTable[0].id,\n });\n openModalPrintMessage('Comanda enviada pra impressora com sucesso.');\n } catch (error) {\n openModalPrintMessage('Erro ao imprimir comanda');\n console.log(error.message);\n }\n }\n\n async function handlePrintAaInddividualccount(id) {\n try {\n await api.post('/waiter/printers/printer-queue', {\n individual_bill_id: id,\n });\n openModalPrintMessage('Comanda enviada pra impressora com sucesso.');\n } catch (error) {\n openModalPrintMessage('Erro ao imprimir comanda');\n console.log(error.message);\n }\n }\n\n async function handleCloseAccountToOnGoing() {\n try {\n await api.put('waiter/table-sessions/close-table-bill', {\n session_key: sessionKey,\n });\n\n history.push('/restauranttables');\n } catch (eror) {\n console.log(eror);\n }\n }\n\n return (\n \n \n \n

    {modalPrintMessage}

    \n \n \n Ok, ciente!\n \n \n \n\n \n

    Tem certeza que deseja fechar a comanda?

    \n \n \n Cancelar\n \n \n Sim, fechar!\n \n \n \n\n \n \n {totalTable &&\n totalTable.map(table => (\n \n {table?.bills.map(bill => (\n <>\n \n
    \n {bill?.buyer ? (\n <>\n {\n collapseId(bill.id);\n }}\n color=\"#C4C4C4\"\n size={21}\n style={{\n transform: arrayCollapse.includes(bill.id)\n ? 'rotate(180deg)'\n : 'rotate(0deg)',\n }}\n />\n\n {/* {restaurantWithWaiterCloseBill && ( { handlePrintAaInddividualccount(bill.id) }}>\n \n )} */}\n\n {\n collapseId(bill.id);\n }}\n >\n {bill.buyer.name || bill.buyer.phone}\n \n {\n collapseId(bill.id);\n }}\n >\n \n ) : (\n <>\n {\n collapseId(bill.id);\n }}\n color=\"#C4C4C4\"\n size={21}\n style={{\n transform: arrayCollapse.includes(bill.id)\n ? 'rotate(180deg)'\n : 'rotate(0deg)',\n }}\n />\n {/* {restaurantWithWaiterCloseBill && ( { handlePrintAaInddividualccount(bill.id) }}>\n \n )} */}\n {\n collapseId(bill.id);\n }}\n >\n {' '}\n {bill?.waiter.name}\n \n {\n collapseId(bill.id);\n }}\n >\n \n )}\n
    \n {\n collapseId(bill.id);\n }}\n >\n {formatValue(bill?.total_service_price)}\n

    \n
    \n\n \n
      \n \n {bill.order_baskets.map(basket => (\n \n {basket.orders.map(item => (\n \n ))}\n \n ))}\n {restaurantServiceTax.toString() === 'true' && (\n \n \n

      Serviço ({Number(serviceTaxValue)}%)

      \n

      \n {formatValue(\n bill.total_service_price -\n bill.total_price,\n )}\n

      \n \n
      \n )}\n \n
    \n
    \n \n ))}\n
    \n ))}\n
    \n
    \n\n
    \n {restaurantServiceTax.toString() === 'true' ? (\n \n {' '}\n Total{' '}\n \n {formatValue(totalPriceTax - tablePayments)}\n \n \n ) : (\n \n Total{' '}\n {formatValue(totalPrice - tablePayments)}\n \n )}\n\n {restaurantWithWaiterCloseBill ? (\n \n \n \n Espelho\n \n \n Fechar comanda\n \n \n ) : (\n \n \n Fechar comanda\n \n \n )}\n
    \n
    \n
    \n );\n};\n\nexport default TableAccount;\n","import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\n\nimport api from '../../services/api';\nimport { useAuth } from '../auth';\n\nconst PeopleAtTableContext = createContext();\n\nconst PeopleAtTableProvider = ({ children }) => {\n const [totalTable, setTotalTable] = useState([]);\n const [peopleAtTable, setPeopleAtTable] = useState(1);\n\n const { sessionKey } = useAuth();\n\n const updatePeopleAtTable = useCallback(\n async ({ people }) => {\n try {\n await api.put(`waiter/session/people`, {\n session_key: sessionKey,\n people,\n });\n } catch (err) {\n console.log(err);\n alert(err?.response?.data?.error);\n }\n },\n [sessionKey],\n );\n\n async function getPeopleAtTable() {\n const res = await api.get('waiter/table-sessions', {\n params: { session_key: sessionKey },\n });\n\n const dataTable = res.data;\n\n setTotalTable([dataTable]);\n setPeopleAtTable(dataTable?.people_at_table || 1);\n }\n\n useEffect(() => {\n getPeopleAtTable();\n }, [sessionKey]);\n\n const value = useMemo(\n () => ({\n totalTable,\n peopleAtTable,\n updatePeopleAtTable,\n setPeopleAtTable,\n getPeopleAtTable,\n }),\n [\n totalTable,\n peopleAtTable,\n updatePeopleAtTable,\n setPeopleAtTable,\n getPeopleAtTable,\n ],\n );\n\n return (\n \n {children}\n \n );\n};\n\nfunction usePeopleAtTable() {\n const context = useContext(PeopleAtTableContext);\n\n if (!context) {\n throw new Error(\n 'usePeopleAtTable must be used within an PeopleAtTableProvider',\n );\n }\n\n return context;\n}\n\nexport { PeopleAtTableProvider, usePeopleAtTable };\n","import React, { useEffect, useState } from 'react';\nimport { Tab, Tabs, TabList, TabPanel } from 'react-tabs';\nimport { useAuth } from '../../context/auth';\nimport { FiArrowLeft } from 'react-icons/fi';\nimport { FaMinus, FaPlus, FaUserFriends } from 'react-icons/fa';\n\nimport TableAccount from '../TableAccount';\n\nimport {\n Container,\n Content,\n HeaderAction,\n RouterDomLink,\n Nav,\n PeopleArea,\n NumberFormatStyled,\n} from './styles';\nimport { ActionButton } from 'ui-kit-takeat';\nimport { usePeopleAtTable } from '../../context/PeopleAtTableContext';\n\nexport function currencyFormatter(value) {\n if (value == 0) {\n return '';\n }\n\n if (Number(value) === 1) {\n return `${value} pessoa`;\n } else {\n return `${value} pessoas`;\n }\n}\n\nconst CloseAccount = () => {\n const { tableNumber } = useAuth();\n const {\n updatePeopleAtTable,\n totalTable,\n peopleAtTable,\n setPeopleAtTable,\n getPeopleAtTable,\n } = usePeopleAtTable();\n\n const [oldPeopleAtTable, setOldPeopleAtTable] = useState(null);\n const [inputChanged, setInputChanged] = useState(false);\n\n useEffect(() => {\n getPeopleAtTable();\n }, []);\n\n return (\n \n \n \n
    \n \n

    Comanda

    \n\n \n {' '}\n Mesa {tableNumber}{' '}\n \n \n \n \n \n Voltar\n \n\n \n }\n width={30}\n height={30}\n buttonColor={peopleAtTable <= 1 && '#f6f6f6'}\n pointerEvents={peopleAtTable <= 1 && 'none'}\n onClick={() => {\n if (Number(peopleAtTable) > 1) {\n setPeopleAtTable(Number(peopleAtTable) - 1);\n updatePeopleAtTable({\n people: Number(peopleAtTable) - 1,\n });\n }\n }}\n />\n {\n setPeopleAtTable(e.value);\n if (e.value.length > 0) {\n setInputChanged(true);\n }\n }}\n onFocus={() => {\n setInputChanged(false);\n setOldPeopleAtTable(peopleAtTable);\n setPeopleAtTable('');\n }}\n onBlur={() => {\n if (inputChanged) {\n updatePeopleAtTable({\n people: Number(peopleAtTable),\n });\n } else {\n setPeopleAtTable(oldPeopleAtTable);\n }\n }}\n />\n }\n width={30}\n height={30}\n buttonColor=\"#3BD2C1\"\n onClick={() => {\n setPeopleAtTable(Number(peopleAtTable) + 1);\n updatePeopleAtTable({\n people: Number(peopleAtTable) + 1,\n });\n }}\n />\n \n \n
    \n
    \n\n \n \n \n \n \n \n
    \n
    \n );\n};\n\nexport default CloseAccount;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { uuid } from 'uuidv4';\nimport NotificationBadge from 'react-notification-badge';\n\nimport { Effect } from 'react-notification-badge';\nimport Modal from 'react-modal';\nimport Shape from '../../assets/images/shape.png';\nimport {\n Accordion,\n AccordionItem,\n AccordionItemButton,\n AccordionItemPanel,\n} from 'react-accessible-accordion';\n\nimport noImage from '../../assets/images/noImage.png';\n\nimport ProductDetails from './ProductDetails';\nimport {\n FiCoffee,\n FiArrowLeft,\n FiCheckCircle,\n FiX,\n FiSearch,\n} from 'react-icons/fi';\n\nimport { MdRestaurant } from 'react-icons/md';\n\nimport {\n FaClock,\n FaEye,\n FaMinus,\n FaPlus,\n FaUser,\n FaUserFriends,\n FaUsers,\n} from 'react-icons/fa';\n\nimport { AiOutlineReload } from 'react-icons/ai';\n\nimport { useCart } from '../../context/cart';\nimport { useAuth } from '../../context/auth';\nimport { useMenu } from '../../context/menu';\n\nimport formatValue from '../../utils/formatValue';\nimport { Modal as ModalStrap } from 'reactstrap';\n\nimport logo_icon from '../../assets/images/logo_icon.png';\n\nimport {\n Container,\n Content,\n MenuContent,\n MenuItemHeader,\n MenuItemBody,\n HeaderAction,\n AddToCart,\n Footer,\n ButtonGoToCart,\n ButtonGoToAccount,\n ButtonAction,\n SearchBar,\n ProductPrice,\n ProductName,\n ProductImage,\n ProductInfo,\n ProductsArea,\n ButtonDetails,\n ButtonOutline,\n} from './styles';\nimport Product from '../Product';\nimport { NumberFormatStyled, PeopleArea } from '../CloseAccount/styles';\nimport { ActionButton } from 'ui-kit-takeat';\nimport api from '../../services/api';\nimport { currencyFormatter } from '../CloseAccount';\nimport { usePeopleAtTable } from '../../context/PeopleAtTableContext';\n\nconst Menu = props => {\n Modal.setAppElement('#root');\n\n const customStyles = {\n content: {\n width: '90%',\n height: '500px',\n maxWidth: '390px',\n padding: '0px',\n top: '60%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -60%)',\n borderRadius: '7px',\n zIndex: '1000',\n },\n };\n\n const { cart, addToCart } = useCart();\n const [modalProductIsOpen, setModalProductIsOpen] = useState(false);\n const [modalFullProductIsOpen, setModalFullProductIsOpen] = useState(false);\n const {\n menu,\n handleSearchInputProduct,\n productsFiltered,\n setProductsFiltered,\n } = useMenu();\n const [itemProduct, setItemProduct] = useState();\n const {\n restaurantFantasyName,\n tableNumber,\n tableStatus,\n isBalcony,\n isPos,\n restaurantUseCommand,\n stoneDevice,\n getPos,\n sessionKey,\n } = useAuth();\n\n const history = useHistory();\n const inputRef = useRef(null);\n\n const cartAmount = cart.reduce((accum, curr) => accum + curr.amount, 0);\n\n const {\n updatePeopleAtTable,\n peopleAtTable,\n setPeopleAtTable,\n } = usePeopleAtTable();\n\n const [oldPeopleAtTable, setOldPeopleAtTable] = useState(null);\n const [inputChanged, setInputChanged] = useState(false);\n\n // function getMobileOperatingSystem() {\n // var userAgent = navigator.userAgent || navigator.vendor || window.opera;\n\n // if( userAgent.match( /iPad/i ) || userAgent.match( /iPhone/i ) || userAgent.match( /iPod/i ) )\n // {\n // setSystemOp('ios');\n\n // }\n // else if( userAgent.match( /Android/i ) )\n // {\n\n // setSystemOp('android');\n // }\n // else\n // {\n // setSystemOp('unknown');\n // }\n // }\n\n // useEffect(()=>{\n // getMobileOperatingSystem()\n // }, [])\n\n function minimumComplementValue(complements) {\n const complementHasPrice = complements\n ? complements.map(comp => comp.complements.filter(cp => cp.price > 0))\n : 0;\n\n if (complementHasPrice.length > 0) {\n complementHasPrice[0].sort((a, b) => {\n if (parseFloat(a.price) < parseFloat(b.price)) {\n return -1;\n }\n\n if (parseFloat(a.price) === parseFloat(b.price)) {\n return 0;\n }\n\n return 1;\n });\n }\n\n const price =\n complementHasPrice.length > 0 && complementHasPrice[0][0]?.price\n ? complementHasPrice[0][0].price\n : '';\n\n return formatValue(price);\n }\n\n function handleGoToAccount() {\n if (tableStatus === 'open') {\n history.push('/closeaccount');\n } else {\n alert('Mesa sem conta');\n }\n }\n\n // function find(e){\n // e.preventDefault();\n\n // window.find(inputRef.current.value);\n // }\n\n // function finder(e){\n // document.execCommand(find(e))\n // }\n\n function handleGoToCart() {\n if (isPos.toString() === 'true' && stoneDevice === null) {\n alert('Não existe POS Stone vinculada a esse garçom.');\n } else {\n if (cart.length < 1) {\n alert('Seu carrinho está vazio =/');\n } else {\n history.push('/cart');\n }\n }\n }\n\n function getCategoryImage(cat) {\n const image = cat.products.filter(prd => prd.image !== null);\n if (cat.image) {\n return cat.image.url_thumb || cat.image.url;\n } else if (image) {\n return image[0]?.image.url_thumb || image[0]?.image.url;\n } else {\n return Shape;\n }\n }\n\n useEffect(() => {\n setProductsFiltered();\n }, [setProductsFiltered]);\n\n function openProductModal(product) {\n setModalProductIsOpen(true);\n\n setItemProduct({\n ...product,\n price: product.price_promotion || product.price,\n });\n }\n\n const [productState, setProductState] = useState({});\n\n function openFullProductModal(product) {\n setModalFullProductIsOpen(true);\n\n setProductState({\n ...product,\n price: product.price_promotion || product.price,\n });\n }\n\n function toggleModalProduct() {\n setModalProductIsOpen(!modalProductIsOpen);\n }\n\n function closeProductModal() {\n setModalProductIsOpen(false);\n }\n\n function toggleModalFullProduct() {\n setModalProductIsOpen(!modalFullProductIsOpen);\n }\n\n function closeFullProductModal() {\n setModalFullProductIsOpen(false);\n }\n\n function handleSelectProduct(product) {\n if (product?.complement_categories.length > 0 || product?.use_weight) {\n openFullProductModal(product);\n // history.push({\n // pathname: '/product',\n // state: {\n // product: {\n // ...product,\n // price: product?.price_promotion || product?.price,\n // },\n // }\n // })\n } else {\n const productFormatted = {\n ...product,\n price: product.price_promotion || product.price,\n };\n\n addToCart({\n product: productFormatted,\n amount: 1,\n observation: '',\n complementsCategory: [],\n isProductWeight: product?.use_weight,\n });\n\n countProducts({ id: product.id, amount: 1 });\n }\n }\n\n const [productsHasCounted, setProductsHasCounted] = useState([]);\n\n function countProducts(product) {\n const productFind = productsHasCounted.findIndex(\n item => item.id === product.id,\n );\n\n if (productFind !== -1) {\n productsHasCounted[productFind].amount += 1;\n } else {\n setProductsHasCounted(state => {\n return [...state, product];\n });\n }\n }\n\n function handleScroll(id) {\n const element = document.getElementById(`${id}`);\n const elementPosition = element.offsetTop - 150; // Obtém a posição do elemento em relação ao topo da página\n\n window.scrollTo({\n top: elementPosition,\n behavior: 'smooth', // Rolagem suave\n });\n }\n\n async function fetchData() {\n const res = await api.get('waiter/table-sessions', {\n params: { session_key: sessionKey },\n });\n\n const dataTable = res.data;\n\n // setTotalTable([dataTable]);\n setPeopleAtTable(dataTable?.people_at_table || 1);\n }\n useEffect(() => {\n fetchData();\n }, [sessionKey]);\n\n return (\n \n \n \n \n \n\n \n \n \n\n \n
    \n

    {restaurantFantasyName}

    \n \n
    \n {' '}\n \n {isBalcony.toString() === 'true'\n ? 'Balcão'\n : isPos.toString() === 'true'\n ? 'POS'\n : restaurantUseCommand.toString() === 'true'\n ? `Comanda ${tableNumber}`\n : `Mesa ${tableNumber}`}\n \n
    \n \n }\n width={30}\n height={30}\n buttonColor={peopleAtTable <= 1 && '#f6f6f6'}\n pointerEvents={peopleAtTable <= 1 && 'none'}\n onClick={() => {\n if (Number(peopleAtTable) > 1) {\n setPeopleAtTable(Number(peopleAtTable) - 1);\n updatePeopleAtTable({\n people: Number(peopleAtTable) - 1,\n });\n }\n }}\n />\n {\n setPeopleAtTable(e.value);\n if (e.value.length > 0) {\n setInputChanged(true);\n }\n }}\n onFocus={() => {\n setInputChanged(false);\n setOldPeopleAtTable(peopleAtTable);\n setPeopleAtTable('');\n }}\n onBlur={() => {\n if (inputChanged) {\n updatePeopleAtTable({\n people: Number(peopleAtTable),\n });\n } else {\n setPeopleAtTable(oldPeopleAtTable);\n }\n }}\n />\n }\n width={30}\n height={30}\n buttonColor=\"#3BD2C1\"\n onClick={() => {\n setPeopleAtTable(Number(peopleAtTable) + 1);\n updatePeopleAtTable({\n people: Number(peopleAtTable) + 1,\n });\n }}\n />\n \n \n
    \n {/* */}\n\n \n handleSearchInputProduct(e.target.value)}\n ref={inputRef}\n />\n \n {\n setProductsFiltered([]);\n inputRef.current.value = '';\n }}\n color=\"#D9D9D9\"\n size={22}\n />\n \n
    \n\n {productsFiltered && productsFiltered.length > 0 ? (\n \n \n {productsFiltered\n .filter(comp => comp.available)\n .map(item => (\n \n pr.id === item.id)\n ?.amount\n : 0\n }\n effect={Effect.SCALE}\n style={{\n width: '25px',\n height: '25px',\n borderRadius: '12px',\n position: 'absolute',\n top: '0px',\n left: '110px',\n paddingTop: '5px',\n }}\n />\n {\n openProductModal(item);\n }}\n >\n \n \n {\n handleSelectProduct(item);\n }}\n >\n \n \n \n\n \n {item?.name}\n\n {item?.price_promotion ? (\n <>\n \n {formatValue(item?.price_promotion)}\n \n \n ) : (\n <>\n {item?.price > 0 ? (\n \n {formatValue(item?.price)}\n \n ) : (\n \n {minimumComplementValue(\n item?.complement_categories,\n )}\n \n )}\n \n )}\n \n \n \n ))}\n \n \n ) : (\n \n {menu &&\n menu\n .filter(cat => cat.available)\n .map(category => (\n \n {category?.products.length >= 1 && (\n \n handleScroll(category?.id)}\n >\n \n \n \n {category.name}\n {category.preparation_time > 0 && (\n \n \n \n {`${category.preparation_time} min.`}{' '}\n \n \n )}\n \n \n \n\n \n {category?.products\n ?.filter(comp => comp.available)\n .map(item => (\n \n \n {\n openProductModal(item);\n }}\n >\n \n \n\n pr.id === item.id,\n )?.amount\n : 0\n }\n effect={Effect.SCALE}\n style={{\n width: '25px',\n height: '25px',\n borderRadius: '12px',\n position: 'absolute',\n top: '-10px',\n left: '97px',\n paddingTop: '5px',\n }}\n />\n {\n handleSelectProduct(item);\n }}\n >\n \n \n \n\n \n {item?.name}\n {item?.price_promotion ? (\n <>\n \n {formatValue(\n item?.price_promotion,\n )}\n \n \n ) : (\n <>\n {item?.price > 0 ? (\n \n {formatValue(item?.price)}\n \n ) : (\n \n {minimumComplementValue(\n item?.complement_categories,\n )}\n \n )}\n \n )}\n \n \n \n \n ))}\n \n \n \n )}\n \n ))}\n \n )}\n\n
    \n
    \n {\n history.push('/restauranttables');\n }}\n >\n Início\n \n \n \n \n {/* {!!cart.length > 0 && {cartAmount}} */}\n\n \n \n Pedir\n \n {isPos.toString() === 'true' ? (\n \n \n {stoneDevice ? stoneDevice.serial_number : 'Sem POS'}\n \n ) : (\n \n \n Comanda\n \n )}\n {/* \n \n conta\n */}\n
    \n
    \n
    \n
    \n );\n};\n\nexport default Menu;\n","import styled from 'styled-components';\nimport { Link } from 'react-router-dom';\nimport { shade } from 'polished';\n\nexport const Container = styled.div`\n width: 100vw;\n\n\n background: #fff;\n\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const HeaderAction = styled.div`\n width: 100%;\n max-width: 414px;\n position: fixed;\n top: 0;\n padding-right: 10px;\n padding-top: 14px;\n padding-bottom: 14px;\n background: #fff;\n border-bottom: 1px solid #f8f8f8;\n\n input {\n width: 340px;\n height: 48px;\n color: #fb4a20;\n background: transparent;\n border-radius: 7px;\n border: 1px solid #fb4a20cc;\n margin-top: 40px;\n text-align: center;\n font-family: Arial, Helvetica, sans-serif;\n\n &::placeholder {\n text-align: center;\n color: #fb4a20cc;\n margin-top: 40px;\n }\n }\n`;\n\nexport const Content = styled.div`\n width: 100%;\nmax-width: 414px ;\n /* padding: 10px; */\n display: flex;\n flex-direction: column;\n padding-left: 20px;\n padding-bottom: 65px;\n margin-top: 65px;\n background: #fff;\n\n header {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-right: 25px;\n h1 {\n font-size: 24px;\n font-weight: bold;\n }\n\n a {\n color: #fb4a20;\n font-size: 12px;\n font-weight: 900;\n }\n }\n`;\n\nexport const MenuContent = styled.div`\n max-width: 414px;\n background: #fff;\n border-radius: 7px;\n border-radius: 7px;\n\n input {\n width: 340px;\n height: 48px;\n color: #fb4a20;\n background: transparent;\n border-radius: 7px;\n border: 1px solid #fb4a20cc;\n margin-top: 40px;\n text-align: center;\n font-family: Arial, Helvetica, sans-serif;\n\n &::placeholder {\n text-align: center;\n color: #fb4a20cc;\n margin-top: 40px;\n }\n }\n`;\n\nexport const MenuItem = styled.li`\n list-style: none;\n padding-right: 15px;\n padding-top: 10px ;\n width: 100%;\n`;\n\nexport const ItemListHeader = styled.div`\n color: #333;\n\n > div {\n display: flex;\n justify-content: space-between;\n }\n`;\n\nexport const Footer = styled.footer`\n width: 90%;\n max-width: 410px;\n height: 65px;\n background: #fff;\n border-top: 1px solid #f8f8f8;\n position: fixed;\n bottom: 0;\n padding-right: 5px;\n\n button {\n height: 48px;\n // background: linear-gradient(\n // 144deg,\n // rgba(251, 74, 32, 1) 28%,\n // rgba(250, 5, 97, 1) 100%\n // );\n background: #ff3c3a;\n color: #fff;\n border-radius: 24px;\n border: none;\n width:100%;\n margin: auto;\n margin-left: 5px;\n font-weight: 500;\n span {\n font-family: Arial, Helvetica, sans-serif;\n font-weight: bold;\n margin-left: 8px;\n margin-top: 3px;\n }\n }\n`;\n\nexport const RouterDomLink = styled(Link)`\n text-decoration: none;\n color: ${shade(0.1, '#333333')};\n display: flex;\n align-items: center;\n\n svg {\n margin-right: 4px;\n }\n`;\n\nexport const CartDescription = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 38px;\n\n strong {\n font-size: 20px;\n font-weight: 700;\n }\n\n p {\n font-size: 14px;\n }\n\n > div {\n font-family: Arial, Helvetica, sans-serif;\n margin-top: 10px;\n display: flex;\n\n p {\n margin-left: 5px;\n }\n }\n`;\n\nexport const MenuItemBody = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-top: 14px;\n padding-top: 20px;\n\n & + div {\n margin-top: 20px;\n border-top: 1px solid #33333320;\n }\n`;\n\nexport const MenuItemImage = styled.div`\n display: flex;\n align-items: center;\n\n img {\n width: 52px;\n height: 52px;\n border-radius: 7px;\n margin-right: 15px;\n }\n`;\n\nexport const MenuItemDescription = styled.div`\n width: 490px;\n\n > div {\n display: flex;\n align-items: center;\n margin-top: 5px;\n\n span {\n font-size: 12px;\n }\n\n svg {\n margin-right: 5px;\n }\n }\n\n p {\n font-size: 12px;\n margin-top: 5px;\n }\n`;\n\nexport const MenuItemComplements = styled.div`\n display: flex;\n flex-wrap: wrap;\n\n p {\n color: #fb4a20;\n font-size: 10px;\n padding: 3px 5px;\n margin-right: 5px;\n border: 1px solid #fb4a20;\n border-radius: 14px;\n }\n`;\n\nexport const MenuItemQuantity = styled.div`\n display: flex;\n width: 150px;\n justify-content: flex-end;\n align-items: center;\n\n svg {\n margin-left: 10px;\n cursor: pointer;\n }\n\n p {\n font-size: 24px;\n font-family: Arial, Helvetica, sans-serif;\n color: #fb4a20;\n }\n`;\n\nexport const ModalFooter = styled.div`\n width: 100%;\n margin-top: 16px;\n padding-top: 8px;\n border-top: 1px solid #33333310;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const ConfirmButton = styled.button`\n display: flex;\n align-items: center;\n padding: 7px;\n font-size: 14px;\n color: #fff;\n background: #4ceb5b;\n border: none;\n border-radius: 7px;\n margin-right: 8px;\n`;\n\nexport const CancelButton = styled.button`\n display: flex;\n align-items: center;\n padding: 7px;\n font-size: 14px;\n color: #fff;\n background: #fb4a20;\n border: none;\n border-radius: 7px;\n margin-right: 8px;\n`;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n width: 100%;\n max-width: 410px;\n`;\n\nexport const MenuItemBody = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-top: 8px;\n\n\n & + div {\n margin-top: 8px;\n border-top: 1px solid #33333320;\n }\n`;\n\nexport const MenuItemImage = styled.div`\n display: flex;\n align-items: center;\n\n img {\n width: 52px;\n height: 52px;\n border-radius: 7px;\n margin-right: 15px;\n }\n`;\n\nexport const MenuItemDescription = styled.div`\n width: 490px;\n\n > div {\n display: flex;\n align-items: center;\n margin-top: 5px;\n\n span {\n font-size: 12px;\n }\n\n svg {\n margin-right: 5px;\n }\n }\n\n p {\n font-size: 12px;\n margin-top: 5px;\n }\n`;\n\nexport const MenuItemComplements = styled.div`\n display: flex;\n flex-wrap: wrap;\n\n p {\n color: #fb4a20;\n font-size: 10px;\n padding: 3px 5px;\n margin-right: 5px;\n border: 1px solid #fb4a20;\n border-radius: 14px;\n }\n`;\n\nexport const MenuItemQuantity = styled.div`\n display: flex;\n width: 150px;\n justify-content: flex-end;\n align-items: center;\n\n strong{\n margin-left: 7px;\n }\n\n\n svg {\n margin-left: 10px;\n cursor: pointer;\n }\n\n p {\n font-size: 24px;\n font-family: Arial, Helvetica, sans-serif;\n color: #fb4a20;\n }\n`;\n\nexport const ModalTitle = styled.div`\n p {\n text-align: left;\n font-weight: bold;\n }\n`;\n\nexport const ModalFooter = styled.div`\n width: 100%;\n margin-top: 16px;\n padding-top: 8px;\n border-top: 1px solid #33333310;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const ConfirmButton = styled.button`\n display: flex;\n align-items: center;\n padding: 7px;\n font-size: 14px;\n color: #fff;\n background: #4ceb5b;\n border: none;\n border-radius: 7px;\n margin-right: 8px;\n`;\n\nexport const CancelButton = styled.button`\n display: flex;\n align-items: center;\n padding: 7px;\n font-size: 14px;\n color: #fff;\n background: #ff1814;\n border: none;\n border-radius: 7px;\n margin-left: 4px;\n`;\n","import styled from 'styled-components';\n// import NumberFormat from 'react-number-format';\n\n// export const InputContainer = styled.div`\n// display: flex;\n// flex-direction: column;\n// margin-top: 10px;\n// margin-bottom: 10px;\n// position: relative;\n\n// label {\n// font-weight: bold;\n// }\n\n// input {\n// height: 44px;\n// padding: 10px;\n// border-radius: 8px;\n// border: 1px solid lightgray;\n\n// &:focus {\n// border: 1px solid lightgray;\n// border-radius: 8px;\n// }\n// }\n// span {\n// font-weight: bold;\n// color: #333;\n// }\n// `;\n\n// export const RadioContainer = styled.div`\n// display: flex;\n// align-items: center;\n// input {\n// margin: auto 0;\n// }\n// label {\n// margin-left: 15px;\n// font-weight: bold;\n// padding-top: 8px;\n// }\n// `;\n\nexport const TextareaContainer = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 10px;\n margin-bottom: 10px;\n\n label {\n font-weight: bold;\n }\n\n textarea {\n height: 120px;\n padding: 10px;\n border-radius: 8px;\n border: 1px solid lightgray;\n resize: none;\n\n &:focus {\n border: 1px solid lightgray};\n border-radius: 8px;\n }\n\n span {\n font-weight: bold;\n color: #333;\n }\n`\n\n// export const SelectContainer = styled.div`\n// margin-top: 10px;\n// margin-bottom: 10px;\n// label {\n// font-weight: bold;\n// }\n// `;\n// export const CheckboxContainer = styled.div`\n// height: 100%;\n// display: flex;\n// align-items: center;\n// input {\n// margin: auto 0;\n// }\n// label {\n// margin-left: 20px;\n// font-weight: bold;\n// }\n// `;\n\n// export const InputPaymentContainer = styled.div`\n// display: flex;\n// flex-direction: row;\n// height: 80%;\n\n// label {\n// font-weight: bold;\n// }\n\n// input::-webkit-inner-spin-button {\n// -webkit-appearance: none;\n// margin: 0;\n// }\n\n// input {\n// width: 100px;\n// padding: 5px;\n// font-size: 15px;\n// border-radius: 8px;\n// border-color: green;\n// border-effect: none;\n// border: 2px solid green;\n\n// &:focus {\n// border: 2px solid green;\n// border-radius: 8px;\n// }\n// }\n// span {\n// font-weight: bold;\n// color: ${(props) => props.theme.colors.secondary};\n// }\n// `;\n\nexport const Error = styled.div`\n position: absolute;\n top: -25px;\n right: 0px;\n padding: 8px;\n border-radius: 7px;\n background: #fb4a20;\n\n &::before {\n content: '';\n border-style: solid;\n border-color: #fb4a20 transparent;\n border-width: 6px 6px 0 6px;\n top: 100%;\n bottom: 20px;\n position: absolute;\n right: 10px;\n }\n\n p {\n color: #fff;\n font-size: 10px;\n font-weight: bold;\n }\n`;\n\n// export const NumberFormatStyled = styled(NumberFormat)`\n// height: 44px;\n// padding: 10px;\n// border-radius: 8px;\n// border: 1px solid ${(props) => props.theme.colors.lightGray};\n\n// &:focus {\n// border: 1px solid ${(props) => props.theme.colors.gray};\n// border-radius: 8px;\n// }\n// `;\n","import React, { useEffect, useRef } from 'react';\nimport { useField } from '@unform/core';\n\nimport { TextareaContainer } from './styles';\n\nfunction TextArea({ name, label, ...rest }) {\n const inputRef = useRef(null);\n const { fieldName, registerField, defaultValue, error } = useField(name);\n\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: inputRef.current,\n path: 'value',\n });\n }, [fieldName, inputRef, registerField]);\n\n return (\n \n \n