{"version":3,"sources":["authProvider.js","store/actions/offers.js","store/actions/actionTypes.js","store/actions/auth.js","store/actions/profile.js","store/actions/ticket.js","FontsImported.js","components/Home/Home.jsx","components/UI/Spinner/GifSpinner.jsx","components/Hoc/WithNumberFormat.jsx","components/UI/Icons/ThumbsUpSvg.jsx","components/UI/Icons/MegaphoneFilledSvg.jsx","components/UI/Icons/HourglassColor.jsx","components/UI/Icons/HourglassColorStrikedout.jsx","components/Bargain/ItemForMobile/ItemForMobile.jsx","components/Bargain/Offers.jsx","components/Settings/Settings.jsx","components/Bargain/ItemCard/OfferDialog.jsx","components/Bargain/OfferHistoryDialog/OfferHistoryDialog.jsx","components/Bargain/ItemCard/Chat.jsx","components/Bargain/ItemCard/ItemCard.jsx","components/UI/Icons/CreditCardSvg.jsx","components/UI/Icons/BackwardSvg.jsx","components/Ticket/TicketCard.jsx","components/Shared/hashHistory.jsx","components/UI/Icons/HomeSvg.jsx","components/UI/Icons/CoinsSvg.jsx","components/UI/Icons/GavelSvg.jsx","components/UI/Icons/StoreSvg.jsx","components/UI/Icons/TagsSvg.jsx","components/UI/Icons/UserProfileSvg.jsx","components/UI/Icons/UserAddressBookSvg.jsx","components/UI/Icons/UserAddressSvg.jsx","components/UI/Icons/VerificationSvg.jsx","components/Drawer/Drawer.jsx","components/UI/Icons/ShoppingCartSvg.jsx","components/Appheader/Appheader.jsx","components/Profile/ProfileCard/ProfileCard.jsx","components/Shared/ConfirmDialog.jsx","components/Profile/AddressList/AddressCard/EditAddressDialog.jsx","components/Profile/AddressList/AddressCard/AddressCard.jsx","components/Profile/AddressList/AddressList.jsx","components/Profile/Profile.jsx","components/UI/Icons/CancelSvg.jsx","components/Profile/Verification/Verification.jsx","components/Shared/ConfirmationByPinFunctionalDialog.jsx","components/Ticket/UserSubscriptionConfirmation.jsx","components/Ticket/TicketItem.jsx","components/Ticket/ListForConfirmedCustomer.jsx","components/Ticket/TicketList.jsx","store/actions/azure.js","App.js","serviceWorker.js","store/reducers/offers.js","store/reducers/authReducer.js","store/reducers/graphReducer.js","store/reducers/profileReducer.js","store/reducers/ticket.js","components/Bargain/axios-offers.js","store/sagas/offers.js","components/Profile/axios-profile.js","store/sagas/auth.js","store/sagas/profile.js","store/sagas/ticket.js","store/sagas/azure.js","store/sagas/index.js","index.js"],"names":["reactRedirectUri","window","location","href","indexOf","split","signInConfig","auth","authority","clientId","redirectUri","validateAuthority","cache","cacheLocation","storeAuthStateInCookie","options","loginType","LoginType","Redirect","signInAuthProvider","MsalAuthProvider","scopes","getOffers","limit","offset","axios","type","getOffer","offerId","getChat","getOfferSuccess","offer","offerTimerCountdown","timer","setSeenBy","messageIds","messageType","console","log","getGraphAccessToken","ordinaryAccessToken","getUserCredentialsSuccess","payLoad","getUserAddressList","userId","confirmThatUserSubscribedToATicket","payload","isSubscribed","userAssignedToTicket","customerId","doTicketCheck","ticketNumber","ticketSerial","customerLastName","customerFirstName","getTicketList","doTicketCheckSuccess","confirmUserAsValidTicketCustomer","objectId","createMuiTheme","typography","fontFamily","join","connect","makeStyles","theme","img","margin","display","maxWidth","maxHeight","root","toolbar","mixins","content","flexGrow","padding","spacing","menuButton","marginRight","marginLeft","paper","textShadow","color","withStyles","badge","right","top","border","palette","background","Badge","state","shopOffersCount","offers","gotAccessToken","userFirstName","customerAccountServiceBaseUri","dispatch","getOffersCount","withRouter","props","useEffect","Fragment","Card","CardContent","Typography","variant","gutterBottom","align","WithNumberFormat","displayType","thousandSeparator","decimalSeparator","decimalScale","digits","fixedDecimalScale","value","ThumbsUpSvg","xmlns","width","height","viewBox","fill","d","MegaphoneFilledSvg","HourglassColorSvg","style","enableBackground","xmlSpace","HourglassColorStrikedoutSvg","strokeWidth","stroke","useStyles","image","orangeText","blueText","blueTextBordered","fontSize","themePoppins","fontWeightMedium","getCorrectTitleStyle","offerType","accountInfo","idToken","getOfferItems","token","actions","classes","className","to","isExpired","textDecoration","Paper","elevation","marginBottom","backgroundImage","backgroundPosition","backgroundSize","backgroundRepeat","Grid","container","item","ButtonBase","alt","src","pic","xs","sm","direction","lotName","ThemeProvider","internalNumber","fontWeight","offerDate","toReturn","undefined","moment","format","getRightOfferWord","expiredDate","isAfter","showPriceOfferAlert","showTextAlert","HourglassColorStrikedout","HourglassColor","getRightRightIcon","justify","offerPrice","title","offerItems","count","offersCount","axiosOffers","alertsArray","clearOffer","clearChat","useState","map","index","tradePrice","pictureId","idx","findIndex","chr","textMessageAlertCount","priceOfferAlertCount","key","settings","Hidden","smUp","implementation","xsDown","counterOffer","open","React","openDialog","err","setErr","helperText","setHelperText","setOfferPrice","Dialog","onClose","dialogClose","aria-labelledby","DialogTitle","id","DialogContent","DialogContentText","noValidate","autoComplete","TextField","label","disabled","lastClientPrice","error","autoFocus","onChange","event","target","DialogActions","Button","onClick","redColor","backgroundColor","yellowColor","greenColor","blueColor","orangeColor","textAlign","getCorrectStyle","offerHistory","getOfferHistory","name","historyDialogOpen","historyDialogClose","TableContainer","component","size","Table","aria-label","TableBody","row","TableRow","messageId","TableCell","firstName","lastName","chat","chatItems","chatCount","userLogin","environment","postTextMessage","textMessage","length","message","messageLogin","seenByList","push","personLogin","match","params","setTextMessage","viewerIsOpen","setViewerIsOpen","pict","setPict","getRightJustify","getRealPaperColor","getRightColorForUsername","imgs","currImg","isOpen","closeBtnTitle","alignItems","fullWidth","multiline","placeholder","IconButton","messageFirstName","messageLastName","text","picId","messageDate","fab","bottom","left","position","infoColor","info","main","successColor","success","primary","secondary","printTitleMessage","acceptOffer","env","useTheme","useMediaQuery","breakpoints","up","acceptOfferDialogOpen","setAcceptOfferDialogOpen","setHistoryDialogOpen","handleClickOpen","handleAcceptOffer","history","getCorrectTitleStyleForThePrice","only","md","lg","xl","productDescription","cursor","renderActionButtons","marginTop","Fab","CreditCardSvg","BackwardSvg","singleTicket","ticket","getTicket","ticketId","setTicket","ticketItems","setTicketItems","useHistory","Tooltip","goBack","Container","direaction","stateReadable","ticketName","dateOfIssue","termInDate","endOfGracePeriodDate","interestRate","daysInUse","interestsToThisDay","Divider","itemName","fontStyle","loan","estimate","createHashHistory","HomeSvg","CoinsSvg","GavelSvg","StoreSvg","TagsSvg","UserProfileSvg","UserAddressBookSvg","UserAddressSvg","VerificationSvg","nested","paddingLeft","incomingOffersCount","myOffersCount","acceptedOffersCount","whetherUserVerificationInfoExists","profile","useLocation","isSelected","whereAmI","pathname","openProfile","setOpenProfile","StyledBadgeMyOfferCount","opacity","StyledBadgeShopOfferCount","StyledBadgeAcceptedOfferCount","List","ListItem","button","selected","ListItemIcon","ListItemText","hashHistory","badgeContent","overlap","Collapse","in","timeout","unmountOnExit","disablePadding","ShoppingCartSvg","StyledMenu","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","StyledMenuItem","common","white","MenuItem","menuBurton","cart","appBar","StyledBadge","StyledBadgeAlerts","userFio","userPhone","userEmail","userInfo","cartCount","alertsCount","handleMenu","setAnchorEl","currentTarget","handleClose","goToCart","anchorEl","Boolean","provider","forceLogin","login","logout","authenticationState","AppBar","Toolbar","edge","toggleDrawer","titleu","condition","aria-controls","renderCart","icon","faBell","aria-haspopup","faUser","keepMounted","faSignOutAlt","renderUserFio","table","minWidth","buttons","submitButton","ruRU","accessToken","userCredentials","graph","addressCount","updateUserCredentials","json","setLastName","setFirstName","phone","setPhone","emails","setEmails","buttonsAllowed","setButtonsAllowed","dialogOpen","setDialogOpen","handleDialogClose","handleLastNameInput","act","handleFirstNameInput","handlePhoneInput","handleSubmit","objToSend","surname","givenName","extension_2a5146c87c79472d98f426db0b04c2b3_Phone","jsonString","JSON","stringify","handleReset","aria-describedby","CardHeader","subheader","required","ConfirmDialog","children","setOpen","onConfirm","saveUserAddress","objectToSend","modus","addressToEdit","zip","setZip","region","setRegion","district","setDistrict","city","setCity","street","setStreet","home","setHome","corp","setCorp","flat","setFlat","setId","description","setDescription","decription","addressId","card","minHeight","contentPart","wholeCard","responsiveFontSizes","removeUserAddress","setUserAddressAsDefault","confirmOpen","setConfirmOpen","editAddressDialogOpen","setEditAddressDialogOpen","eachAddress","default","amber","grey","getCorrectAddress","ListItemSecondaryAction","addressListCount","rotten","addressList","newAddressDialogOpen","setNewAddressDialogOpen","fixed","getUserCredentials","CancelSvg","input","imgPreview","cancelButton","actionsContainer","resetContainer","getSrc","step","userLastName","userSuccessfullyVerified","saveUserVerificationInfo","img1","img2","img3","customerLogin","customerFirstname","customerLastname","activeStep","setActiveStep","step1File","setStep1File","step1Preview","setStep1Preview","step2File","setStep2File","step2Preview","setStep2Preview","step3File","setStep3File","step3Preview","setStep3Preview","steps","handleFile","preventDefault","reader","FileReader","file","files","onloadend","Resizer","imageFileResizer","uri","b64","replace","result","readAsDataURL","getPreview","handleNext","prevActiveStep","handleBack","handleCancelClick","Stepper","orientation","Step","StepLabel","StepContent","visibility","getDisclaimer","method","encType","action","accept","papir","textField","pin","input1Val","setInput1Val","input2Val","setInput2Val","input3Val","setInput3Val","input4Val","setInput4Val","input5Val","setInput5Val","textRef1","useRef","textRef2","textRef3","textRef4","textRef5","justifycontent","e","val","current","focus","inputRef","inputProps","maxLength","lastLetter","Alert","finalize","customerFio","customerPhone","confirmationResult","checkWasSuccessfull","resetConfirmationResult","setTicketNumber","setTicketSerial","setCustomerLastName","setCustomerFirstName","a","Confirm","sq","heading","pxToRem","restOfHeading","columnQ","flexBasis","columnThird","TicketItem","thisRowIsSelected","persist","handleClickOnLink","getRightStateReadable","Switch","checked","handleChange","ticketList","ticketListMemorized","clearCustomerTicketSubscription","memorizeTicketList","clearSingleTicket","totalInterests","setTotalInterests","total","oneItem","whetherUserIsSubscribedToATicket","getUserClaims","changedTheme","overrides","MuiCssBaseline","Lato","drawer","flexShrink","drawerPaper","drawerHeader","justifyContent","getAccessToken","mobileOpen","setMobileOpen","handleDrawerToggle","document","body","CssBaseline","anchor","ModalProps","exact","from","render","Settings","ItemCard","TicketCard","Profile","AddressList","Verification","TicketList","hostname","initialState","offerHistoryCount","offerIdForCountdown","reducer","outgoingOffersCount","myOfferCount","shopOfferCount","offerHistoryItems","initializing","initialized","AuthenticationState","Unauthenticated","authReducer","AuthenticationActions","Initializing","Initialized","AcquiredIdTokenSuccess","AcquiredAccessTokenSuccess","localStorage","setItem","defaultOptions","baseURL","headers","instance","create","interceptors","request","use","config","storedToken","Authorization","AcquiredAccessTokenError","LoginSuccess","account","accountIdentifier","given_name","family_name","extension_Phone","jwtIdToken","LoginError","AcquiredIdTokenError","LogoutSuccess","AuthenticatedStateChanged","graphAccessToken","claims","fetchMe","getItem","getOffersSaga","getOfferSaga","getChatSaga","getOffersCountSaga","getAlertsCountSaga","getCartCountSaga","getOfferHistorySaga","counterOfferSaga","acceptOfferSaga","declineOfferSaga","postTextMessageSaga","setSeenBySaga","url","get","response","allItems","data","filteredItems","acceptedOfferCount","offerStatus","f","all","put","getTimeRemaining","whatRemainsObject","call","countdown","Math","round","channel","takeEvery","secs","hours","minutes","seconds","incomingOfferCount","outgoingOfferCount","aoc","totalCount","defaults","eventChannel","emitter","iv","setInterval","END","clearInterval","endtime","t","Date","parse","floor","toString","days","price","post","getAccessTokenSaga","getGraphAccessTokenSaga","getUserCredentialsSaga","updateUserCredentialsSaga","access_token","justString","getUserAddressListSaga","removeUserAddressSaga","sendSMSSaga","setUserAddressAsDefaultSaga","saveUserAddressSaga","saveUserVerificationInfoSaga","seeIfThisCustomerSentHisPhotosToVerificationSaga","sort","b","confirmationNumber","fd","FormData","append","doTicketCheckSaga","confirmUserAsValidTicketCustomerSaga","clearCustomerTicketSubscriptionSaga","getTicketListSaga","getTicketSaga","getUserClaimsSaga","watchOffers","rootReducer","combineReducers","offersReducer","graphReducer","profileReducer","ticketReducer","sagaMiddleware","createSagaMiddleware","store","createStore","applyMiddleware","run","ReactDOM","reduxStore","getElementById","navigator","serviceWorker","ready","then","registration","unregister","catch"],"mappings":"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","file":"static/js/main.29c1872c.chunk.js","sourcesContent":["import {MsalAuthProvider, LoginType} from 'react-aad-msal';\n\n\nconst tenant = 'mtwin.onmicrosoft.com';\nconst signInPolicy = 'B2C_1_MtwinSignUpIn';\nconst applicationID = '67ba2684-c6d4-4193-b5fd-1616ff99bb5b';\n//const reactRedirectUri = \"https://dev-my.mtwin.ru\";\n\nlet reactRedirectUri = null;\n\n//alert(window.location.href);\nif (window.location.href.indexOf(\"localhost\") > -1) reactRedirectUri = 'http://localhost:3000'; \nelse if (window.location.href.indexOf(\"dev\") > -1) reactRedirectUri = 'https://dev-my.mtwin.ru';\nelse reactRedirectUri = 'https://my.mtwin.ru';\n//alert(reactRedirectUri)\n\n//const reactRedirectUri = process.env.REACT_APP_REDIRECT_URI;\n\nconst tenantSubdomain = tenant.split(\".\")[0];\nconst instance = `https://mtwin.b2clogin.com/mtwin.onmicrosoft.com/`;\n//const signInAuthority = `${instance}${tenant}/${signInPolicy}`;\nconst signInAuthority = `${instance}${signInPolicy}`;\n\nconst signInConfig = {\n auth: {\n authority: signInAuthority,\n clientId: '67ba2684-c6d4-4193-b5fd-1616ff99bb5b',\n redirectUri: reactRedirectUri,\n validateAuthority: false\n },\n cache: {\n cacheLocation: \"localStorage\",\n storeAuthStateInCookie: false\n \n }\n \n};\n\nconst authenticationParameters = { scopes: ['https://mtwin.onmicrosoft.com/CustomerAccountService/User.ReadWrite','https://graph.microsoft.com/offline_access','https://graph.microsoft.com/openid'] };\n\nconst options = {\n loginType: LoginType.Redirect\n //tokenRefreshUri: window.location.origin + \"/auth.html\"\n};\n\nexport const signInAuthProvider = new MsalAuthProvider(\n signInConfig,\n authenticationParameters,\n options\n);\n","import * as actionTypes from './actionTypes';\n\nexport const getOffers = (limit,offset,axios) => {\n return {\n type: actionTypes.GET_OFFERS,\n limit: limit,\n offset: offset,\n axios: axios\n };\n };\n\n export const getOffer = (offerId) => {\n return {\n type: actionTypes.GET_OFFER,\n offerId: offerId\n };\n };\n\n export const getCartCount = () => {\n return {\n type: actionTypes.GET_CART_COUNT\n };\n };\n\n export const getCartCountSuccess = (cartCount) => {\n return {\n type: actionTypes.GET_CART_COUNT_SUCCESS,\n cartCount: cartCount\n };\n };\n\n export const getOffersSuccess = (offerItems, offersCount) => {\n return {\n type: actionTypes.GET_OFFERS_SUCCESS,\n offerItems: offerItems,\n offersCount: offersCount\n };\n };\n \n export const getOffersCountByTypesSuccess = (myOfferCount, shopOfferCount) => {\n return {\n type: actionTypes.GET_OFFERS_COUNT_BY_TYPES_SUCCESS,\n myOfferCount: myOfferCount,\n shopOfferCount: shopOfferCount\n };\n };\n\n export const getOffersCount = () => {\n return {\n type: actionTypes.GET_OFFERS_COUNT\n };\n };\n\n\n export const getOffersCountSuccess = (incomingOffersCount, outgoingOffersCount, aoc) => {\n console.log('[offersReducer L56] acceptedOffersCount = ',aoc)\n return {\n type: actionTypes.GET_OFFERS_COUNT_SUCCESS,\n incomingOffersCount: incomingOffersCount,\n outgoingOffersCount: outgoingOffersCount,\n acceptedOffersCount: aoc\n };\n };\n\n export const getAlertsCount = () => {\n return {\n type: actionTypes.GET_ALERTS_COUNT\n };\n };\n\n\n export const getAlertsCountSuccess = (textMessageAlertCount) => {\n return {\n type: actionTypes.GET_ALERTS_COUNT_SUCCESS,\n textMessageAlertCount: textMessageAlertCount\n };\n };\n\n \n export const getAlertsArraySuccess = (alertsArray) => {\n return {\n type: actionTypes.GET_ALERTS_ARRAY_SUCCESS,\n alertsArray: alertsArray\n };\n };\n\n\n export const getChat = (offerId, limit, offset) => {\n return {\n type: actionTypes.GET_CHAT,\n offerId: offerId,\n limit: limit,\n offset: offset\n };\n }; \n\n export const clearChat = () => {\n return {\n type: actionTypes.CLEAR_CHAT,\n };\n }; \n \n export const clearOffer = () => {\n return {\n type: actionTypes.CLEAR_OFFER,\n };\n };\n\n export const getChatSuccess = (chatItems, chatCount) => {\n return {\n type: actionTypes.GET_CHAT_SUCCESS,\n chatItems: chatItems,\n chatCount: chatCount\n };\n };\n\n\n\n export const getOfferSuccess = (offer) => {\n return {\n type: actionTypes.GET_OFFER_SUCCESS,\n offer: offer\n };\n }; \n\n export const offerTimerCountdown = (timer,offerId) => {\n return {\n type: actionTypes.OFFER_TIMER_COUNTDOWN,\n timer: timer,\n offerId: offerId\n }\n }\n\n export const getOfferHistory = (limit,offset, name, offerId) => {\n return {\n type: actionTypes.GET_OFFER_HISTORY,\n limit: limit,\n offset: offset,\n name: name,\n offerId: offerId\n };\n };\n \n export const getOfferHistorySuccess = (offerHistoryItems, offerHistoryCount) => {\n return {\n type: actionTypes.GET_OFFER_HISTORY_SUCCESS,\n offerHistoryItems: offerHistoryItems,\n offerHistoryCount: offerHistoryCount\n };\n }; \n\n export const counterOffer = (offerId, offerPrice) => {\n return {\n type: actionTypes.COUNTER_OFFER,\n offerId: offerId,\n offerPrice: offerPrice\n }\n }\n\n export const acceptOffer = (offerId, env) => {\n return {\n type: actionTypes.ACCEPT_OFFER,\n offerId: offerId,\n env: env\n }\n }\n\n export const declineOffer = (offerId) => {\n return {\n type: actionTypes.DECLINE_OFFER,\n offerId: offerId\n }\n }\n\n export const postTextMessage = (offerId, textMessage) => {\n console.log('offerId=',offerId);\n console.log('textMessage=',textMessage);\n return {\n type: actionTypes.POST_TEXT_MESSAGE,\n offerId: offerId,\n textMessage: textMessage\n }\n }\n\n export const setSeenBy = (offerId, messageIds, messageType) => {\n console.log('offerId=',offerId);\n console.log('messageIds=',messageIds);\n return {\n type: actionTypes.SET_SEEN_BY,\n offerId: offerId,\n messageIds: messageIds,\n messageType: messageType\n }\n }\n\n","export const AAD_INITIALIZING = 'AAD_INITIALIZING';\nexport const AAD_INITIALIZED = 'AAD_INITIALIZED';\nexport const AAD_AUTHENTICATED_STATE_CHANGED = 'AAD_AUTHENTICATED_STATE_CHANGED';\nexport const AAD_ACQUIRED_ID_TOKEN_SUCCESS = 'AAD_ACQUIRED_ID_TOKEN_SUCCESS';\nexport const AAD_ACQUIRED_ID_TOKEN_ERROR = 'AAD_ACQUIRED_ID_TOKEN_ERROR';\nexport const AAD_ACQUIRED_ACCESS_TOKEN_SUCCESS = 'AAD_ACQUIRED_ACCESS_TOKEN_SUCCESS';\nexport const AAD_ACQUIRED_ACCESS_TOKEN_ERROR = 'AAD_ACQUIRED_ACCESS_TOKEN_ERROR';\nexport const AAD_LOGIN_SUCCESS = 'AAD_LOGIN_SUCCESS';\nexport const AAD_LOGIN_FAILED = 'AAD_LOGIN_FAILED';\nexport const AAD_LOGIN_ERROR = 'AAD_LOGIN_ERROR';\nexport const AAD_LOGOUT_SUCCESS = 'AAD_LOGOUT_SUCCESS';\nexport const GET_ACCESS_TOKEN = 'GET_ACCESS_TOKEN';\nexport const GET_ACCESS_TOKEN_SUCCESS = 'GET_ACCESS_TOKEN_SUCCESS';\nexport const GET_GRAPH_ACCESS_TOKEN = 'GET_GRAPH_ACCESS_TOKEN';\nexport const GET_GRAPH_ACCESS_TOKEN_SUCCESS = 'GET_GRAPH_ACCESS_TOKEN_SUCCESS';\nexport const GET_USER_CREDENTIALS = 'GET_USER_CREDENTIALS';\nexport const GET_USER_CREDENTIALS_SUCCESS = 'GET_USER_CREDENTIALS_SUCCESS';\nexport const UPDATE_USER_CREDENTIALS = 'UPDATE_USER_CREDENTIALS';\n\nexport const GET_OFFERS = 'GET_OFFERS';\nexport const GET_OFFERS_SUCCESS = 'GET_OFFERS_SUCCESS';\nexport const GET_OFFERS_COUNT_BY_TYPES_SUCCESS = 'GET_OFFERS_COUNT_BY_TYPES_SUCCESS';\nexport const GET_OFFERS_COUNT = 'GET_OFFERS_COUNT';\nexport const GET_ALERTS_COUNT = 'GET_ALERTS_COUNT';\nexport const GET_OFFERS_COUNT_SUCCESS = 'GET_OFFERS_COUNT_SUCCESS';\nexport const GET_ALERTS_COUNT_SUCCESS = 'GET_ALERTS_COUNT_SUCCESS';\nexport const GET_CART_COUNT = 'GET_CART_COUNT';\nexport const GET_CART_COUNT_SUCCESS = 'GET_CART_COUNT_SUCCESS';\nexport const GET_OFFER_SUCCESS = 'GET_OFFER_SUCCESS';\nexport const GET_OFFER = 'GET_OFFER';\nexport const CLEAR_OFFER = 'CLEAR_OFFER';\nexport const GET_CHAT = 'GET_CHAT';\nexport const CLEAR_CHAT = 'GET_CHAT';\nexport const GET_CHAT_SUCCESS = 'GET_CHAT_SUCCESS';\nexport const OFFER_TIMER_COUNTDOWN = 'OFFER_TIMER_COUNTDOWN';\nexport const GET_OFFER_HISTORY = 'GET_OFFER_HISTORY';\nexport const GET_OFFER_HISTORY_SUCCESS = 'GET_OFFER_HISTORY_SUCCESS';\nexport const COUNTER_OFFER = 'COUNTER_OFFER';\nexport const ACCEPT_OFFER = 'ACCEPT_OFFER';\nexport const DECLINE_OFFER = 'DECLINE_OFFER';\nexport const POST_TEXT_MESSAGE = 'POST_TEXT_MESSAGE';\nexport const SET_SEEN_BY = 'SET_SEEN_BY';\nexport const GET_ALERTS_ARRAY_SUCCESS = 'GET_ALERTS_ARRAY_SUCCESS';\n\nexport const GET_USER_ADDRESS_LIST = 'GET_USER_ADDRESS_LIST';\nexport const GET_USER_ADDRESS_LIST_SUCCESS = 'GET_USER_ADDRESS_LIST_SUCCESS';\nexport const REMOVE_USER_ADDRESS = 'REMOVE_USER_ADDRESS';\nexport const SET_USER_ADDRESS_AS_DEFAULT = 'SET_USER_ADDRESS_AS_DEFAULT';\nexport const SAVE_USER_ADDRESS = 'SAVE_USER_ADDRESS';\nexport const SAVE_USER_ADDRESS_SUCCESS = 'SAVE_USER_ADDRESS_SUCCESS';\nexport const SAVE_USER_VERIFICATION_INFO = 'SAVE_USER_VERIFICATION_INFO';\nexport const SAVE_USER_VERIFICATION_INFO_SUCCESS = 'SAVE_USER_VERIFICATION_INFO_SUCCESS';\nexport const GET_WHETHER_USER_VERIFICATION_INFO_EXISTS = 'GET_WHETHER_USER_VERIFICATION_INFO_EXISTS';\nexport const GET_WHETHER_USER_VERIFICATION_INFO_EXISTS_SUCCESS = 'GET_WHETHER_USER_VERIFICATION_INFO_EXISTS_SUCCESS';\nexport const GET_WHETHER_USER_SUBSCRIBED_TO_TICKET = 'GET_WHETHER_USER_SUBSCRIBED_TO_TICKET';\nexport const GET_WHETHER_USER_SUBSCRIBED_TO_TICKET_SUCCESS = 'GET_WHETHER_USER_SUBSCRIBED_TO_TICKET_SUCCESS';\nexport const SEND_SMS = 'SEND_SMS';\nexport const SEND_SMS_SUCCESS = 'SEND_SMS_SUCCESS';\nexport const CONFIRM_THAT_USER_SUBSCRIBED_TO_TICKET = 'CONFIRM_THAT_USER_SUBSCRIBED_TO_TICKET';\n\nexport const DO_TICKET_CHECK = 'DO_TICKET_CHECK';\nexport const DO_TICKET_CHECK_SUCCESS = 'DO_TICKET_CHECK_SUCCESS';\nexport const RESET_CONFIRMATION_RESULT = 'RESET_CONFIRMATION_RESULT';\nexport const CONFIRM_USER_AS_VALID_TICKET_CUSTOMER = 'CONFIRM_USER_AS_VALID_TICKET_CUSTOMER';\nexport const CLEAR_CUSTOMER_TICKET_SUBSCRIPTION = 'CLEAR_CUSTOMER_TICKET_SUBSCRIPTION';\nexport const GET_TICKET_LIST = 'GET_TICKET_LIST';\nexport const GET_TICKET_LIST_SUCCESS = 'GET_TICKET_LIST_SUCCESS';\nexport const GET_TICKET = 'GET_TICKET';\nexport const MEMORIZE_TICKET_LIST = 'MEMORIZE_TICKET_LIST';\nexport const CLEAR_SINGLE_TICKET = 'CLEAR_SINGLE_TICKET';\nexport const GET_TICKET_SUCCESS = 'GET_TICKET_SUCCESS';\n\n\nexport const GET_USER_CLAIMS = 'GET_USER_CLAIMS';","import * as actionTypes from './actionTypes';\n\nexport const getAccessToken = () => {\n return {\n type: actionTypes.GET_ACCESS_TOKEN\n };\n };\n\n export const getAccessTokenSuccess = (token) => {\n return {\n type: actionTypes.GET_ACCESS_TOKEN_SUCCESS,\n token: token\n };\n };\n\n export const getGraphAccessToken = (ordinaryAccessToken) => {\n return {\n type: actionTypes.GET_GRAPH_ACCESS_TOKEN,\n ordinaryAccessToken: ordinaryAccessToken\n };\n };\n\n export const getGraphAccessTokenSuccess = (token) => {\n return {\n type: actionTypes.GET_GRAPH_ACCESS_TOKEN_SUCCESS,\n token: token\n };\n };\n\n\n export const getUserCredentials = () => {\n return {\n type: actionTypes.GET_USER_CREDENTIALS\n }\n }\n\n export const getUserCredentialsSuccess = (payLoad) => {\n return {\n type: actionTypes.GET_USER_CREDENTIALS_SUCCESS,\n payLoad: payLoad\n }\n }\n\n export const updateUserCredentials = (json, accessToken) => {\n return {\n type: actionTypes.UPDATE_USER_CREDENTIALS,\n json: json,\n accessToken: accessToken\n }\n }","import * as actionTypes from './actionTypes';\n\n\nexport const getUserAddressList = (userId) => {\n return {\n type: actionTypes.GET_USER_ADDRESS_LIST,\n userId: userId\n \n };\n };\n\n export const sendSMS = (customerFio, customerPhone, confirmationNumber) => {\n return {\n type: actionTypes.SEND_SMS,\n customerFio: customerFio,\n customerPhone: customerPhone,\n confirmationNumber: confirmationNumber\n \n };\n };\n\n export const getUserAddressListSuccess = (payload) => {\n return {\n type: actionTypes.GET_USER_ADDRESS_LIST_SUCCESS,\n payload: payload\n };\n };\n\n export const sendSMSSuccess = () => {\n return {\n type: actionTypes.SEND_SMS_SUCCESS\n };\n };\n\n export const SeeIfThisCustomerSentHisPhotosToVerification = () => {\n return {\n type: actionTypes.GET_WHETHER_USER_VERIFICATION_INFO_EXISTS\n \n };\n };\n\n export const SeeIfThisCustomerIsSubscribedToATicket = () => {\n return {\n type: actionTypes.GET_WHETHER_USER_SUBSCRIBED_TO_TICKET\n };\n }\n\n export const SeeIfThisCustomerSentHisPhotosToVerificationSuccess = (payload) => {\n return {\n type: actionTypes.GET_WHETHER_USER_VERIFICATION_INFO_EXISTS_SUCCESS,\n payload: payload\n };\n };\n\n export const SeeIfThisCustomerIsSubscribedToATicketSuccess = () => {\n return {\n type: actionTypes.GET_WHETHER_USER_SUBSCRIBED_TO_TICKET_SUCCESS\n };\n }\n\n export const saveUserVerificationInfo = (img1,img2,img3,customerId,customerLogin,customerFirstname,customerLastname,userPhone) => {\n return {\n type: actionTypes.SAVE_USER_VERIFICATION_INFO,\n img1: img1,\n img2: img2,\n img3: img3,\n customerId: customerId,\n customerLogin: customerLogin,\n customerFirstname: customerFirstname,\n customerLastname: customerLastname,\n userPhone: userPhone\n };\n };\n\n export const saveUserVerificationInfoSuccess = () => {\n return {\n type: actionTypes.SAVE_USER_VERIFICATION_INFO_SUCCESS\n };\n };\n\n export const removeUserAddress = (userId, addressId) => {\n return {\n type: actionTypes.REMOVE_USER_ADDRESS,\n userId: userId,\n addressId: addressId\n };\n };\n\n export const setUserAddressAsDefault = (userId, addressId) => {\n return {\n type: actionTypes.SET_USER_ADDRESS_AS_DEFAULT,\n userId: userId,\n addressId: addressId\n };\n };\n\n export const saveUserAddress = (objectToSend) => {\n return {\n type: actionTypes.SAVE_USER_ADDRESS,\n payLoad: objectToSend\n };\n };\n\n \n export const confirmThatUserSubscribedToATicket = (payload) => {\n return {\n type: actionTypes.CONFIRM_THAT_USER_SUBSCRIBED_TO_TICKET,\n isSubscribed: payload.userAssignedToTicket,\n customerId: payload.customerId\n };\n };\n\n\n ","import * as actionTypes from './actionTypes';\n\n\nexport const doTicketCheck = (ticketNumber, ticketSerial, customerLastName, customerFirstName) => {\n return {\n type: actionTypes.DO_TICKET_CHECK,\n ticketNumber: ticketNumber,\n ticketSerial: ticketSerial,\n customerLastName: customerLastName,\n customerFirstName: customerFirstName\n \n };\n };\n\n export const getTicketList = (customerId) => {\n return {\n type: actionTypes.GET_TICKET_LIST,\n customerId: customerId\n };\n };\n\n export const getTicketListSuccess = (payload) => {\n return {\n type: actionTypes.GET_TICKET_LIST_SUCCESS,\n payload: payload\n };\n };\n\n export const getTicket = (ticketId) => {\n return {\n type: actionTypes.GET_TICKET,\n ticketId: ticketId\n };\n };\n\n export const clearSingleTicket = () => {\n return {\n type: actionTypes.CLEAR_SINGLE_TICKET,\n };\n };\n\n export const memorizeTicketList = (ticketList) => {\n return {\n type: actionTypes.MEMORIZE_TICKET_LIST,\n ticketList: ticketList\n };\n }\n\n export const getTicketSuccess = (payload) => {\n return {\n type: actionTypes.GET_TICKET_SUCCESS,\n payload: payload\n };\n };\n\n export const doTicketCheckSuccess = (payload) => {\n return {\n type: actionTypes.DO_TICKET_CHECK_SUCCESS,\n payload: payload \n };\n };\n\n export const resetConfirmationResult = () => {\n return {\n type: actionTypes.RESET_CONFIRMATION_RESULT\n }\n }\n\n export const confirmUserAsValidTicketCustomer = (objectId, customerId) => {\n return {\n type: actionTypes.CONFIRM_USER_AS_VALID_TICKET_CUSTOMER,\n objectId: objectId,\n customerId: customerId \n }\n }\n\n export const clearCustomerTicketSubscription = (objectId) => {\n return {\n type: actionTypes.CLEAR_CUSTOMER_TICKET_SUBSCRIPTION,\n objectId: objectId\n }\n }","import { makeStyles, useTheme, ThemeProvider, theme, createMuiTheme } from '@material-ui/core/styles';\nimport Poppins from 'typeface-poppins';\nimport Lato from 'typeface-lato';\n\nexport const latoFont = createMuiTheme({\n typography: {\n fontFamily: [\n 'Lato',\n 'sans-serif',\n ].join(','),\n },});\n \nexport const poppinsFont = createMuiTheme({\n typography: {\n fontFamily: [\n 'Poppins',\n 'sans-serif',\n ].join(','),\n },});","import React, { useEffect } from 'react';\nimport Grid from \"@material-ui/core/Grid\";\nimport { connect } from 'react-redux';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\nimport Paper from \"@material-ui/core/Paper\";\nimport * as actions from '../../store/actions';\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\nimport { withRouter } from \"react-router-dom\";\nimport Badge from '@material-ui/core/Badge';\nimport { withStyles } from '@material-ui/core/styles';\nimport {poppinsFont} from '../../FontsImported';\nimport { makeStyles, useTheme, ThemeProvider, theme, createMuiTheme } from '@material-ui/core/styles';\nimport GifSpinner from '../UI/Spinner/GifSpinner';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n },\n toolbar: theme.mixins.toolbar,\n content: {\n flexGrow: 1,\n padding: theme.spacing(3),\n },\n menuButton: {\n marginRight: theme.spacing(2),\n marginLeft: theme.spacing(3)\n },\n paper: {\n //padding: theme.spacing(4),\n margin: \"auto\",\n \n },\n textShadow: {\n color: \"white\",\n textShadow: \"1px 1px #732372, 1px -1px #732372, -1px 1px #732372, -1px -1px #732372, 3px 3px 6px rgba(0,0,0,.5)\"\n }\n }));\n\n const StyledBadge = withStyles((theme) => ({\n badge: {\n right: 0,\n top: 10,\n border: `3px solid ${theme.palette.background.paper}`,\n padding: '15px 14px',\n },\n }))(Badge);\n\n \n\nconst Home = (props) =>\n{\n\n \n useEffect(() => { \n if(props.gotAccessToken) props.getOffersCount(); \n },[])\n\n\n\n const moveToOffers = () => {\nprops.history.push('./offers')\n }\n\n const classes = useStyles;\n //const theme = useTheme();\n return (\n \n \n \n \n Здравствуйте, {props.userFirstName}!\n Добро пожаловать в личный кабинет, где мы собрали все сервисы MtWin для Вашего удобства. \n В дальнейшем мы будем постоянно совершенствовать эти сервисы и добавлять новые. \n \n \n \n\n \n )\n }\n\n const mapDispatchToProps = dispatch => {\n return {\n getOffersCount: () => dispatch(actions.getOffersCount())\n };\n };\n\n const mapStateToProps = state => {\n return {\n shopOffersCount: state.offers.shopOffersCount,\n gotAccessToken: state.auth.gotAccessToken,\n userFirstName: state.auth.userFirstName,\n customerAccountServiceBaseUri: state.auth.customerAccountServiceBaseUri\n }\n }; \n\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(Home));\n\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\nconst useStyles = makeStyles(theme => ({\n \n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\"\n }\n}));\n\nconst GifSpinner = () => {\n const classes = useStyles();\n\n return (\n \n)}\n\n\n\nexport default GifSpinner;","import React from 'react';\nimport NumberFormat from \"react-number-format\";\n\nconst WithNumberFormat = props => (\n\n)\n\nexport default WithNumberFormat;","import * as React from \"react\"\n\nfunction ThumbsUpSvg(props) {\n return (\n \n \n \n )\n}\n\nexport default ThumbsUpSvg","import * as React from \"react\"\n\nfunction MegaphoneFilledSvg(props) {\n return (\n \n \n \n )\n}\n\nexport default MegaphoneFilledSvg\n","import * as React from \"react\"\n\n\nconst HourglassColorSvg = (props) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\n\n\n\nexport default HourglassColorSvg","import * as React from \"react\"\n\nconst HourglassColorStrikedoutSvg = (props) => (\n \n {\"Layer 1\"}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default HourglassColorStrikedoutSvg\n","import React from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport {Link} from 'react-router-dom';\nimport Grid from \"@material-ui/core/Grid\";\nimport Paper from \"@material-ui/core/Paper\";\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\nimport WithNumberFormat from '../../Hoc/WithNumberFormat';\nimport { connect } from 'react-redux';\nimport { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';\nimport * as actions from '../../../store/actions';\nimport moment from 'moment';\nimport MailIcon from '@material-ui/icons/Mail';\nimport NotificationsActiveIcon from '@material-ui/icons/NotificationsActive';\nimport ThumbsUpSvg from '../../UI/Icons/ThumbsUpSvg';\nimport MegaphoneFilledSvg from '../../UI/Icons/MegaphoneFilledSvg';\nimport HourglassColorSvg from '../../UI/Icons/HourglassColor';\nimport HourglassColorStrikedoutSvg from '../../UI/Icons/HourglassColorStrikedout';\nimport { UrlUtils } from 'msal';\n\n\nconst useStyles = makeStyles((theme) => ({\n\n root: {\n flexGrow: 1\n },\n paper: {\n padding: theme.spacing(2),\n margin: \"auto\",\n maxWidth: 550\n },\n image: {\n width: 128,\n height: 128\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\"\n },\n orangeText: {\n color: \"orange\"\n },\n blueText: {\n color: \"blue\"\n },\n blueTextBordered: {\n color: \"blue\",\n fontSize: '1.1Em'\n //border: \"1px solid\"\n }\n \n }));\n\n const fontWeightMedium = 600;\nconst themePoppins = createMuiTheme({\n typography: {\n fontFamily: '\"Poppins\", sans-serif', fontWeightMedium\n },\n })\n\n const getCorrectTitleStyle = (offerType) => {\n switch(offerType)\n {\n case 4 : return 'textPrimary';\n case 3 : return 'primary';\n case 2 : return 'secondary';\n case 1 : return 'secondary';\n default: return 'initial'\n }\n }\n\n const getRightRightIcon = (offerType, isExpired) => {\n switch(offerType)\n {\n case 3: return \n case 2: if(isExpired) return (); else return ()\n case 1: return \n }\n }\n\n\n \n const getRightOfferWord = (offerType,offerDate) => {\n let toReturn = undefined;\n switch (offerType) {\n case 3:\n toReturn = 'Принято: '; break;\n case 2:\n toReturn = 'ВСТРЕЧНОЕ: '; break;\n case 1:\n toReturn = 'Предложено: '; break;\n default:\n toReturn = ' ';\n }\n return toReturn + moment(offerDate).format(\"DD.MM.YYYY HH:mm\");\n //return toReturn;\n};\n\n const ItemForMobile = (props) =>\n {\n \n const classes = useStyles();\n\n\n return (\n \n \n {/*
*/}\n
\n \n {/* {\n !props.isExpired ? : null \n } */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {props.lotName}\n \n \n \n \n КОД: {props.internalNumber}\n \n \n \n \n {getRightOfferWord(props.offerType, props.offerDate )} \n \n \n {/* {moment(props.offerDate).format(\"DD.MM.YYYY HH:mm\")} */}\n {\n props.offerType == 2 && moment(props.expiredDate).isAfter(moment()) ? (\n \n \n Истекает:\n \n {/* {moment(props.expiredDate).format(\"DD.MM.YYYY HH:mm\")} */}\n {moment(props.expiredDate).format(\"DD.MM.YYYY HH:mm\")}\n \n ) : \"\"\n \n }\n \n \n \n \n \n {\n props.showPriceOfferAlert ? : null\n }\n {\n props.showTextAlert ? : null\n }\n {\n getRightRightIcon(props.offerType, props.isExpired)\n }\n \n \n\n \n \n\n  ₽\n {/* {\n props.offerType == 2 && moment(props.expiredDate).isAfter(moment()) ? ({moment(props.expiredDate).format(\"DD.MM.YYYY HH:mm\")}) : \"\"\n \n } */}\n \n\n \n \n \n \n \n \n
\n \n \n )\n }\n\n const mapStateToProps = state => {\n return {\n accountInfo: state.auth.idToken\n }\n};\n\n const mapDispatchToProps = dispatch => {\n return {\n getOfferItems: (token,limit,offset) => dispatch(actions.getOffers(token,limit,offset))\n };\n};\n\n export default connect(mapStateToProps, mapDispatchToProps)(ItemForMobile);\n ","import React, { useEffect, useState } from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport ItemForMobile from './ItemForMobile/ItemForMobile';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { connect } from 'react-redux';\nimport * as actions from '../../store/actions/index';\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n },\n toolbar: theme.mixins.toolbar,\n content: {\n flexGrow: 1,\n padding: theme.spacing(3),\n },\n title: {\n flexGrow: 1,\n },\n }));\n\n\n\n\nconst Offers = (props) => {\n\n// const classes = useStyles;\n\n const [offerItems, setOfferItems] = useState([]);\n const [hasMoreItems, setHasMoreItems] = useState(true);\n const [skip, setSkip] = useState(0);\n\n\n //useEffect(() => { props.getOfferItems('silos',10,0,props.accountInfo.idToken.name); }, [])\n useEffect(() => {\n console.log('offers.jsx L50'); \n props.getOfferItems(500,0,props.axiosOffers); \n props.clearOffer();\n props.clearChat();\n if(props.accountInfo) console.log('Account info from Offers.jsx=',props.accountInfo)\n }, [props.accountInfo])\n \n \n return (\n \n \n {/* \n \n Все предложения цены\n */}\n\n \n \n {props.offerItems.map((item,index) => {\n const {lotName, internalNumber, offerPrice, offerDate, tradePrice, expiredDate, pictureId, offerId, offerType, isExpired} = item;\n let idx = props.alertsArray.findIndex(chr => chr.offerId == offerId && chr.textMessageAlertCount > 0);\n const showTextAlert = idx > -1;\n idx = props.alertsArray.findIndex(chr => chr.offerId == offerId && chr.priceOfferAlertCount > 0);\n const showPriceOfferAlert = idx > -1;\n \n \n return (\n \n \n )\n })\n }\n\n\n \n )\n}\n\nconst mapStateToProps = state => {\n return {\n offerItems: state.offers.offerItems,\n count: state.offers.offersCount,\n accountInfo: state.auth.idToken,\n axiosOffers: state.auth.axiosOffers,\n alertsArray: state.offers.alertsArray\n }\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n getOfferItems: (limit,offset,axios) => dispatch(actions.getOffers(limit,offset,axios)),\n clearOffer: () => dispatch(actions.clearOffer()),\n clearChat: () => dispatch(actions.clearChat())\n\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Offers);\n\n","import React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport Hidden from '@material-ui/core/Hidden'\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n },\n toolbar: theme.mixins.toolbar,\n content: {\n flexGrow: 1,\n padding: theme.spacing(3),\n },\n title: {\n flexGrow: 1,\n },\n }));\n\nconst settings = (props) => {\n const classes = useStyles;\n return (\n \n Настройки\n \n smUp\n \n \n xsDown\n \n\n \n )\n}\n\nexport default settings;","import React, { useEffect, useState } from 'react';\nimport { makeStyles, theme } from '@material-ui/core/styles';\nimport { connect } from 'react-redux';\nimport Button from '@material-ui/core/Button';\nimport TextField from '@material-ui/core/TextField';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Grid from \"@material-ui/core/Grid\";\nimport * as actions from '../../../store/actions';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n padding: 10\n },\n paper: {\n padding: theme.spacing(4),\n margin: \"auto\",\n maxWidth: 600\n },\n image: {\n width: 200,\n height: 200\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\"\n },\n orangeText: {\n color: \"orange\"\n },\n blueText: {\n color: \"blue\"\n },\n blueTextBordered: {\n color: \"blue\",\n border: \"1px solid\"\n }\n }));\n\n const OfferDialog = (props) =>\n {\n const { open } = props;\n \n const [openDialog, setOpenDialog] = React.useState(open);\n const [err, setErr] = React.useState(false);\n const[helperText, setHelperText] = React.useState(undefined);\n const [offerPrice, setOfferPrice] = React.useState(undefined);\n console.log(\"[OfferDialog]openDialog=\",openDialog)\n const handleClose = () => { setOpenDialog(false); };\n const classes = useStyles();\n\n \n\n \n\n const proceedWithBackend = () => {\n props.counterOffer(props.offer.offerId, offerPrice);\n props.dialogClose();\n }\n\n const valueChanged = (event) => {\n if(event.target.value <= props.offer.lastClientPrice) {\n setErr(true);\n setHelperText(\"Ваше предложение цены не может быть меньше предыдущего\");\n }\n else {\n setErr(false);\n setOfferPrice(event.target.value);\n setHelperText(undefined);\n }\n\n //setOfferPrice(e.target.value);if(e.target.value <= props.offer.lastClientPrice) setErr(true); else setErr(false);}\n }\n\n return (\n \n \n Предложите свою цену\n \n \n Ваше ценовое предложение будет принято к рассмотрению. В случае положительного решения наши сотрудники свяжутся с Вами.\n \n
\n \n \n \n \n\n \n {setOfferPrice(e.target.value);if(e.target.value <= props.offer.lastClientPrice) setErr(true); else setErr(false);}}\n onChange={valueChanged}\n helperText={helperText}\n />\n\n \n\n \n\n\n \n \n
\n
\n \n \n \n
\n
\n )\n }\n\n const mapStateToProps = state => {\n return {\n offer: state.offers.offer,\n accountInfo: state.auth.idToken\n }\n };\n\n const mapDispatchToProps = dispatch => {\n return {\n counterOffer: (offerId, offerPrice) => dispatch(actions.counterOffer(offerId, offerPrice))\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OfferDialog); \n//export default OfferDialog;\n\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles, theme } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableRow from '@material-ui/core/TableRow';\nimport * as actions from '../../../store/actions';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport WithNumberFormat from '../../Hoc/WithNumberFormat';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n padding: 10\n },\n paper: {\n padding: theme.spacing(4),\n margin: \"auto\",\n maxWidth: 550\n },\n image: {\n width: 200,\n height: 200\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\"\n },\n orangeText: {\n color: \"orange\"\n },\n blueText: {\n color: \"blue\"\n },\n blueTextBordered: {\n color: \"blue\",\n border: \"1px solid\"\n },\n redColor: {\n backgroundColor: \"red\",\n padding: \"10px 10px\"\n },\n yellowColor: {\n backgroundColor: \"yellow\"\n },\n greenColor: {\n backgroundColor: \"green\"\n },\n blueColor: {\n backgroundColor: \"blue\"\n },\n orangeColor: {\n backgroundColor: \"orange\",\n textAlign: \"right\",\n padding: \"10px 10px\"\n }\n \n }));\n\n const getCorrectStyle = (offerType) => {\n switch(offerType)\n {\n case 4 : return 'grey';\n case 3 : return 'lime';\n case 2 : return 'orange';\n case 1 : return 'blue';\n default: return 'red'\n }\n }\n\n const OfferHistoryDialog = (props) =>\n{\n \n const {offerId} = props;\n //console.log('silosofiaOfferHistorydialog=',offerId);\n useEffect(() => {props.getOfferHistory(107,0,'silos',offerId);},[]);\n\n //console.log(\"musica=\",props)\n\n const proceedWithBackend = () => {\n //props.saveMyOffer\n props.historyDialogClose();\n\n }\n \n const classes = useStyles();\n return (\n \n\n \n {/* Предложите свою цену */}\n \n {/* */}\n \n\n\n \n \n \n \n {props.offerHistory.map((row) => (\n \n {moment(row.offerDate).format(\"DD.MM.YYYY HH:mm\")}\n {row.firstName+' '+row.lastName}\n \n \n ))}\n \n\n
\n
\n\n\n\n {/*
\n
\n \n \n \n
*/}\n
\n \n \n \n
\n
\n )\n}\n\nconst mapStateToProps = state => {\n return {\n accountInfo: state.auth.idToken,\n offerHistory: state.offers.offerHistory\n }\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n getOfferHistory: (limit,offset,name, offerId) => dispatch(actions.getOfferHistory(limit,offset,name, offerId))\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OfferHistoryDialog)\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles, theme, ThemeProvider, createMuiTheme } from '@material-ui/core/styles';\nimport moment from 'moment';\nimport IconButton from '@material-ui/core/IconButton';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from '@material-ui/core/Grid';\nimport SendIcon from '@material-ui/icons/Send';\nimport Paper from '@material-ui/core/Paper';\nimport * as actions from '../../../store/actions';\nimport ImgsViewer from 'react-images-viewer';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n padding: 10,\n },\n paper: {\n padding: theme.spacing(2),\n margin: 'auto',\n maxWidth: 600,\n },\n image: {\n width: 200,\n height: 200,\n },\n img: {\n margin: 'auto',\n display: 'block',\n maxWidth: '100%',\n maxHeight: '100%',\n },\n}));\n\nconst Chat = props => {\n useEffect(() => {\n console.log('[Chat.jsx] props.chat', props.chat);\n\n if (props.chat.length > 0) {\n console.log('[Chat.jsx] props.offer.offerId=', props.offer.offerId);\n let messageIds = [];\n console.log('[Chat.jsx] props.chat.length=', props.chat.length);\n for (let message of props.chat) {\n if (message.messageLogin !== props.userLogin) {\n if (message.seenByList == null) messageIds.push(message.messageId);\n else {\n let idx = message.seenByList.findIndex(chr => chr.personLogin == props.userLogin);\n console.log('[Chat.jsx] idx=', idx);\n if (idx === -1) messageIds.push(message.messageId);\n }\n }\n }\n if (messageIds.length > 0) {\n console.log('[Chat.jsx] messageIds=', messageIds);\n props.setSeenBy(props.offer.offerId, messageIds, 'TextMessage');\n }\n }\n }, [props.chat.length,props.offer.offerId]);\n\n const { match } = props;\n const { params } = match;\n const { offerId } = params;\n const [textMessage, setTextMessage] = React.useState('');\n const [viewerIsOpen, setViewerIsOpen] = React.useState(false);\n const [pict, setPict] = React.useState('');\n\n const textMessageChanged = event => {\n setTextMessage(event.target.value);\n };\n\n const sendTextMessage = () => {\n props.postTextMessage(props.offer.offerId, textMessage);\n setTextMessage('');\n };\n\n const getRightPicAddress = (picId) => {\n if(props.environment == 'PROD') return 'http://ws.mtwin.ru/AuctionService/api/image/GetImageById/' + picId + '/450/300';\n else return 'http://dev-ws.mtwin.ru/AuctionService/api/image/GetImageById/' + picId + '/450/300';\n }\n\n const getRightJustify = messageType => {\n let toReturn = '';\n if (messageType == 1) toReturn = 'flex-end';\n if (messageType == 2) toReturn = 'flex-start';\n return toReturn;\n };\n\n const getRealPaperColor = messageType => {\n let toReturn = 'white';\n //if (messageType == 1) toReturn = '#F5F5F5';\n //if (messageType == 2) toReturn = 'Snow';\n if (messageType == 1) toReturn = '#64fcd7';\n if (messageType == 2) toReturn = '#ededed';\n return toReturn;\n };\n\n const shuppka = pictureId => {\n console.log(pictureId);\n //setViewerIsOpen(true);\n };\n\n const getRightColorForUsername = messageType => {\n let toReturn = 'black';\n if (messageType == 1) toReturn = 'DimGray';\n if (messageType == 2) toReturn = 'DimGray';\n return toReturn;\n };\n\n const classes = useStyles();\n\n return (\n \n {\n setViewerIsOpen(false);\n }}\n closeBtnTitle='закрыть просмотр'\n />\n\n \n \n \n \n\n \n \n \n \n \n \n\n {props.chat.map(row => (\n \n \n \n \n \n {row.messageFirstName + ' ' + row.messageLastName}\n \n \n \n \n {row.text ? (\n {row.text}\n ) : (\n {\n if(props.environment === 'PROD') setPict('http://ws.mtwin.ru/AuctionService/api/image/GetImageById/' + row.pictureId + '/1500/1000');\n else setPict('http://dev-ws.mtwin.ru/AuctionService/api/image/GetImageById/' + row.pictureId + '/1500/1000');\n setViewerIsOpen(true);\n }}\n \n src={getRightPicAddress(row.pictureId)}\n />\n )}\n \n \n \n \n {moment(row.messageDate).format('DD.MM.YYYY HH:mm')}\n \n \n \n \n \n ))}\n \n );\n};\n\nconst mapStateToProps = state => {\n return {\n chat: state.offers.chatItems,\n count: state.offers.chatCount,\n offer: state.offers.offer,\n userLogin: state.auth.userLogin,\n environment: state.auth.environment\n };\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n postTextMessage: (offerId, textMessage) => dispatch(actions.postTextMessage(offerId, textMessage)),\n setSeenBy: (offerId, messageIds, messageType) => dispatch(actions.setSeenBy(offerId, messageIds, messageType)),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(Chat));\n","import React, { useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\n//import IconButton from '@material-ui/core/IconButton';\nimport ButtonBase from '@material-ui/core/ButtonBase';\nimport moment from 'moment';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport Typography from '@material-ui/core/Typography';\nimport WithNumberFormat from '../../Hoc/WithNumberFormat';\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\nimport * as actions from '../../../store/actions';\nimport Poppins from 'typeface-poppins';\nimport { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';\nimport OfferDialog from './OfferDialog';\nimport OfferHistoryDialog from '../OfferHistoryDialog/OfferHistoryDialog';\nimport Chat from './Chat';\nimport Hidden from '@material-ui/core/Hidden';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport { useTheme } from '@material-ui/core/styles';\nimport RefreshIcon from '@material-ui/icons/Refresh';\nimport Fab from '@material-ui/core/Fab';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n padding: 10,\n },\n paper: {\n padding: theme.spacing(4),\n margin: 'auto',\n maxWidth: 600,\n },\n image: {\n width: 200,\n height: 200,\n },\n img: {\n margin: 'auto',\n display: 'block',\n maxWidth: '100%',\n maxHeight: '100%',\n },\n menuButton: {\n marginRight: theme.spacing(2),\n },\n orangeText: {\n color: 'orange',\n },\n fab: {\n margin: 90,\n top: 70,\n right: 120,\n bottom: 120,\n left: 180,\n position: 'relative',\n },\n blueText: {\n color: 'blue',\n },\n blueTextBordered: {\n color: 'blue',\n border: '1px solid',\n },\n redColor: {\n backgroundColor: 'red',\n padding: '10px 10px',\n },\n yellowColor: {\n backgroundColor: 'yellow',\n },\n greenColor: {\n backgroundColor: 'green',\n },\n blueColor: {\n backgroundColor: 'blue',\n },\n orangeColor: offerType => {\n switch (offerType) {\n case 2:\n return {\n backgroundColor: 'orange',\n textAlign: 'right',\n padding: '10px 10px',\n color: 'white',\n fontSize: '1.1Em',\n };\n case 1:\n return {\n backgroundColor: '#2196f3',\n textAlign: 'right',\n padding: '10px 10px',\n color: 'white',\n fontSize: '1.1Em',\n };\n case 3:\n return {\n backgroundColor: '#1ABC9C',\n textAlign: 'right',\n padding: '10px 10px',\n color: 'white',\n fontSize: '1.1Em',\n };\n case 4:\n return {\n backgroundColor: 'grey',\n textAlign: 'right',\n padding: '10px 10px',\n color: 'white',\n fontSize: '1.1Em',\n };\n }\n },\n infoColor: { backgroundColor: theme.palette.info.main, color: 'white' },\n successColor: { backgroundColor: theme.palette.success.main, color: 'white' },\n}));\n\nconst fontWeightMedium = 700;\nconst themePoppins = createMuiTheme({\n typography: {\n fontFamily: '\"Poppins\", sans-serif', fontWeightMedium\n \n },\n palette: {\n \n primary: {\n main: '#1ABC9C' // зелёный от MTWIN\n },\n secondary: {\n //main: '#2196f3', //индиго от MUI\n main: '#757575', //тёмно-серый от Бори\n \n },\n error: {\n main: '#ff9100', //оранжевый цвет\n },\n },\n })\n\nconst printTitleMessage = offerType => {\n switch (offerType) {\n case 1:\n return 'МОЁ ПРЕДЛОЖЕНИЕ';\n case 2:\n return 'ВСТРЕЧНОЕ ПРЕДЛОЖЕНИЕ';\n case 3:\n return 'ПРЕДЛОЖЕНИЕ СОГЛАСОВАНО';\n case 4:\n return 'ПРЕДЛОЖЕНИЕ ОТКЛОНЕНО';\n }\n};\n\nconst ItemCard = props => {\n const { match } = props;\n const { params } = match;\n const { offerId } = params;\n const theme = useTheme();\n const matchesMdUp = useMediaQuery(theme => theme.breakpoints.up('md'));\n\n const [acceptOfferDialogOpen, setAcceptOfferDialogOpen] = React.useState(false);\n const [historyDialogOpen, setHistoryDialogOpen] = React.useState(false);\n\n const handleClickOpen = () => {\n setAcceptOfferDialogOpen(true);\n //alert('сафа');\n };\n\n\n const closeAcceptOfferDialog = () => {\n setAcceptOfferDialogOpen(false);\n };\n\n const historyDialogClose = () => {\n setHistoryDialogOpen(false);\n };\n\n const handleAcceptOffer = () => {\n //alert(props.offer.offerId)\n props.acceptOffer(props.offer.offerId, props.environment);\n props.history.push('/offers');\n };\n\n const getCorrectTitleStyle = offerType => {\n switch (offerType) {\n case 3:\n return 'secondary';\n case 2:\n return 'secondary';\n case 1:\n return 'secondary';\n default:\n return 'initial';\n }\n };\n\n const getCorrectTitleStyleForThePrice = offerType => {\n \n switch (offerType) {\n case 3:\n return 'primary';\n case 2:\n return 'primary';\n case 1:\n return 'primary';\n default:\n return 'initial';\n }\n };\n\n const renderActionButtons = offerType => {\n console.log('[ItemCard](renderActionButtons) offerType=',offerType);\n switch (offerType) {\n case 2:\n return (\n \n \n {/* \n \n \n \n \n \n );\n case 3:\n return (\n \n \n \n \n \n ); \n }\n };\n\n useEffect(() => {\n console.log('[ItemCard.jsx] ooofffeeerrrid=',offerId)\n if(typeof props.offer.messageId == 'undefined') {console.log('[ItemCard.jsx] CCofferId=',offerId);props.getOffer(offerId);}\n else {\n //console.log('offerid=',offerId)\n //console.log('props.offer.messageId=',props.offer.messageId)\n\n const idx = props.alertsArray.findIndex(chr => chr.offerId == offerId && chr.priceOfferAlertCount > 0);\n //console.log('idx=',idx)\n if (idx > -1) {\n // console.log('props.offerккккккккккккккккк=', props.offer);\n let messageIds = [props.offer.messageId];\n props.setSeenBy(offerId, messageIds, 'PriceOfferMessage');\n }\n\n }\n\n \n\n }, [offerId,props.offer.messageId,props.alertsArray.length]);\n\n const classes = useStyles(props.offer.offerType);\n\n return (\n \n {/* \n \n Главная страница\n \n \n Все предложения цены\n \n Карточка товара\n */}\n\n
\n \n \n \n \n \n {/* */}\n\n \n \n {printTitleMessage(props.offer.offerType)}\n \n \n \n \n \n \n \n  ₽\n \n \n \n \n\n \n \n \n {/* */}\n {/* props.getOffer(offerId)} className={classes.menuButton} color='primary'>\n {' '}\n {' '}\n */}\n \n \n {printTitleMessage(props.offer.offerType)}\n \n \n \n\n \n \n \n  ₽\n \n \n \n \n\n \n\n \n \n {typeof props.offer.pictureId == 'undefined' ? null : Изображение товара}\n \n \n\n \n \n \n \n Предложение истекает {moment(props.offer.expiredDate).format('DD.MM.YYYY HH:mm')}\n \n \n {props.offer.lotName}\n \n \n \n КОД: {props.offer.internalNumber}\n \n \n\n \n {props.offer.productDescription}\n \n\n {/* */}\n\n \n \n {\n setHistoryDialogOpen(true);\n }}>\n ИСТОРИЯ ПРЕДЛОЖЕНИЙ\n \n \n \n \n \n \n {renderActionButtons(props.offer.offerType)}\n\n \n\n\n \n \n \n \n \n \n \n
\n {acceptOfferDialogOpen ? : null}\n {historyDialogOpen ? (\n \n ) : null}\n\n props.getOffer(offerId)} color='primary' style={{ margin: 0, top: 'auto', right: 20, bottom: 30, left: 'auto', position: 'fixed', color: \"white\" }}>\n \n \n
\n );\n};\n\nconst mapStateToProps = state => {\n return {\n offer: state.offers.offer,\n timer: state.offers.timer,\n alertsArray: state.offers.alertsArray,\n environment: state.auth.environment,\n };\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n getOffer: offerId => dispatch(actions.getOffer(offerId)),\n acceptOffer: (offerId,env) => dispatch(actions.acceptOffer(offerId,env)),\n setSeenBy: (offerId, messageIds, messageType) => dispatch(actions.setSeenBy(offerId, messageIds, messageType)),\n \n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(ItemCard));\n","import * as React from \"react\"\n\nfunction CreditCardSvg(props) {\n return (\n \n \n \n \n )\n}\n\nexport default CreditCardSvg\n","import * as React from \"react\"\n\nconst BackwardSvg = (props) => (\n \n \n \n \n)\n\nexport default BackwardSvg","import React, { useEffect,useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Divider from '@material-ui/core/Divider';\nimport ButtonBase from '@material-ui/core/ButtonBase';\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport Container from '@material-ui/core/Container';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport Typography from '@material-ui/core/Typography';\nimport CreditCardSvg from \"../UI/Icons/CreditCardSvg\";\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\nimport * as actions from '../../store/actions';\nimport IconButton from '@material-ui/core/IconButton';\nimport { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';\nimport WithNumberFormat from '../Hoc/WithNumberFormat';\nimport moment from \"moment\";\nimport { useTheme } from '@material-ui/core/styles';\nimport BackwardSvg from '../UI/Icons/BackwardSvg';\nimport { useHistory } from \"react-router-dom\";\nimport { Tooltip } from '@material-ui/core';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n padding: 10,\n },\n paper: {\n padding: theme.spacing(4),\n margin: 'auto',\n \n },\n image: {\n width: 200,\n height: 200,\n },\n img: {\n margin: 'auto',\n display: 'block',\n maxWidth: '100%',\n maxHeight: '100%',\n },\n menuButton: {\n marginRight: theme.spacing(2),\n },\n orangeText: {\n color: 'orange',\n },\n fab: {\n margin: 90,\n top: 70,\n right: 120,\n bottom: 120,\n left: 180,\n position: 'relative',\n },\n blueText: {\n color: 'blue',\n },\n blueTextBordered: {\n color: 'blue',\n border: '1px solid',\n },\n redColor: {\n backgroundColor: 'red',\n padding: '10px 10px',\n },\n yellowColor: {\n backgroundColor: 'yellow',\n },\n greenColor: {\n backgroundColor: 'green',\n },\n blueColor: {\n backgroundColor: 'blue',\n },\n orangeColor: offerType => {\n switch (offerType) {\n case 2:\n return {\n backgroundColor: 'orange',\n textAlign: 'right',\n padding: '10px 10px',\n color: 'white',\n fontSize: '1.1Em',\n };\n case 1:\n return {\n backgroundColor: '#2196f3',\n textAlign: 'right',\n padding: '10px 10px',\n color: 'white',\n fontSize: '1.1Em',\n };\n case 3:\n return {\n backgroundColor: '#1ABC9C',\n textAlign: 'right',\n padding: '10px 10px',\n color: 'white',\n fontSize: '1.1Em',\n };\n case 4:\n return {\n backgroundColor: 'grey',\n textAlign: 'right',\n padding: '10px 10px',\n color: 'white',\n fontSize: '1.1Em',\n };\n }\n },\n infoColor: { backgroundColor: theme.palette.info.main, color: 'white' },\n successColor: { backgroundColor: theme.palette.success.main, color: 'white' },\n}));\n\nconst fontWeightMedium = 700;\nconst themePoppins = createMuiTheme({\n typography: {\n fontFamily: '\"Poppins\", sans-serif', fontWeightMedium\n \n },\n palette: {\n \n primary: {\n main: '#1ABC9C' // зелёный от MTWIN\n },\n secondary: {\n //main: '#2196f3', //индиго от MUI\n main: '#757575', //тёмно-серый от Бори\n \n },\n error: {\n main: '#ff9100', //оранжевый цвет\n },\n },\n })\n\n const TicketCard = props => {\n const { match } = props;\n const { params } = match;\n const { ticketId } = params;\n const theme = useTheme();\n const classes = useStyles();\n const [ticket, setTicket] = useState({});\n const [ticketItems, setTicketItems] = useState([]);\n\n let history = useHistory();\n\n useEffect(() => {\n\n if(!props.singleTicket) props.getTicket(ticketId)\n if(props.singleTicket)\n {\n console.log('props.singleTicket',props.singleTicket)\n setTicket(props.singleTicket);\n setTicketItems(props.singleTicket.ticketItems);\n }\n \n }, [props.singleTicket]);\n\n const doTicketItems = ( )=> {\n console.log('pipcher=',ticketItems)\n ticketItems.map((item,index) => {\n return (\n \n
Groholm
\n
\n )\n })\n\n // return (\n // \n //
Groholm
\n //
\n // )\n \n }\n\n return (\n \n {/* */}\n \n \n \n \n \n \n\n \n \n {ticket.ticketNumber || ''}\n \n \n {ticket.stateReadable || ''}\n \n \n\n \n \n {ticket.ticketName || ''}\n \n \n\n \n \n Дата займа\n \n \n {moment(ticket.dateOfIssue).format(\"DD.MM.YYYY\") || ''}\n \n \n\n \n \n Дата окончания договора\n \n \n {moment(ticket.termInDate).format(\"DD.MM.YYYY\") || ''}\n \n \n\n \n \n Окончание льготного периода\n \n \n {moment(ticket.endOfGracePeriodDate).format(\"DD.MM.YYYY\") || ''}\n \n \n\n \n \n Ставка (% в день)\n \n \n {ticket.interestRate || ''}\n \n \n\n \n \n Дней пользования займом\n \n \n {ticket.daysInUse || ''}\n \n \n\n\n \n \n Начислено за пользование займом (руб.)\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n {\n ticketItems.map((item,index) => {\n return (\n \n \n \n {item.itemName}\n \n \n займ (руб.)
{item.loan}
\n оценка (руб.)
{item.estimate}\n {/* \n\n {item.loan}\n */}\n
\n
\n
\n )\n })\n }\n \n \n \n\n\n\n
\n
\n
\n
\n )\n }\n\n const mapStateToProps = state => {\n return {\n singleTicket: state.ticket.singleTicket,\n // timer: state.offers.timer,\n // alertsArray: state.offers.alertsArray,\n };\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n getTicket: ticketId => dispatch(actions.getTicket(ticketId)),\n \n // acceptOffer: offerId => dispatch(actions.acceptOffer(offerId)),\n // setSeenBy: (offerId, messageIds, messageType) => dispatch(actions.setSeenBy(offerId, messageIds, messageType)),\n \n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(TicketCard));","import { createHashHistory } from 'history';\nexport default createHashHistory({});","import * as React from \"react\"\n\nfunction HomeSvg(props) {\n return (\n \n \n \n \n )\n}\n\nexport default HomeSvg","import * as React from \"react\"\n\nfunction CoinsSvg(props) {\n return (\n \n \n \n )\n}\n\nexport default CoinsSvg","import * as React from \"react\"\n\nfunction GavelSvg(props) {\n return (\n \n \n \n \n )\n}\n\nexport default GavelSvg\n","import * as React from \"react\"\n\nfunction StoreSvg(props) {\n return (\n \n \n \n \n \n \n )\n}\n\nexport default StoreSvg\n","import * as React from \"react\"\n\nfunction TagsSvg(props) {\n return (\n \n \n \n )\n}\n\nexport default TagsSvg\n","import * as React from \"react\"\n\nfunction UserProfileSvg(props) {\n return (\n \n \n \n \n )\n}\n\nexport default UserProfileSvg\n","import * as React from \"react\"\n\nfunction UserAddressBookSvg(props) {\n return (\n \n \n \n \n )\n}\n\nexport default UserAddressBookSvg\n","import * as React from \"react\"\n\nfunction UserAddressSvg(props) {\n return (\n \n \n \n \n )\n}\n\nexport default UserAddressSvg\n","import * as React from \"react\"\n\nfunction VerificationSvg(props) {\n return (\n \n \n \n )\n}\n\nexport default VerificationSvg\n","import React, { useEffect } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useLocation } from \"react-router-dom\";\nimport List from \"@material-ui/core/List\";\nimport * as actions from \"../../store/actions\";\nimport Divider from \"@material-ui/core/Divider\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport SettingsIcon from \"@material-ui/icons/Settings\";\nimport CompareArrowsIcon from \"@material-ui/icons/CompareArrows\";\nimport ExpandLess from \"@material-ui/icons/ExpandLess\";\nimport ExpandMore from \"@material-ui/icons/ExpandMore\";\nimport Collapse from \"@material-ui/core/Collapse\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport Badge from \"@material-ui/core/Badge\";\nimport { withStyles } from \"@material-ui/core/styles\";\nimport hashHistory from \"../Shared/hashHistory\";\n\n\nimport HomeSvg from \"../UI/Icons/HomeSvg\";\nimport CoinsSvg from \"../UI/Icons/CoinsSvg\";\nimport GavelSvg from \"../UI/Icons/GavelSvg\";\nimport CreditCardSvg from \"../UI/Icons/CreditCardSvg\";\nimport StoreSvg from \"../UI/Icons/StoreSvg\";\nimport TagsSvg from \"../UI/Icons/TagsSvg\";\nimport UserProfileSvg from \"../UI/Icons/UserProfileSvg\";\nimport UserAddressBookSvg from \"../UI/Icons/UserAddressBookSvg\";\nimport UserAddressSvg from \"../UI/Icons/UserAddressSvg\";\nimport VerificationSvg from \"../UI/Icons/VerificationSvg\";\n\nconst drawerWidth = 250;\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n maxWidth: 360,\n backgroundColor: theme.palette.background.paper,\n },\n nested: {\n paddingLeft: theme.spacing(4),\n },\n}));\n\nconst MyDrawer = (props) => {\n const { history } = props;\n const location = useLocation();\n //console.log('[Drawer] location=',location)\n const isSelected = (whereAmI) => {\n return location.pathname === whereAmI;\n };\n\n useEffect(() => {\n props.getOffersCount();\n }, []);\n\n const classes = useStyles();\n const [openCommodities, setOpenCommodities] = React.useState(false);\n const [openProfile, setOpenProfile] = React.useState(false);\n const handleClick = () => {\n setOpenCommodities(!openCommodities);\n };\n const handleClickProfile = () => {\n setOpenProfile(!openProfile);\n };\n\n const StyledBadgeMyOfferCount = withStyles((theme) => ({\n badge: {\n right: 0,\n top: 0,\n //marginRight: theme.spacing(2),\n opacity: 0.6,\n border: `3px solid ${theme.palette.background.paper}`,\n fontSize: \"1.1em\",\n fontWeight: \"600\",\n padding: \"8px 8px\",\n backgroundColor: \"#2196f3\",\n },\n }))(Badge);\n\n const StyledBadgeShopOfferCount = withStyles((theme) => ({\n badge: {\n right: 23,\n top: 0,\n //marginRight: theme.spacing(2),\n fontSize: \"1.1em\",\n fontWeight: \"600\",\n opacity: 0.6,\n border: `3px solid ${theme.palette.background.paper}`,\n padding: \"8px 8px\",\n backgroundColor: \"#f28800\",\n color: \"white\",\n },\n }))(Badge);\n\n const StyledBadgeAcceptedOfferCount = withStyles((theme) => ({\n badge: {\n right: 46,\n top: 0,\n //marginRight: theme.spacing(2),\n fontSize: \"1.1em\",\n fontWeight: \"600\",\n opacity: 0.6,\n border: `3px solid ${theme.palette.background.paper}`,\n padding: \"8px 8px\",\n backgroundColor: \"#1ABC9C\",\n color: \"white\",\n },\n }))(Badge);\n\n const drawerItemList = [\n {\n text: \"Предложения цены\",\n icon: ,\n onClick: () => history.push(\"/\"),\n },\n {\n text: \"Настройки\",\n icon: ,\n onClick: () => history.push(\"/settings\"),\n },\n ];\n\n return (\n \n \n history.push(\"/\")}\n selected={isSelected(\"/\")}\n >\n \n {/* */}\n \n \n \n \n\n history.push(\"/offers\")}\n onClick={() => hashHistory.push(\"/offers\")}\n selected={isSelected(\"/offers\")}\n >\n \n {/* */}\n \n \n \n \n \n\n \n \n \n \n \n \n\n history.push(\"/offers\")}>\n \n {/* */}\n \n \n \n \n\n history.push(\"/ticketlist\")}>\n \n {/* */}\n \n \n \n \n\n history.push(\"/offers\")}>\n \n {/* */}\n \n \n \n \n\n history.push(\"/offers\")}>\n \n {/* */}\n \n \n \n \n\n \n\n \n \n \n \n \n {openProfile ? : }\n \n \n \n history.push(\"/profile\")}\n selected={isSelected(\"/profile\")}\n >\n \n \n \n \n \n\n {props.whetherUserVerificationInfoExists == false ? (\n \n history.push(\"/verify\")}\n selected={isSelected(\"/verify\")}\n >\n \n \n \n \n \n \n ) : null}\n\n history.push(\"/address\")}\n selected={isSelected(\"/address\")}\n >\n \n \n \n \n \n \n \n \n \n );\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getOffersCount: () => dispatch(actions.getOffersCount()),\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n incomingOffersCount: state.offers.incomingOffersCount,\n myOffersCount: state.offers.myOffersCount,\n shopOffersCount: state.offers.shopOffersCount,\n acceptedOffersCount: state.offers.acceptedOffersCount,\n whetherUserVerificationInfoExists:\n state.profile.whetherUserVerificationInfoExists,\n };\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withRouter(MyDrawer));\n","import * as React from \"react\"\n\nfunction ShoppingCartSvg(props) {\n return (\n \n \n \n \n )\n}\n\nexport default ShoppingCartSvg","import React, { useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport { withRouter } from 'react-router-dom';\nimport { withStyles } from '@material-ui/core/styles';\nimport { connect } from 'react-redux';\nimport Typography from '@material-ui/core/Typography';\nimport { useLocation } from 'react-router-dom';\nimport IconButton from '@material-ui/core/IconButton';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport * as actions from '../../store/actions';\nimport { signInAuthProvider } from '../../authProvider';\nimport { AzureAD, AuthenticationState } from 'react-aad-msal';\nimport Badge from '@material-ui/core/Badge';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport {Link} from 'react-router-dom';\nimport Menu from '@material-ui/core/Menu';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faOpencart } from '@fortawesome/free-brands-svg-icons';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport { faSignOutAlt } from '@fortawesome/free-solid-svg-icons';\nimport {faBell, faUser} from '@fortawesome/free-regular-svg-icons';\nimport ShoppingCartSvg from '../UI/Icons/ShoppingCartSvg';\n\nconst StyledMenu = withStyles({\n paper: {\n border: '1px solid #d3d4d5',\n },\n})(props => (\n \n));\n\nconst StyledMenuItem = withStyles(theme => ({\n root: {\n '&:focus': {\n backgroundColor: theme.palette.primary.main,\n '& .MuiListItemIcon-root, & .MuiListItemText-primary': {\n color: theme.palette.common.white,\n },\n },\n },\n}))(MenuItem);\n\nconst drawerWidth = 240;\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n },\n menuBurton: {\n marginRight: theme.spacing(2),\n },\n img: {\n margin: 'auto',\n display: 'block',\n maxWidth: '126',\n maxHeight: '64',\n flexGrow: 1,\n marginLeft: theme.spacing(1),\n },\n menuButton: {\n marginRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n display: 'none',\n },\n },\n cart: {\n marginRight: theme.spacing(1),\n // flexGrow: 1\n },\n title: {\n flexGrow: 1,\n marginLeft: theme.spacing(1),\n },\n appBar: {\n //backgroundColor: '#6C757D',\n backgroundColor: '#fff',\n [theme.breakpoints.up('sm')]: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n },\n },\n}));\n\nconst StyledBadge = withStyles(theme => ({\n badge: {\n right: 35,\n top: 12,\n //marginRight: theme.spacing(2),\n opacity: 0.8,\n border: `3px solid ${theme.palette.background.paper}`,\n padding: '7px 7px',\n backgroundColor: '#1ABC9C',\n },\n}))(Badge);\n\nconst StyledBadgeAlerts = withStyles(theme => ({\n badge: {\n right: 17,\n top: 14,\n //marginRight: theme.spacing(2),\n opacity: 0.8,\n border: `3px solid ${theme.palette.background.paper}`,\n padding: '7px 7px',\n backgroundColor: 'red',\n },\n}))(Badge);\n\nconst AppHeader = props => {\n const classes = useStyles();\n const handleMenu = event => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = () => {\n setAnchorEl(null);\n };\n const handleLogout = () => {\n setAnchorEl(null);\n };\n const location = useLocation();\n\n const moveToOffers = () => {\n props.getGraphAccessToken();\n };\n\n const goToCart = () => {\n let href = 'https://dev-public.mtwin.ru/CartAuthorized';\n \n if(props.environment === 'PROD') href = 'https://www.mtwin.ru/CartAuthorized';\n window.open(href, '_blank');\n };\n\n const getCorrectMtWinAddress = () => {\n if (window.location.href.indexOf(\"localhost\") > -1 || window.location.href.indexOf(\"dev\") > -1) return 'https://dev-public.mtwin.ru/indexauthorized';\n else return 'https://www.mtwin.ru/indexauthorized';\n }\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n const open = Boolean(anchorEl);\n\n const renderCart = () => {\n //let condition = (location.pathname == '/offers' || location.pathname.indexOf('itemcard') == 1) && props.cartCount > 0;\n let condition = props.cartCount > 0;\n\n let toReturn = undefined;\n if (condition)\n toReturn = (\n \n \n {/* */}\n {/* */}\n {/* */}\n \n \n \n );\n if (!condition) toReturn = null;\n return toReturn;\n };\n\n const renderUserFio = () => {\n let env = '';\n if (props.environment !== 'PROD' && props.gotAccessToken) env = `/ ${props.environment}`;\n return (\n \n {' '}\n {props.userFio} {env}\n \n );\n \n };\n\n // const moveToProfile = () => {\n // setAnchorEl(null);\n // props.history.push('/profile');\n // };\n\n\n return (\n \n {({ login, logout, authenticationState }) => {\n return (\n \n \n \n \n {' '}\n {' '}\n \n \n логотип MtWin\n \n\n \n\n {renderCart()}\n\n {props.gotAccessToken && (\n
\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n { renderUserFio() }\n
\n )}\n
\n
\n
\n );\n }}\n
\n );\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n getGraphAccessToken: () => dispatch(actions.getGraphAccessToken()),\n //getOffersCount: () => dispatch(actions.getOffersCount())\n };\n};\n\nconst mapStateToProps = state => {\n return {\n userFio: state.auth.userFio,\n userPhone: state.auth.userPhone,\n userEmail: state.auth.userEmail,\n userInfo: state.auth.userInfo,\n cartCount: state.offers.cartCount,\n alertsCount: state.offers.alertsCount,\n environment: state.auth.environment,\n gotAccessToken: state.auth.gotAccessToken,\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(AppHeader));\n","import React, {useState} from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport {withRouter} from 'react-router-dom';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from '@material-ui/core/Button';\nimport Paper from \"@material-ui/core/Paper\";\nimport TextField from '@material-ui/core/TextField';\nimport { connect } from 'react-redux';\nimport { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';\nimport {ruRU} from '@material-ui/core/locale';\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\nimport Container from '@material-ui/core/Container';\nimport Card from '@material-ui/core/Card';\nimport IconButton from '@material-ui/core/IconButton';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport EditIcon from '@material-ui/icons/Edit';\nimport MaskedInput from 'react-text-mask'\nimport PropTypes from 'prop-types';\nimport * as actions from '../../../store/actions';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\n\nconst useStyles = makeStyles((theme) => ({\n\n root: {\n flexGrow: 1\n },\n table: {\n minWidth: 650,\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\"\n },\n paper: {\n padding: theme.spacing(1),\n margin: \"auto\",\n maxWidth: 350\n },\n title: {\n fontSize: 14,\n },\n buttons: {\n marginTop: \"30px\"\n },\n submitButton: {\n marginLeft: \"20px\"\n }\n \n \n \n \n }));\n\n const theme = createMuiTheme({\n palette: {\n primary: { main: '#1976d2' },\n },\n }, ruRU);\n\n\n function TextMaskCustom(props) {\n const { inputRef, ...other } = props;\n \n return (\n {\n inputRef(ref ? ref.inputElement : null);\n }}\n mask={['(', /[1-9]/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/]}\n placeholderChar={'\\u2000'}\n showMask\n />\n );\n }\n\n TextMaskCustom.propTypes = {\n inputRef: PropTypes.func.isRequired,\n };\n\n const ProfileCard = props => {\n const { history } = props;\n const classes = useStyles();\n const toggleFamilyReadonly = () => {\n setFamilyIsReadonly(!familyIsReadonly); \n }\n \n \n const [lastName, setLastName] = useState('');\n const [firstName, setFirstName] = useState('');\n const [phone, setPhone] = useState('');\n const [emails, setEmails] = useState('');\n const [buttonsAllowed, setButtonsAllowed] = useState(false);\n const [dialogOpen, setDialogOpen] = React.useState(false);\n const handleClickDialogOpen = () => { setDialogOpen(true); };\n const handleDialogClose = () => { setDialogOpen(false);props.history.push('/'); };\n\n React.useEffect(() => {\n if(!props.accessToken) history.push(\"/\")\n setLastName(props.userCredentials.lastName);\n setFirstName(props.userCredentials.firstName);\n setPhone(props.userCredentials.phone);\n setEmails(props.userCredentials.emails);\n }, [props.userCredentials.lastName, props.userCredentials.firstName, props.userCredentials.phone, props.userCredentials.emails ])\n \n\n const handleLastNameInput = event => {\n setLastName(event.target.value);\n //alert(lastName);\n //alert(event.target.value);\n let act = lastName !== event.target.value;\n setButtonsAllowed(act);\n };\n const handleFirstNameInput = event => {\n setFirstName(event.target.value);\n let act = firstName !== event.target.value;\n setButtonsAllowed(act);\n };\n const handlePhoneInput = event => {\n setPhone(event.target.value);\n let act = phone !== event.target.value;\n setButtonsAllowed(act);\n };\n \n const handleSubmit = event => {\n let objToSend = {};\n if(lastName != props.userCredentials.lastName ) objToSend.surname = lastName;\n if(firstName != props.userCredentials.firstName ) objToSend.givenName = firstName;\n if(phone != props.userCredentials.phone ) objToSend.extension_2a5146c87c79472d98f426db0b04c2b3_Phone = phone;\n let jsonString = JSON.stringify(objToSend);\n console.log('[ProfileCard/L137] jsonString=',jsonString)\n console.log('[ProfileCard/L138] props.accessToken=',props.accessToken)\n props.updateUserCredentials(jsonString, props.accessToken);\n setDialogOpen(true);\n };\n const handleReset = event => {\n //alert('Капсаицин!');\n };\n\n\n const [familyIsReadonly, setFamilyIsReadonly] = React.useState(true);\n\n\n const renderContent = () => {\n if(props.title == \"Персональные данные\")\n {\n return (\n \n \n
\n \n \n \n {/* */}\n \n \n \n \n \n \n
\n )\n }\n\n if(props.title == \"Адреса доставки\")\n {\n return (\n \n Адресов доставки: {props.addressCount} \n \n )\n }\n }\n\n return (\n \n\n \n {\"Данные сохранены\"}\n \n \n Ваши данные успешно сохранены и через некоторое время они обновятся.\n \n \n \n \n \n \n \n\n \n \n \n \n {renderContent()}\n \n \n \n )\n\n }\n\n const mapStateToProps = state => {\n return {\n accessToken: state.auth.accessToken,\n userCredentials: state.graph.userCredentials,\n addressCount: state.profile.addressCount\n }\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n updateUserCredentials: (json, accessToken) => dispatch(actions.updateUserCredentials(json, accessToken))\n };\n};\n\n \n export default connect(mapStateToProps, mapDispatchToProps)(withRouter(ProfileCard));","import React from 'react';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\nconst ConfirmDialog = (props) => {\n const { title, children, open, setOpen, onConfirm } = props;\n return (\n setOpen(false)}\n aria-labelledby=\"confirm-dialog\"\n >\n {title}\n {children}\n \n setOpen(false)}\n color=\"secondary\"\n >\n Нет\n \n {\n setOpen(false);\n onConfirm();\n }}\n color=\"default\"\n >\n Да\n \n \n \n );\n};\nexport default ConfirmDialog;","import React, { useEffect, useState } from 'react';\nimport { makeStyles, theme } from '@material-ui/core/styles';\nimport { connect } from 'react-redux';\nimport {withRouter} from 'react-router-dom';\nimport Button from '@material-ui/core/Button';\nimport TextField from '@material-ui/core/TextField';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport * as actions from '../../../../store/actions';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1\n },\n table: {\n minWidth: 650,\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\"\n },\n paper: {\n padding: theme.spacing(1),\n margin: \"auto\",\n maxWidth: 350\n },\n title: {\n fontSize: 14,\n },\n buttons: {\n marginTop: \"30px\"\n },\n submitButton: {\n marginLeft: \"20px\"\n }\n }));\n\n const EditAddressDialog = (props) =>\n {\n const { open,modus,addressToEdit } = props;\n console.log('address to edit=',addressToEdit)\n \n const [openDialog, setOpenDialog] = React.useState(open);\n //const [err, setErr] = React.useState(false);\n const[helperText, setHelperText] = React.useState(undefined);\n //const handleClose = () => { setOpenDialog(false); };\n const classes = useStyles();\n const [buttonsAllowed, setButtonsAllowed] = useState(false);\n\n const [zip, setZip] = useState('');\n const [region, setRegion] = useState('');\n const [district, setDistrict] = useState('');\n const [city, setCity] = useState('');\n const [street, setStreet] = useState('');\n const [home, setHome] = useState('');\n const [corp, setCorp] = useState('');\n const [flat, setFlat] = useState('');\n const [id, setId] = useState('');\n const [description, setDescription] = useState('');\n\n React.useEffect(() => {\n if(addressToEdit && addressToEdit.zip) setZip(addressToEdit.zip);\n if(addressToEdit && addressToEdit.region) setRegion(addressToEdit.region);\n if(addressToEdit && addressToEdit.district) setDistrict(addressToEdit.district);\n if(addressToEdit && addressToEdit.city) setCity(addressToEdit.city);\n if(addressToEdit && addressToEdit.street) setStreet(addressToEdit.street);\n if(addressToEdit && addressToEdit.home) setHome(addressToEdit.home);\n if(addressToEdit && addressToEdit.corp) setCorp(addressToEdit.corp);\n if(addressToEdit && addressToEdit.flat) setFlat(addressToEdit.flat);\n if(addressToEdit && addressToEdit.id) setId(addressToEdit.id);\n if(addressToEdit && addressToEdit.description) setDescription(addressToEdit.description);\n }, [ ])\n\n\n const handleZipInput = event => {\n setZip(event.target.value);\n let act = zip !== event.target.value;\n setButtonsAllowed(act);\n };\n const handleRegionInput = event => {\n setRegion(event.target.value);\n setButtonsAllowed(region !== event.target.value);\n };\n const handleDistrictInput = event => {\n setDistrict(event.target.value);\n setButtonsAllowed(district !== event.target.value);\n };\n const handleCityInput = event => {\n setCity(event.target.value);\n setButtonsAllowed(city !== event.target.value);\n };\n const handleStreetInput = event => {\n setStreet(event.target.value);\n setButtonsAllowed(street !== event.target.value);\n };\n const handleHomeInput = event => {\n setHome(event.target.value);\n setButtonsAllowed(home !== event.target.value);\n };\n const handleCorpInput = event => {\n setCorp(event.target.value);\n setButtonsAllowed(corp !== event.target.value);\n };\n const handleFlatInput = event => {\n setFlat(event.target.value);\n setButtonsAllowed(flat !== event.target.value);\n };\n const handleDescriptionInput = event => {\n setDescription(event.target.value);\n setButtonsAllowed(flat !== event.target.value);\n };\n\n const handleSubmit = event => {\n let objectToSend = {id: props.userId, zip: zip, region: region, district: district, city: city, street: street, home: home, corp: corp, flat: flat, decription: description, modus: modus, addressId: modus == 'new' ? null : id};\n console.log(\"objectToSend=\",objectToSend)\n props.saveUserAddress(objectToSend);\n props.dialogClose();\n };\n const handleReset = event => {\n \n props.dialogClose();\n };\n\n\n\n return (\n \n \n {props.modus == 'new' ? 'Новый адрес доставки' : 'Адрес доставки'}\n \n \n
\n \n \n \n \n \n \n \n \n \n \n\n
\n \n \n \n \n \n
\n
\n )\n }\n\n const mapStateToProps = state => {\n return {\n userId: state.auth.userId\n }\n };\n\n const mapDispatchToProps = dispatch => {\n return {\n saveUserAddress: (objectToSend) => dispatch(actions.saveUserAddress(objectToSend))\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EditAddressDialog); \n//export default withRouter(EditAddressDialog);\n\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { createMuiTheme, responsiveFontSizes } from '@material-ui/core/styles';\nimport {withRouter} from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport amber from '@material-ui/core/colors/amber';\nimport grey from '@material-ui/core/colors/grey';\nimport IconButton from '@material-ui/core/IconButton';\nimport ConfirmDialog from '../../../Shared/ConfirmDialog';\nimport Tooltip from '@material-ui/core/Tooltip'\nimport * as actions from '../../../../store/actions';\nimport EditAddressDialog from './EditAddressDialog';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Divider from '@material-ui/core/Divider';\nimport StarIcon from '@material-ui/icons/Star';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction';\n\n\n\nconst useStyles = makeStyles((theme) => ({\n\n root: {\n flexGrow: 1\n },\n table: {\n minWidth: 650,\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\"\n },\n paper: {\n padding: theme.spacing(1),\n margin: \"auto\",\n maxWidth: 350\n \n },\n title: {\n fontSize: 14,\n },\n buttons: {\n marginTop: \"30px\"\n },\n submitButton: {\n marginLeft: \"20px\"\n },\n card: {\n minHeight: 170\n },\n menuButton: {\n color: 'grey[800]',\n fontSize: '11px'\n },\n contentPart: {\n height: 150,\n [theme.breakpoints.up('700')]: {\n height: 120\n },\n [theme.breakpoints.up('900')]: {\n height: 130\n }\n },\n wholeCard: {\n height: 220,\n [theme.breakpoints.up('700')]: {\n height: 190\n },\n [theme.breakpoints.up('900')]: {\n \n height: 200\n }\n\n } \n }));\n\nlet theme = createMuiTheme();\ntheme = responsiveFontSizes(theme);\n\n const AddressCard = props => {\n const { history } = props;\n const classes = useStyles();\n\n const [confirmOpen, setConfirmOpen] = React.useState(false);\n const [modus, setModus] = React.useState(\"edit\");\n\n const deletePost = () => {\n props.removeUserAddress(props.userId, props.eachAddress.id);\n }\n\n const getCorrectAddress = () => {\n console.log(\"props.eachAddress====\",props.eachAddress)\n let toReturn = '';\n if(props.eachAddress.zip) toReturn = toReturn + props.eachAddress.zip + ', ';\n if(props.eachAddress.region) toReturn = toReturn + props.eachAddress.region + ', ';\n if(props.eachAddress.district) \n {\n if(props.eachAddress.district.indexOf('район') > -1) toReturn = toReturn + props.eachAddress.district + ', ';\n else toReturn = toReturn + props.eachAddress.district + ' район, ';\n }\n \n if(props.eachAddress.city) toReturn = toReturn + props.eachAddress.city + ', ';\n if(props.eachAddress.street) toReturn = toReturn + props.eachAddress.street + ', ';\n if(props.eachAddress.home) toReturn = toReturn + '' + props.eachAddress.home + ' ';\n if(props.eachAddress.corp) toReturn = toReturn + '-' + props.eachAddress.corp + ' ';\n if(props.eachAddress.flat) toReturn = toReturn + '-' + props.eachAddress.flat;\n return toReturn;\n }\n\n const handleStarClick = () => {\n if(!props.eachAddress.default) props.setUserAddressAsDefault(props.userId, props.eachAddress.id);\n \n }\n\n const getCorrectDescription = () => {\n let toReturn = '';\n if(props.eachAddress.description) toReturn = 'Комментарий к адресу: ' + props.eachAddress.description;\n return toReturn;\n }\n\n const [editAddressDialogOpen, setEditAddressDialogOpen] = React.useState(false);\n const closeEditAddressDialog = () => { setEditAddressDialogOpen(false); }\n const handleClickOpen = () => {\n setEditAddressDialogOpen(true);\n };\n const handleEveryAddressClick = () => {\n \n setEditAddressDialogOpen(true);\n }\n\n return (\n \n\n \n \n {/* */}\n \n \n \n \n \n {/* */}\n \n \n \n \n \n {setConfirmOpen(true)}}>\n \n \n \n \n \n {props.idx < props.addressListCount - 1 ? : null}\n \n \n\n {editAddressDialogOpen ? () : null} \n\n\n \n Вы уверены, что хотите удалить этот адрес доставки?\n \n\n \n \n )\n\n }\n\n const mapStateToProps = state => {\n return {\n userId: state.auth.userId\n }\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n removeUserAddress: (userId, addressId) => dispatch(actions.removeUserAddress(userId, addressId)),\n setUserAddressAsDefault: (userId, addressId) => dispatch(actions.setUserAddressAsDefault(userId, addressId))\n };\n};\n\n \n //export default connect(mapStateToProps, mapDispatchToProps)(withRouter(AddressCard));\n export default connect(mapStateToProps, mapDispatchToProps)(withRouter(AddressCard));","import React, {useState, useEffect} from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport {withRouter} from 'react-router-dom';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from '@material-ui/core/Button';\nimport Paper from \"@material-ui/core/Paper\";\nimport moment from 'moment';\nimport TablePagination from \"@material-ui/core/TablePagination\";\nimport TextField from '@material-ui/core/TextField';\nimport { connect } from 'react-redux';\nimport { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';\nimport {ruRU} from '@material-ui/core/locale';\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\nimport Container from '@material-ui/core/Container';\n\nimport Card from '@material-ui/core/Card';\nimport IconButton from '@material-ui/core/IconButton';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport EditIcon from '@material-ui/icons/Edit';\nimport PropTypes from 'prop-types';\nimport * as actions from '../../../store/actions';\nimport Input from '@material-ui/core/Input';\nimport AddressCard from './AddressCard/AddressCard';\nimport AddLocationIcon from '@material-ui/icons/AddLocation';\nimport EditAddressDialog from './AddressCard/EditAddressDialog';\nimport Fab from '@material-ui/core/Fab';\nimport AddIcon from '@material-ui/icons/Add';\nimport List from '@material-ui/core/List';\n\n\n\n\nconst useStyles = makeStyles((theme) => ({\n\n root: {\n flexGrow: 1\n },\n rotten: {\n width: '100%',\n maxWidth: 400,\n backgroundColor: theme.palette.background.paper,\n },\n table: {\n minWidth: 650,\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\"\n },\n paper: {\n padding: theme.spacing(1),\n margin: \"auto\",\n maxWidth: 350\n },\n fab: {\n margin: 90,\n top: 70,\n right: 120,\n bottom: 120,\n left: 180,\n position: 'relative'\n },\n title: {\n fontSize: 14,\n },\n buttons: {\n marginTop: \"30px\"\n },\n submitButton: {\n marginLeft: \"20px\"\n }\n \n \n }));\n\n\n\nconst AddressList = (props) => {\n\n const [newAddressDialogOpen, setNewAddressDialogOpen] = React.useState(false);\n\n const closeNewAddressDialog = () => { setNewAddressDialogOpen(false); }\n const handleClickOpen = () => {\n setNewAddressDialogOpen(true);\n\n };\n\n\n useEffect(() => { \n props.getUserAddressList(props.userId); }, [])\n\n \n\n const classes = useStyles();\n return (\n\n\n \n \n \n \n \n \n\n{\n props.addressList.map((row, idx) => (\n \n \n\n \n \n ))\n}\n\n \n \n \n\n \n\n {/* \n \n \n \n \n \n \n \n */}\n\n \n \n setNewAddressDialogOpen(true)} color=\"primary\" aria-label=\"Add\" style={{margin: 0, top: 'auto', right: 20, bottom: 30, left: 'auto', position: 'fixed'}}>\n \n\n {newAddressDialogOpen ? () : null}\n \n \n \n\n )\n} \n\nconst mapStateToProps = state => {\n return {\n accessToken: state.auth.accessToken,\n addressList: state.profile.addressList,\n userId: state.auth.userId\n }\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n getUserAddressList: (userId ) => dispatch(actions.getUserAddressList(userId))\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(AddressList));","import React, { useEffect, useState } from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from \"@material-ui/core/Grid\";\nimport ProfileCard from './ProfileCard/ProfileCard';\nimport AllAddressesCard from './AddressList/AddressList';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport * as actions from '../../store/actions/index';\nimport TableRow from '@material-ui/core/TableRow';\nimport Button from '@material-ui/core/Button';\nimport Paper from \"@material-ui/core/Paper\";\nimport moment from 'moment';\nimport TablePagination from \"@material-ui/core/TablePagination\";\nimport { connect } from 'react-redux';\nimport { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';\nimport {ruRU} from '@material-ui/core/locale';\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\nimport Container from '@material-ui/core/Container';\nimport axios from 'axios';\n\n\n\nconst useStyles = makeStyles((theme) => ({\n\n root: {\n flexGrow: 1\n },\n table: {\n minWidth: 650,\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\"\n },\n paper: {\n padding: theme.spacing(1),\n margin: \"auto\",\n maxWidth: 350\n \n },\n image: {\n width: 80,\n height: 80\n }\n \n \n \n \n }));\n\n\n\n const Profile = (props) => {\n const classes = useStyles();\n\n useEffect(() => { \n //console.log(\"props.graphToken==\",props.graphToken);\n //console.log(\"props.accessToken=\",props.accessToken);\n props.getUserCredentials(); }, [])\n \n return (\n \n \n \n \n \n \n \n {/* \n \n */}\n \n \n \n\n )\n }\n\n const mapStateToProps = state => {\n return {\n accessToken: state.auth.accessToken,\n userCredentials: state.graph.userCredentials\n }\n};\n\n\n const mapDispatchToProps = dispatch => {\n return {\n getUserCredentials: ( ) => dispatch(actions.getUserCredentials())\n };\n};\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Profile);\n ","import * as React from \"react\"\n\nfunction CancelSvg(props) {\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport default CancelSvg","import React, { useState, useEffect } from \"react\";\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport Stepper from \"@material-ui/core/Stepper\";\nimport Step from \"@material-ui/core/Step\";\nimport StepLabel from \"@material-ui/core/StepLabel\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport StepContent from \"@material-ui/core/StepContent\";\nimport Button from \"@material-ui/core/Button\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport * as actions from \"../../../store/actions\";\nimport CancelSvg from \"../../UI/Icons/CancelSvg\";\nimport { ButtonBase } from \"@material-ui/core\";\nimport Resizer from \"react-image-file-resizer\";\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n button: {\n marginTop: theme.spacing(1),\n marginRight: theme.spacing(1),\n },\n input: {\n display: \"qone\",\n },\n paper: {\n padding: theme.spacing(2),\n margin: \"auto\",\n maxWidth: 750,\n },\n image: {\n width: 128,\n height: 128,\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: 224,\n maxHeight: 160,\n },\n imgPreview: {\n //margin: \"auto\",\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(1),\n marginBottom: theme.spacing(2),\n //display: \"block\",\n maxWidth: 180,\n maxHeight: 128,\n },\n cancelButton: {\n marginBottom: theme.spacing(5),\n },\n actionsContainer: {\n marginBottom: theme.spacing(4),\n },\n resetContainer: {\n padding: theme.spacing(3),\n },\n}));\n\nfunction getSteps() {\n return [\n \"Приложить фото с паспортом\",\n \"Приложить фото главного разворота паспорта\",\n \"Приложить фото страницы с регистрацией\",\n \"Отправить фотографии\",\n ];\n}\n\nfunction getStepContent(step) {\n switch (step) {\n case 0:\n return (\n \n \n \n \n \n \n );\n case 1:\n return \"Тут будет возможность загрузить фото главного разворота паспорта\";\n case 2:\n return `Тут будет загрузка страницы с регистрацией`;\n case 3:\n return \"Всё загрузили? Отправляем фотографии товарищу майору\";\n default:\n return \"Unknown step\";\n }\n}\n\nconst getSrc = (step) => {\n let toReturn = \"\";\n switch (step) {\n case 0:\n toReturn = \"IMG_2165.PNG\";\n break;\n case 1:\n toReturn = \"IMG_2166.JPG\";\n break;\n case 2:\n toReturn = \"IMG_2167.JPG\";\n break;\n }\n\n return toReturn;\n};\n\nconst getDisclaimer = (step) => {\n switch (step) {\n case 0:\n return (\n
    \n
  • Разверните паспорт на страницах с основной информацией.
  • \n
  • \n Держите развернутый паспорт рядом с собой на уровне лица или чуть\n ниже.\n
  • \n
  • Проследите, чтобы пальцы не перекрывали данные паспорта.
  • \n
  • \n Не нужно делать фотографию в полный рост – достаточно изображения по\n грудь или по пояс.\n
  • \n
  • \n Все паспортные данные должны быть видны и легко читаться с\n фотографии.\n
  • \n
  • Фотография должны быть четкой и не смазанной.
  • \n
  • \n Если на паспорте вы сфотографированы в очках, наденьте очки и для\n этой фотографии.\n
  • \n
\n );\n case 1:\n return (\n
    \n
  • Откройте паспорт на страницах с основной информацией.
  • \n
  • Убедитесь, что разворот паспорта занимает большую часть кадра
  • \n
  • Проследите, чтобы посторонние объекты не попадали в кадр.
  • \n
  • \n Все паспортные данные должны быть видны и легко читаться с\n фотографии.\n
  • \n
\n );\n case 2:\n return (\n
    \n
  • Откройте паспорт на страницах с информацией о регистрации.
  • \n
  • Убедитесь, что разворот паспорта занимает большую часть кадра
  • \n
  • Проследите, чтобы посторонние объекты не попадали в кадр.
  • \n
  • \n Все паспортные данные должны быть видны и легко читаться с\n фотографии.\n
  • \n
\n );\n }\n};\n\nconst Verification = (props) => {\n const classes = useStyles();\n const [activeStep, setActiveStep] = React.useState(0);\n const [step1File, setStep1File] = React.useState(null);\n const [step1Preview, setStep1Preview] = React.useState(null);\n const [step2File, setStep2File] = React.useState(null);\n const [step2Preview, setStep2Preview] = React.useState(null);\n const [step3File, setStep3File] = React.useState(null);\n const [step3Preview, setStep3Preview] = React.useState(null);\n const steps = getSteps();\n\n\n useEffect(() => {if(props.userSuccessfullyVerified) {setDialogOpen(true); }}, [props.userSuccessfullyVerified]);\n\n const [dialogOpen, setDialogOpen] = React.useState(false);\n const handleClickDialogOpen = () => { setDialogOpen(true); };\n const handleDialogClose = () => { setDialogOpen(false);props.history.push('/'); };\n\n const handleFile = (event) => {\n event.preventDefault();\n let reader = new FileReader();\n let file = event.target.files[0];\n //console.log('L 193. file=',file);\n reader.onloadend = () => {\n\n // // // // // var b64 = reader.result.replace(/^data:.+;base64,/, '');\n \n // // // // // if (activeStep === 0) {\n // // // // // setStep1File(b64);\n // // // // // setStep1Preview(reader.result);\n // // // // // }\n // // // // // if (activeStep === 1) {\n // // // // // setStep2File(b64);\n // // // // // setStep2Preview(reader.result);\n // // // // // }\n // // // // // if (activeStep === 2) {\n // // // // // setStep3File(b64);\n // // // // // setStep3Preview(reader.result);\n // // // // // }\n\n try {\n Resizer.imageFileResizer(\n file,\n 1024,\n 768,\n \"JPEG\",\n 90,\n 0,\n (uri) => {\n //console.log('L205. file=',file);\n var b64 = uri.replace(/^data:.+;base64,/, '');\n //console.log('L233 uri=',b64);\n // this.setState({ newImage: uri });\n if (activeStep === 0) {\n setStep1File(b64);\n //console.log(\"step1file=\", uri);\n setStep1Preview(reader.result);\n \n }\n if (activeStep === 1) {\n setStep2File(b64);\n setStep2Preview(reader.result);\n }\n if (activeStep === 2) {\n setStep3File(b64);\n setStep3Preview(reader.result);\n }\n\n },\n \"base64\",\n 200,\n 200\n );\n } catch (err) {\n console.log('тут ошибка!',err);\n }\n\n\n \n };\n reader.readAsDataURL(file);\n //console.log('L255 File=',file);\n };\n\n const getPreview = (step) => {\n switch (step) {\n case 0:\n return step1Preview;\n case 1:\n return step2Preview;\n case 2:\n return step3Preview;\n }\n };\n\n const handleNext = () => {\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\n if(activeStep == 3) {\n props.saveUserVerificationInfo(step1File,step2File,step3File,props.userId,props.userLogin,props.userFirstName,props.userLastName,props.userPhone);\n //setDialogOpen(true);\n }\n };\n\n const handleBack = () => {\n setActiveStep((prevActiveStep) => prevActiveStep - 1);\n };\n\n const handleReset = () => {\n setActiveStep(0);\n };\n\n const handleCancelClick = () => {\n switch (activeStep) {\n case 0: {\n setStep1File(null);\n setStep1Preview(null);\n break;\n }\n case 1: {\n setStep2File(null);\n setStep2Preview(null);\n break;\n }\n case 2: {\n setStep3File(null);\n setStep3Preview(null);\n break;\n }\n }\n };\n\n const getCancelButton = (step) => {\n if (\n (step === 0 && step1Preview) ||\n (step === 1 && step2Preview) ||\n (step === 2 && step3Preview)\n )\n return (\n \n \n {\" \"}\n {\" \"}\n \n \n );\n else return null;\n };\n\n return (\n \n\n\n {\"Мы получили Ваши фотографии\"}\n \n \n Ваши фотографии успешно загружены. В ближайшее время наши сотрудники выполнят верификацию и Вы получите доступ к закрытым разделам нашего сайта.\n \n \n \n \n \n \n \n\n \n {steps.map((label, index) => (\n \n {label}\n \n \n \n \n \n \n\n \n \n \n \n {getDisclaimer(index)}\n \n \n\n \n
\n \n \n \n
\n
\n
\n
\n\n \n \n \n {getCancelButton(index)}\n \n\n \n
\n
\n \n Пред.шаг\n \n \n {activeStep === steps.length - 1\n ? \"Отправить все фотографии\"\n : \"След.шаг\"}\n \n
\n
\n
\n
\n
\n \n
\n
\n ))}\n
\n
\n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n userId: state.auth.userId,\n userFirstName: state.auth.userFirstName,\n userLastName: state.auth.userLastName,\n userLogin: state.auth.userLogin,\n userSuccessfullyVerified: state.profile.userSuccessfullyVerified,\n userPhone: state.auth.userPhone\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n saveUserVerificationInfo: (img1,img2,img3,customerId,customerLogin, customerFirstname, customerLastname, userPhone) => dispatch(actions.saveUserVerificationInfo(img1,img2,img3,customerId,customerLogin, customerFirstname,customerLastname, userPhone)),\n };\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withRouter(Verification));\n","import React, { Component, useState, useRef,useEffect } from 'react';\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport TextField from '@material-ui/core/TextField';\nimport { Alert } from 'react-st-modal';\nimport Grid from \"@material-ui/core/Grid\";\nimport { connect } from 'react-redux';\nimport * as actions from '../../store/actions';\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n rotten: {\n flexGrow: 1\n },\n\n button: {\n marginTop: theme.spacing(1),\n marginRight: theme.spacing(1),\n },\n input: {\n display: \"qone\",\n },\n paper: {\n padding: theme.spacing(2),\n margin: \"auto\",\n maxWidth: 750,\n },\n papir: {\n height: 50,\n width: 45\n \n },\n image: {\n width: 128,\n height: 128,\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: 224,\n maxHeight: 160,\n },\n\n textField: {\n minWidth: 300,\n padding: theme.spacing(1),\n textAlign: 'center',\n color: theme.palette.text.secondary,\n \n },\n\n imgPreview: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(1),\n marginBottom: theme.spacing(2),\n maxWidth: 180,\n maxHeight: 128,\n },\n cancelButton: {\n marginBottom: theme.spacing(5),\n },\n actionsContainer: {\n marginBottom: theme.spacing(4),\n },\n submitButton: {\n marginLeft: \"0px\",\n marginTop: \"40px\"\n },\n \n resetContainer: {\n padding: theme.spacing(3),\n },\n }));\n\n\n const ConfirmationByPinFunctionalDialog = (props) => {\n\n const {pin} = props;\n console.log('from L99 confirmationResult=',pin) \n const classes = useStyles();\n const [input1Val, setInput1Val] = useState(\"\")\n const [input2Val, setInput2Val] = useState(\"\")\n const [input3Val, setInput3Val] = useState(\"\")\n const [input4Val, setInput4Val] = useState(\"\")\n const [input5Val, setInput5Val] = useState(\"\")\n\n const textRef1 = useRef();\n const textRef2 = useRef();\n const textRef3 = useRef();\n const textRef4 = useRef();\n const textRef5 = useRef();\n\nconst finalize = (lastLetter) => {\n console.log('from L114 confirmationResult=',pin)\n const result = input1Val+input2Val+input3Val+input4Val+lastLetter;\n\n console.log('result=',result);\n console.log('pin=',pin);\n\n if(+result === +pin) {\n props.dialogClose();\n Alert('Идентификация пользователя ломбарда прошла успешно!','')\n }\n \n}\n\n return (\n \n {\"Введите код подтверждения из СМС\"}\n \n \n \n \n \n {const val = e.target.value;setInput1Val(val);if (val.length===1) textRef2.current.focus();}} inputRef={textRef1} inputProps={{ maxLength: 1, style: {fontSize: 24}}} size=\"small\" className={classes.papir} margin=\"normal\" variant='outlined' />\n {const val = e.target.value;setInput2Val(val);if (val.length===1) textRef3.current.focus();}} inputRef={textRef2} inputProps={{ maxLength: 1, style: {fontSize: 24}}} size=\"small\" className={classes.papir} margin=\"normal\" variant='outlined' />\n {const val = e.target.value;setInput3Val(val);if (val.length===1) textRef4.current.focus();}} inputRef={textRef3} inputProps={{ maxLength: 1, style: {fontSize: 24}}} size=\"small\" className={classes.papir} margin=\"normal\" variant='outlined' />\n {const val = e.target.value;setInput4Val(val);if (val.length===1) textRef5.current.focus();}} inputRef={textRef4} inputProps={{ maxLength: 1, style: {fontSize: 24}}} size=\"small\" className={classes.papir} margin=\"normal\" variant='outlined' />\n {const val = e.target.value;setInput5Val(val);if (val.length===1) finalize(e.target.value);}} inputRef={textRef5} inputProps={{ maxLength: 1, style: {fontSize: 24}}} size=\"small\" className={classes.papir} margin=\"normal\" variant='outlined' />\n \n\n\n \n \n \n \n \n )\n }\n\n const mapDispatchToProps = dispatch => {\n return {\n // confirmThatUserSubscribedToATicket: () => dispatch(actions.confirmThatUserSubscribedToATicket())\n };\n};\n\nexport default connect(null, mapDispatchToProps)(ConfirmationByPinFunctionalDialog); \n ","import React, { useState, useEffect } from \"react\";\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport * as actions from '../../store/actions';\nimport { Alert, Confirm } from 'react-st-modal';\nimport Paper from '@material-ui/core/Paper';\n\nimport ConfirmationByPinFunctionalDialog from \"../Shared/ConfirmationByPinFunctionalDialog\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n rotten: {\n flexGrow: 1\n },\n\n button: {\n marginTop: theme.spacing(1),\n marginRight: theme.spacing(1),\n },\n input: {\n display: \"qone\",\n },\n paper: {\n padding: theme.spacing(2),\n margin: \"auto\",\n maxWidth: 750,\n },\n papir: {\n height: 50,\n width: 45\n \n },\n image: {\n width: 128,\n height: 128,\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: 224,\n maxHeight: 160,\n },\n\n textField: {\n // minWidth: 300,\n padding: theme.spacing(1),\n textAlign: 'center',\n color: theme.palette.text.secondary,\n \n },\n\n imgPreview: {\n //margin: \"auto\",\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(1),\n marginBottom: theme.spacing(2),\n //display: \"block\",\n maxWidth: 180,\n maxHeight: 128,\n },\n cancelButton: {\n marginBottom: theme.spacing(5),\n },\n actionsContainer: {\n marginBottom: theme.spacing(4),\n },\n submitButton: {\n marginLeft: \"0px\",\n marginTop: \"40px\"\n },\n \n resetContainer: {\n padding: theme.spacing(3),\n },\n }));\n\n\n const UserSubscriptionConfirmation = (props) => {\n const classes = useStyles();\n const [ticketNumber, setTicketNumber] = useState('');\n const [ticketSerial, setTicketSerial] = useState('');\n const [customerLastName, setCustomerLastName] = useState('');\n const [customerFirstName, setCustomerFirstName] = useState('');\n const [buttonsAllowed, setButtonsAllowed] = useState('');\n const [confirmationNumberFromUser, setConfirmationNumberFromUser] = useState(undefined);\n const [confirmationResult, setConfirmationResult] = useState(undefined);\n \n const [dialogOpen, setDialogOpen] = React.useState(false);\n const handleClickDialogOpen = () => { setDialogOpen(true); };\n const handleDialogClose = async () => { \n setDialogOpen(false); \n const result = await Confirm('Делаем реальную привязку?','Только для теста:');\n \n if (result) {\n props.confirmUserAsValidTicketCustomer(props.objectId, props.customerId);\n } else {\n Alert('Ничего не делаем','');\n }\n\n\n\n \n };\n const handleDialogCancel = () => { setDialogOpen(false); };\n\n useEffect(() => {\n \n if(typeof props.checkWasSuccessfull !== 'undefined')\n {\n //setConfirmationResult(props.confirmationResult)\n\n \n if(!props.checkWasSuccessfull)\n {\n \n Alert('К сожалению, указанные Вами данные не позволяют идентифицировать Вас как пользователя ломбарда. Пожалуйста, введите данные правильно.','Неправильные данные:')\n props.resetConfirmationResult();\n\n }\n if(props.checkWasSuccessfull)\n {\n \n setDialogOpen(true)\n // d2Ref.current.focus();\n\n }\n\n //props.resetConfirmationResult();\n }\n }, [props.checkWasSuccessfull])\n\n const handleTicketNumber = event => {\n setTicketNumber(event.target.value);\n \n let act = ticketNumber !== event.target.value;\n setButtonsAllowed(act);\n };\n\n const handleTicketSerial = event => {\n setTicketSerial(event.target.value);\n let act = ticketSerial !== event.target.value;\n setButtonsAllowed(act);\n };\n const handleCustomerLastName = event => {\n setCustomerLastName(event.target.value);\n let act = customerLastName !== event.target.value;\n setButtonsAllowed(act);\n };\n const handleCustomerFirstName = event => {\n setCustomerFirstName(event.target.value);\n let act = customerFirstName !== event.target.value;\n setButtonsAllowed(act);\n };\n\n \n\n const doTicketCheck = event => {\n props.doTicketCheck(ticketNumber, ticketSerial, customerLastName, customerFirstName)\n };\n\n\n return (\n \n\n \n\n \n\n\n\n \n Для управления займами просим подтвердить Вашу личность\n Пожалуйста, введите номер и серию последнего залогового билета, а также Вашу фамилию и имя. На номер телефона, указанный при оформлении этого залогового билета будет выслана СМС с кодом подтверждения. Просим ввести этот номер в соответствующем поле ниже.\n \n
\n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n
\n
\n )\n\n }\n\n const mapStateToProps = (state) => {\n return {\n customerFio: state.auth.userFio,\n customerPhone: state.auth.userPhone,\n confirmationResult: state.ticket.confirmationResult,\n customerId: state.ticket.customerId,\n objectId: state.auth.userId,\n checkWasSuccessfull: state.ticket.checkWasSuccessfull\n };\n };\n\n const mapDispatchToProps = dispatch => {\n return {\n doTicketCheck: (ticketNumber, ticketSerial, customerLastName, customerFirstName) => dispatch(actions.doTicketCheck(ticketNumber, ticketSerial, customerLastName, customerFirstName)),\n resetConfirmationResult: () => dispatch(actions.resetConfirmationResult()),\n confirmUserAsValidTicketCustomer: (objectId, customerId) => dispatch(actions.confirmUserAsValidTicketCustomer(objectId, customerId)),\n \n\n };\n };\n\n\n\n export default connect(\n mapStateToProps,\n mapDispatchToProps\n )(withRouter(UserSubscriptionConfirmation));","import React from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport Typography from '@material-ui/core/Typography';\nimport Switch from '@material-ui/core/Switch';\nimport ButtonBase from '@material-ui/core/ButtonBase';\nimport {Link} from 'react-router-dom';\nimport WithNumberFormat from '../Hoc/WithNumberFormat';\nimport Grid from \"@material-ui/core/Grid\";\nimport Paper from \"@material-ui/core/Paper\";\nimport { purple } from '@material-ui/core/colors';\nimport IconButton from '@material-ui/core/IconButton';\nimport ForwardSvg from '../UI/Icons/ForwardSvg';\nimport { Tooltip } from '@material-ui/core';\n\n// import Typography from '@material-ui/core/Typography';\n// import {Link} from 'react-router-dom';\n// import Grid from \"@material-ui/core/Grid\";\n// import Paper from \"@material-ui/core/Paper\";\n// import ButtonBase from \"@material-ui/core/ButtonBase\";\n// import WithNumberFormat from '../../../Hoc/WithNumberFormat';\n// import { connect } from 'react-redux';\n// import { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';\n// import * as actions from '../../../store/actions';\n// import moment from 'moment';\n// import MailIcon from '@material-ui/icons/Mail';\n// import NotificationsActiveIcon from '@material-ui/icons/NotificationsActive';\n\n\n\n\nconst useStyles = makeStyles((theme) => ({\n\n root: {\n flexGrow: 1\n },\n paper: {\n padding: theme.spacing(2),\n margin: \"auto\",\n \n },\n sq: {\n color: 'purple'\n },\n heading: {\n fontSize: theme.typography.pxToRem(17),\n fontWeight: 550\n },\n restOfHeading: {\n fontSize: theme.typography.pxToRem(14),\n },\n image: {\n width: 128,\n height: 128\n },\n columnQ: {\n flexBasis: '25.00%',\n },\n columnThird: {\n flexBasis: '30.00%',\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\"\n },\n orangeText: {\n color: \"orange\"\n },\n blueText: {\n color: \"blue\"\n },\n blueTextBordered: {\n color: \"blue\",\n fontSize: '1.1Em'\n //border: \"1px solid\"\n }\n \n }));\n\n const TicketItem = (props) =>\n {\n const { ticketId, ticketNumber, ticketName, stateReadable,loan, interestsToThisDay, thisRowIsSelected, history } = props;\n \n const classes = useStyles();\n \n\n const getCorrectStatereadableColor = stateReadable => {\n let toReturn = 'red';\n return toReturn;\n };\n\n const handleSwitch = (checked) => {\n alert(checked+ ' ' + ticketId);\n \n }\n\n const getRightStateReadable = stateReadable => {\n if(stateReadable == 'действующий') return ({stateReadable})\n else if(stateReadable == 'просрочен') return ({stateReadable})\n else if(stateReadable == 'за льготным сроком') return ({stateReadable})\n else if(stateReadable == 'на аукционе') return ({stateReadable})\n else return ({stateReadable})\n }\n\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n {e.persist();props.handleClickOnLink();}} style={{textDecoration: 'none'}}> \n {ticketNumber}\n \n\n \n\n \n \n {getRightStateReadable(stateReadable)}\n \n \n\n \n
\n
\n\n \n {ticketName}\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n \n \n\n \n \n займ
{loan}
\n \n проценты
 ₽
\n включить в оплату
{e.persist();props.handleChange(e.target.checked, ticketId);}} name=\"checkedA\" color=\"primary\" inputProps={{ 'aria-label': 'primary checkbox' }} />
\n {/* \n проценты
 ₽
\n включить в оплату
{e.persist();props.handleChange(e.target.checked, ticketId);}} name=\"checkedA\" color=\"primary\" inputProps={{ 'aria-label': 'primary checkbox' }} />
\n
*/}\n
\n\n
\n\n \n
\n \n
\n \n \n\n
\n \n\n
\n )\n }\n\n export default TicketItem;","import React, { useState, useEffect } from \"react\";\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport Grid from '@material-ui/core/Grid';\nimport UserSubscriptionConfirmation from \"./UserSubscriptionConfirmation\";\nimport * as actions from '../../store/actions';\nimport { Button } from \"@material-ui/core\";\nimport moment from \"moment\";\nimport AppBar from '@material-ui/core/AppBar';\nimport Paper from \"@material-ui/core/Paper\";\nimport Toolbar from '@material-ui/core/Toolbar';\nimport WithNumberFormat from '../Hoc/WithNumberFormat';\nimport Typography from '@material-ui/core/Typography';\nimport TicketItem from './TicketItem';\nimport { Alert } from \"react-st-modal\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n appBar: {\n top: 'auto',\n bottom: 0,\n },\n paper: {\n padding: theme.spacing(2),\n margin: \"auto\",\n \n },\n button: {\n marginTop: theme.spacing(1),\n marginRight: theme.spacing(1),\n },\n input: {\n display: \"qone\",\n },\n\n image: {\n width: 128,\n height: 128,\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: 224,\n maxHeight: 160,\n },\n imgPreview: {\n //margin: \"auto\",\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(1),\n marginBottom: theme.spacing(2),\n //display: \"block\",\n maxWidth: 180,\n maxHeight: 128,\n },\n cancelButton: {\n marginBottom: theme.spacing(5),\n },\n actionsContainer: {\n marginBottom: theme.spacing(4),\n },\n resetContainer: {\n padding: theme.spacing(3),\n },\n }));\n\n const ListForCustomerConfirmed = (props) => {\n const classes = useStyles();\n\n const [totalInterests, setTotalInterests] = useState(70);\n\n useEffect(() => {\n props.clearSingleTicket();\n if(props.ticketList) \n {\n let total = 0;\n for(let oneItem of props.ticketList)\n {\n if(oneItem.thisRowIsSelected) total += oneItem.interestsToThisDay;\n }\n console.log('total=',typeof total)\n setTotalInterests(total)\n }\n \n }, [props.ticketList, props.ticketListMemorized])\n\nconst clearCustomerSubscription = () => { props.clearCustomerTicketSubscription(props.objectId);}\nconst handleChange = (checked,ticketId) => {\n // let total = 0;\n // for(let oneItem of props.ticketList)\n // {\n // if(oneItem.thisRowIsSelected) total += oneItem.interestsToThisDay;\n // }\n \n let idx = props.ticketList.findIndex(chr => chr.ticketId == ticketId);\n props.ticketList[idx].thisRowIsSelected = checked;\n let total = 0;\n for(let oneItem of props.ticketList)\n {\n if(oneItem.thisRowIsSelected) total += oneItem.interestsToThisDay;\n }\n console.log('total=',total)\n setTotalInterests(total)\n //props.memorizeTicketList(props.ticketList);\n}\n\nconst handleClickOnLink = () => {\n props.memorizeTicketList(props.ticketList);\n}\n\n return (\n \n \n {/* This is a warning alert — check it out! */}\n \n \n \n К сожалению, в настоящее время оплата из личного кабинета недоступна, так как соответствующий сервис находится в разработке. Просим прощения за доставленные неудобства.\n \n \n \n \n\n \n \n {props.ticketList.map((item,index) => {\n const {dateOfIssue, ticketId, ticketNumber, daysInUse, interestRate, interestsToThisDay, loan, stateReadable, ticketName, thisRowIsSelected} = item;\n \n \n return (\n \n \n )\n })\n }\n \n \n\n {/* \n \n\n{totalInterests > 0 ? (\n  ₽\n \n ) : null}\n\n\n \n */}\n\n{totalInterests > 0 ? (\n\n \n
\n  ₽\n \n \n \n) : null}\n\n\n\n\n\n\n\n \n )\n }\n\n const mapStateToProps = (state) => {\n return {\n objectId: state.auth.userId,\n customerId: state.ticket.customerId,\n ticketList: state.ticket.ticketList,\n ticketListMemorized: state.ticket.ticketListMemorized\n };\n };\n\n const mapDispatchToProps = dispatch => {\n return {\n clearCustomerTicketSubscription: (objectId) => dispatch(actions.clearCustomerTicketSubscription(objectId)),\n getTicketList: (customerId) => dispatch(actions.getTicketList(customerId)),\n memorizeTicketList: (ticketList) => dispatch(actions.memorizeTicketList(ticketList)),\n clearSingleTicket: () => dispatch(actions.clearSingleTicket()),\n \n\n };\n };\n\n export default connect(\n mapStateToProps,\n mapDispatchToProps\n )(withRouter(ListForCustomerConfirmed));\n\n ","import React, { useState, useEffect } from \"react\";\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport UserSubscriptionConfirmation from \"./UserSubscriptionConfirmation\";\nimport * as actions from '../../store/actions';\n\n\nimport ListForCustomerConfirmed from \"./ListForConfirmedCustomer\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n button: {\n marginTop: theme.spacing(1),\n marginRight: theme.spacing(1),\n },\n input: {\n display: \"qone\",\n },\n paper: {\n padding: theme.spacing(2),\n margin: \"auto\",\n maxWidth: 750,\n },\n image: {\n width: 128,\n height: 128,\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: 224,\n maxHeight: 160,\n },\n imgPreview: {\n //margin: \"auto\",\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(1),\n marginBottom: theme.spacing(2),\n //display: \"block\",\n maxWidth: 180,\n maxHeight: 128,\n },\n cancelButton: {\n marginBottom: theme.spacing(5),\n },\n actionsContainer: {\n marginBottom: theme.spacing(4),\n },\n resetContainer: {\n padding: theme.spacing(3),\n },\n }));\n\n const customerConfirmed = () => {\n return (\n
Сундучелло!
\n )\n }\n\n const TicketList = (props) => {\n const classes = useStyles();\n\n useEffect(() => {\n props.getUserClaims(props.userLogin)\n }, [])\n\n return (\n \n {props.whetherUserIsSubscribedToATicket ? : }\n \n )\n\n }\n\n const mapStateToProps = (state) => {\n return {\n customerFio: state.auth.userFio,\n customerPhone: state.auth.userPhone,\n confirmationResult: state.ticket.confirmationResult,\n customerId: state.ticket.customerId,\n objectId: state.auth.userId,\n userLogin: state.auth.userLogin,\n whetherUserIsSubscribedToATicket: state.profile.whetherUserIsSubscribedToATicket\n };\n };\n\n const mapDispatchToProps = dispatch => {\n return {\n doTicketCheck: (ticketNumber, ticketSerial, customerLastName, customerFirstName) => dispatch(actions.doTicketCheck(ticketNumber, ticketSerial, customerLastName, customerFirstName)),\n resetConfirmationResult: () => dispatch(actions.resetConfirmationResult()),\n confirmUserAsValidTicketCustomer: (objectId, customerId) => dispatch(actions.confirmUserAsValidTicketCustomer(objectId, customerId)),\n getUserClaims: (userLogin) => dispatch(actions.getUserClaims(userLogin)),\n\n };\n };\n\n\n export default connect(\n mapStateToProps,\n mapDispatchToProps\n )(withRouter(TicketList));","import * as actionTypes from './actionTypes';\n\nexport const getUserClaims = (userLogin) => {\n return {\n type: actionTypes.GET_USER_CLAIMS,\n userLogin: userLogin\n };\n };","import React, {useEffect} from 'react';\nimport './App.css';\nimport {connect} from 'react-redux';\nimport Hidden from '@material-ui/core/Hidden'\nimport {Route, Switch, withRouter} from 'react-router-dom';\nimport Home from './components/Home/Home';\nimport Offers from './components/Bargain/Offers';\nimport Settings from './components/Settings/Settings';\nimport ItemCard from './components/Bargain/ItemCard/ItemCard';\nimport TicketCard from './components/Ticket/TicketCard';\nimport MyDrawer from './components/Drawer/Drawer';\nimport {Drawer as MUIDrawer} from '@material-ui/core';\nimport AppHeader from './components/Appheader/Appheader';\nimport { makeStyles, useTheme, ThemeProvider, theme, createMuiTheme } from '@material-ui/core/styles';\nimport * as actions from './store/actions';\nimport Profile from './components/Profile/Profile';\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport AddressList from './components/Profile/AddressList/AddressList';\nimport Lato from 'typeface-lato';\nimport { colors } from '@material-ui/core'\nimport Verification from './components/Profile/Verification/Verification';\nimport TicketList from './components/Ticket/TicketList';\n\n\n//const useStyles = makeStyles({});\nconst drawerWidth = 240;\n\nconst changedTheme = createMuiTheme({\n palette: {\n \n primary: {\n main: '#1ABC9C' // зелёный от MTWIN\n },\n secondary: {\n //main: '#2196f3', //индиго от MUI\n main: '#757575', //тёмно-серый от Бори\n \n },\n error: {\n main: '#ff9100', //оранжевый цвет\n },\n },\n typography: {\n fontFamily: '\"Lato\", sans-serif'\n },\n overrides: {\n MuiCssBaseline: {'@global': {'@font-face': [Lato]}},\n // MuiListItem: { root: {\"&$selected\": {color: colors.blue[500], backgroundColor: colors.lightBlue[100]}}},\n }\n});\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n },\n drawer: {\n [theme.breakpoints.up('sm')]: {\n width: drawerWidth,\n flexShrink: 0,\n },\n },\n appBar: {\n [theme.breakpoints.up('sm')]: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n },\n },\n menuButton: {\n marginRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n display: 'none',\n },\n },\n // necessary for content to be below app bar\n toolbar: theme.mixins.toolbar,\n drawerPaper: {\n width: drawerWidth,\n },\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n content: {\n flexGrow: 1,\n padding: theme.spacing(3),\n },\n}));\n\n//const container = window !== undefined ? () => window().document.body : undefined;\n//const container = window().document.body;\n\n\nfunction App(props) {\n\n const { window } = props;\n const { history } = props;\n const classes = useStyles();\n const theme = useTheme();\n const [mobileOpen, setMobileOpen] = React.useState(false);\n\n useEffect(() => {\n getAccessToken(); }, [])\n\n const getAccessToken = () => {\n props.getAccessToken();\n }\n\n const getGraphAccessToken = () => {\n \n props.getGraphAccessToken();\n }\n\n\n const handleDrawerToggle = () => {\n setMobileOpen(!mobileOpen);\n };\n\n\n const container = window !== undefined ? () => window().document.body : undefined;\n \n return (\n \n \n
\n \n\n handleDrawerToggle()}\n />\n\n\n\n\n \n\n \n
\n
\n \n } />\n } />\n } />\n \n \n \n \n \n \n {/* */}\n \n
\n \n
\n
\n
\n );\n \n\n}\n \nconst mapDispatchToProps = dispatch => {\n return {\n \n getAccessToken: () => dispatch(actions.getAccessToken()),\n getGraphAccessToken: () => dispatch(actions.getGraphAccessToken())\n };\n};\n \nexport default connect(null, mapDispatchToProps)(withRouter(App));\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../updateObject';\n\nconst initialState = {\n offerItems: [],\n chatItems: [],\n chatCount: 0,\n cartCount: 0,\n offer: {},\n timer: null,\n offerHistory: [],\n offerHistoryCount: 0,\n shopOffersCount: 0,\n myOffersCount: 0,\n acceptedOffersCount: 0,\n alertsCount: 0,\n alertsArray: [],\n offerIdForCountdown: null\n};\n\n// const getBargainsSuccess = ( state, action ) => {\n// const newItems = updateObject( action.bargainItems );\n \n// let toReturn = updateObject( state, { bargainItems: state.bargainItems.concat( newItems ) } );\n// //console.log('ewolutia=',toReturn.bargainItems[0])\n// return toReturn;\n// };\n\nconst reducer = ( state = initialState, action ) => {\n switch ( action.type ) {\n case actionTypes.GET_OFFERS_SUCCESS: return {\n ...state,\n offerItems: action.offerItems,\n offersCount: action.offersCount\n }\n\n case actionTypes.GET_OFFERS_COUNT_SUCCESS: return {\n ...state,\n shopOffersCount: action.incomingOffersCount,\n myOffersCount: action.outgoingOffersCount,\n acceptedOffersCount: action.acceptedOffersCount\n }\n\n case actionTypes.GET_ALERTS_COUNT_SUCCESS: return {\n ...state,\n alertsCount: action.textMessageAlertCount\n }\n\n case actionTypes.GET_ALERTS_ARRAY_SUCCESS: return {\n ...state,\n alertsArray: action.alertsArray\n }\n\n case actionTypes.GET_CHAT_SUCCESS: return {\n ...state,\n chatItems: action.chatItems,\n chatCount: action.chatCount\n }\n\n\n case actionTypes.CLEAR_CHAT: \n \n return {\n ...state,\n chatItems: [],\n chatCount: 0\n }\n case actionTypes.GET_CART_COUNT_SUCCESS: \n \n return {\n ...state,\n cartCount: action.cartCount\n }\n\n case actionTypes.GET_OFFER_SUCCESS: return {\n ...state,\n offer: action.offer,\n offerIdForCountdown: action.offer.offerId\n }\n\n case actionTypes.CLEAR_OFFER: return {\n ...state,\n offer: {}\n }\n\n case actionTypes.GET_OFFERS_COUNT_BY_TYPES_SUCCESS: return {\n ...state,\n myOfferCount: action.myOfferCount,\n shopOfferCount: action.shopOfferCount\n }\n \n case actionTypes.OFFER_TIMER_COUNTDOWN: \n //alert('action.offerId='+action.offerId+' state.offerIdForCountdown='+state.offerIdForCountdown)\n if(action.offerId == state.offerIdForCountdown) return {\n ...state,\n timer: action.timer\n }\n\n case actionTypes.GET_OFFER_HISTORY_SUCCESS: return {\n ...state,\n offerHistory: action.offerHistoryItems,\n offerHistoryCount: action.offerHistoryCount\n }\n\n default: return state;\n }\n};\n\nexport default reducer; ","import { createStore } from 'redux';\nimport { AuthenticationActions, AuthenticationState } from 'react-aad-msal';\nimport axios from 'axios';\n\nconst initialState = {\n initializing: false,\n initialized: false,\n idToken: null,\n userId: null,\n userFio: null,\n userFirstName: null,\n userLastName: null,\n userPhone: null,\n userEmail: null,\n userLogin: null,\n accessToken: null,\n gotAccessToken: false,\n state: AuthenticationState.Unauthenticated,\n environment: \"DEBUG\",\n customerAccountServiceBaseUri: null,\n axiosOffers: null\n \n}\n\nconst authReducer = (state = initialState, action) => {\n //console.log('Garamondo=',action);\n switch (action.type) {\n case AuthenticationActions.Initializing:\n console.log(\"[AuthenticationActions.Initializing]\", action);\n return {\n ...state,\n initializing: true,\n initialized: false,\n };\n case AuthenticationActions.Initialized:\n console.log(\"[AuthenticationActions.Initialized]\", action);\n return {\n ...state,\n initializing: false,\n initialized: true,\n };\n case AuthenticationActions.AcquiredIdTokenSuccess:\n console.log(\"[AuthenticationActions.AcquiredIdTokenSuccess]\", action);\n return {\n ...state,\n idToken: action.payload,\n };\n case AuthenticationActions.AcquiredAccessTokenSuccess:\n console.log(\"[AuthenticationActions.AcquiredAccessTokenSuccess]\", action);\n \n //axios.defaults.baseURL = process.env.REACT_APP_BASE_URL;\n ///////////////axios.defaults.headers.common['Authorization'] = `Bearer ${action.payload.accessToken}`;\n\n\n //axios.defaults.headers.common['Authorization'] = '';\n \n\n let environment = null;\n let customerAccountServiceBaseUri = null;\n\n if (window.location.href.indexOf(\"localhost\") > -1) {\n environment = \"DEBUG\";\n //customerAccountServiceBaseUri = 'http://localhost:44302/';\n customerAccountServiceBaseUri = 'https://dev-ws.mtwin.ru/CustomerAccountService/';\n } else if (window.location.href.indexOf(\"dev\") > -1) {\n environment = \"DEV\";\n customerAccountServiceBaseUri = 'https://dev-ws.mtwin.ru/CustomerAccountService/';\n } else {\n environment = \"PROD\";\n customerAccountServiceBaseUri = 'https://ws.mtwin.ru/CustomerAccountService/';\n }\n \n localStorage.setItem('customerAccountServiceBaseUri', customerAccountServiceBaseUri);\n localStorage.setItem('environment', environment);\n //alert(`Bearer ${action.payload.accessToken}`);\n localStorage.setItem('token', `Bearer ${action.payload.accessToken}`);\n\n customerAccountServiceBaseUri += 'api/CustomerAccount/'\n console.log('L72 customerAccountServiceBaseUri = ',customerAccountServiceBaseUri)\n const defaultOptions = { baseURL: customerAccountServiceBaseUri, headers: {'Content-Type': 'application/json'} };\n let instance = axios.create(defaultOptions);\n \n instance.interceptors.request.use(function (config) {\n const storedToken = `Bearer ${action.payload.accessToken}`;\n config.headers.Authorization = storedToken ? storedToken : '';\n return config;\n });\n\n\n //console.log('instance in L82 = ', instance);\n\n\n return {\n ...state,\n accessToken: action.payload.accessToken,\n gotAccessToken: true,\n environment: environment,\n customerAccountServiceBaseUri: customerAccountServiceBaseUri,\n axiosOffers: instance\n };\n case AuthenticationActions.AcquiredAccessTokenError:\n console.log(\"[AuthenticationActions.AcquiredAccessTokenError]\", action);\n return {\n ...state,\n accessToken: null,\n gotAccessToken: false\n };\n case AuthenticationActions.LoginSuccess:\n console.log(\"[AuthenticationActions.LoginSuccess]\", action);\n localStorage.setItem('userId', action.payload.account.accountIdentifier);\n return {\n ...state,\n account: action.payload.account,\n userInfo: action.payload.account.idToken.given_name+' '+action.payload.account.idToken.family_name + ' тел.: ' + action.payload.account.idToken.extension_Phone,\n userFirstName: action.payload.account.idToken.given_name,\n userLastName: action.payload.account.idToken.family_name,\n userFio: action.payload.account.idToken.given_name[0]+'.'+action.payload.account.idToken.family_name,\n userPhone: action.payload.account.idToken.extension_Phone,\n userEmail: action.payload.account.idToken.emails[0],\n userLogin: action.payload.account.idToken.name,\n userId: action.payload.account.accountIdentifier,\n idToken: action.payload.jwtIdToken\n };\n \n case AuthenticationActions.LoginError:\n case AuthenticationActions.AcquiredIdTokenError:\n case AuthenticationActions.LogoutSuccess:\n return { ...state, idToken: null, accessToken: null, account: null };\n case AuthenticationActions.AuthenticatedStateChanged:\n console.log(\"[AuthenticationActions.AuthenticatedStateChanged]\", action);\n return {\n ...state,\n state: action.payload,\n };\n default:\n return state;\n }\n \n\n}\n\nexport default authReducer;","import * as actionTypes from '../actions/actionTypes';\n\nconst initialState = {\n graphAccessToken: null,\n userCredentials: {}\n};\n\nconst reducer = ( state = initialState, action ) => {\n switch ( action.type ) {\n case actionTypes.GET_GRAPH_ACCESS_TOKEN_SUCCESS: \n console.log(\"[GET_GRAPH_ACCESS_TOKEN_SUCCESS]\", action);\n return {\n ...state,\n graphAccessToken: action.token\n }\n\n case actionTypes.GET_USER_CREDENTIALS_SUCCESS:\n console.log(\"[GET_USER_CREDENTIALS_SUCCESS]\", action);\n return {\n ...state,\n userCredentials: action.payLoad\n }\n\n default: return state;\n\n }\n }\n\n export default reducer; ","import * as actionTypes from '../actions/actionTypes';\nimport { AuthenticationActions, AuthenticationState } from 'react-aad-msal';\n\nconst initialState = {\n addressList: [],\n addressListCount: 0,\n whetherUserVerificationInfoExists: true,\n whetherUserIsSubscribedToATicket: true,\n userSuccessfullyVerified: false\n \n};\n\nconst reducer = ( state = initialState, action ) => {\n switch ( action.type ) {\n case actionTypes.GET_USER_ADDRESS_LIST_SUCCESS: \n console.log(\"[GET_USER_ADDRESS_LIST_SUCCESS]\", action);\n return {\n ...state,\n addressList: action.payload\n }\n\n case actionTypes.GET_WHETHER_USER_VERIFICATION_INFO_EXISTS_SUCCESS:\n return {\n ...state,\n whetherUserVerificationInfoExists: action.payload\n }\n\n case actionTypes.SAVE_USER_VERIFICATION_INFO_SUCCESS:\n return {\n ...state,\n userSuccessfullyVerified: true\n }\n \n case actionTypes.CONFIRM_THAT_USER_SUBSCRIBED_TO_TICKET:\n \n return {\n ...state,\n whetherUserIsSubscribedToATicket: action.isSubscribed\n }\n\n case AuthenticationActions.AcquiredIdTokenSuccess:\n \n return {\n ...state,\n whetherUserIsSubscribedToATicket: ('extension_MtWinCustomerId' in action.payload.idToken.claims)\n };\n\n default: return state;\n\n }\n }\n\n export default reducer; ","import * as actionTypes from '../actions/actionTypes';\nimport { AuthenticationActions, AuthenticationState } from 'react-aad-msal';\n\nconst initialState = {\n confirmationResult: undefined,\n customerId: undefined,\n checkWasSuccessfull: undefined,\n ticketList: [],\n singleTicket: null,\n ticketListMemorized: []\n \n};\n\nconst reducer = ( state = initialState, action ) => {\n switch ( action.type ) {\n\n case actionTypes.DO_TICKET_CHECK_SUCCESS: \n return {\n ...state,\n confirmationResult: action.payload.confirmationResult,\n customerId: action.payload.customerId,\n checkWasSuccessfull: action.payload.checkWasSuccessfull\n\n }\n\n case actionTypes.CONFIRM_THAT_USER_SUBSCRIBED_TO_TICKET:\n \n return {\n ...state,\n customerId: action.customerId\n }\n\n \n case actionTypes.GET_TICKET_LIST_SUCCESS:\n \n let toReturn = {};\n if(state.ticketListMemorized.length > 0) toReturn = {\n ...state,\n ticketList: state.ticketListMemorized\n }\n else toReturn = {\n ...state,\n ticketList: action.payload\n }\n console.log('toReturn=',toReturn)\n return toReturn;\n\n case actionTypes.MEMORIZE_TICKET_LIST:\n \n return {\n ...state,\n ticketListMemorized: action.ticketList\n }\n \n\n case actionTypes.GET_TICKET_SUCCESS:\n \n return {\n ...state,\n singleTicket: action.payload\n }\n \n case actionTypes.CLEAR_SINGLE_TICKET:\n \n return {\n ...state,\n singleTicket: null\n }\n\n case actionTypes.RESET_CONFIRMATION_RESULT:\n return {\n ...state,\n confirmationResult: undefined,\n customerId: undefined,\n checkWasSuccessfull: undefined\n }\n \n \n default: return state;\n \n }\n }\n \n export default reducer; "," //import axios from 'axios';\n\n// console.log('bielem!!!!')\n\n //export default axios.create({\n // baseURL: 'http://localhost:44302/api/CustomerAccount/',\n \n// })\n\n// axios.defaults.headers.common['Authorization'] = 'AUTH TOKEN';\n// axios.defaults.headers.post['Content-Type'] = 'application/json';\n\nimport axios from 'axios';\n\nconst fetchMe = () => {\n \n let customerAccountServiceBaseUri = null;\n\n\n if (window.location.href.indexOf(\"localhost\") > -1) {\n \n customerAccountServiceBaseUri = 'http://localhost:44302/';\n } else if (window.location.href.indexOf(\"dev\") > -1) {\n \n customerAccountServiceBaseUri = 'https://dev-ws.mtwin.ru/CustomerAccountService/';\n } else {\n \n customerAccountServiceBaseUri = 'https://ws.mtwin.ru/CustomerAccountService/';\n }\n\n let uri = customerAccountServiceBaseUri + 'api/CustomerAccount/';\n const defaultOptions = {\n //baseURL: process.env.REACT_APP_BASE_URL,\n baseURL: uri,\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n\n // Create instance\n let instance = axios.create(defaultOptions);\n\n // Set the AUTH token for any request\n instance.interceptors.request.use(function (config) {\n const storedToken = localStorage.getItem('token');\n //console.log('token from axios-offers.js===',storedToken);\n config.headers.Authorization = storedToken ? storedToken : '';\n return config;\n });\n\n return instance;\n};\n\nexport default fetchMe();\n\n\n","import { put, call, takeEvery, all } from 'redux-saga/effects';\nimport axios from '../../components/Bargain/axios-offers';\nimport { eventChannel, END } from 'redux-saga';\nimport * as actions from '../actions';\nimport moment from 'moment';\n\nexport function* getOffersSaga(action) {\n try {\n console.log('[offers.js/saga] in getOffersSaga ', action.limit);\n let url = 'GetOffersList?limit=' + action.limit + '&offset=' + action.offset;\n\n const response = yield axios.get(url);\n console.log('[offers.js/saga] L18 response=', response);\n const allItems = response.data.content;\n\n console.log('[offers.js/saga] allItems=', allItems);\n let filteredItems = [];\n\n let myOfferCount = 0;\n let shopOfferCount = 0;\n let acceptedOfferCount = 0;\n\n for (let val of allItems) {\n let idx = filteredItems.findIndex(chr => chr.internalNumber === val.internalNumber);\n \n //if ((idx === -1) && (val.offerType !== 4) && val.offerStatus =='Active' ) {\n if ((idx === -1) && (val.offerType !== 4) && (val.offerStatus =='Active' || val.offerStatus =='AcceptRequest') ) {\n \n //val.isExpired = moment(val.expiredDate).isBefore(moment());\n console.log('[offers-saga L25 val=',val)\n filteredItems.push(val);\n if (val.offerType === 1) myOfferCount++;\n if (val.offerType === 2) shopOfferCount++;\n if (val.offerType === 3) acceptedOfferCount++;\n }\n }\n console.log('[offers.js/saga] myoffercount=', myOfferCount);\n console.log('[offers.js/saga] shopOffercount=', shopOfferCount);\n console.log('[offers.js/saga] acceptedOffercount=', acceptedOfferCount);\n console.log('[offers.js/saga] filtered items=', filteredItems);\n\n \n yield all([put(actions.getOffersSuccess(filteredItems, response.data.count)), put(actions.getCartCount())]);\n //yield all([put(actions.getOffersSuccess(filteredItems, response.data.count)), put(actions.getCartCount()), put(actions.confirmUserAsValidTicketCustomer('19a42ac7-7cff-4d64-af92-4eaac25699ae',''))]);\n } catch (error) {}\n}\n\nexport function* getOfferSaga(action) {\n try {\n //console.log('in getIncomingOffersCountSaga ', action.axios.defaults.baseURL)\n let url = 'GetOffer/' + action.offerId;\n const response = yield axios.get(url);\n const offer = response.data;\n console.log('[offers.js/saga] offer in saga=',offer)\n yield all([put(actions.getOfferSuccess(offer)), put(actions.getChat(offer.offerId))]);\n if (offer.offerType == 2) {\n const remains = getTimeRemaining(offer.expiredDate);\n const whatRemainsObject = getTimeRemaining(offer.expiredDate);\n const channel = yield call(countdown, Math.round(whatRemainsObject.total / 1000));\n yield takeEvery(channel, function* (secs) {\n const whatRemainsObject = getTimeRemaining(offer.expiredDate);\n\n if (whatRemainsObject.total >= 1001) {\n const timer = whatRemainsObject.hours + ':' + whatRemainsObject.minutes + ':' + whatRemainsObject.seconds;\n yield put(actions.offerTimerCountdown(timer,offer.offerId));\n } else yield all([put(actions.offerTimerCountdown('',offer.offerId))]); //else yield all([put(actions.offerTimerCountdown('',offer.offerId)), put(actions.declineOffer(offer.offerId))]);\n });\n }\n\n //console.log('чёрная пакость offer L66=',offer)\n //yield all([put(actions.getOfferSuccess(offer)), put(actions.getChat(offer.offerId))]);\n } catch (error) {}\n}\n\nexport function* getChatSaga(action) {\n try {\n \n if(!action.offerId) return;\n let url = 'GetChat/' + action.offerId;\n let objectToSend = { limit: action.limit, offset: action.offset };\n const response = yield axios.get(url, objectToSend);\n const chat = response.data.content;\n console.log('offers.js(Saga) L76, response.data.content = ',response.data.content)\n let toReturn = [];\n for(let message of chat)\n {\n console.log('ладаладалада=',message)\n if(message.text || message.pictureId) toReturn.push(message);\n }\n\n console.log('offers.js(Saga) L83, Chat = ',toReturn)\n yield put(actions.getChatSuccess(toReturn, toReturn.count));\n //yield put(actions.getChatSuccess(chat, 1));\n } catch (error) {}\n}\n\nexport function* getOffersCountSaga(action) {\n try {\n let url = 'GetOffersCount';\n const response = yield axios.get(url);\n console.log('[offers.js/saga] responseoffers!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!=', response.data);\n yield all([put(actions.getOffersCountSuccess(response.data.incomingOfferCount, response.data.outgoingOfferCount, response.data.acceptedOfferCount)), put(actions.getCartCount()), put(actions.getAlertsCount() )]);\n } catch (error) {}\n}\n\nexport function* getAlertsCountSaga(action) {\n try {\n let url = 'GetAlertsCount';\n const response = yield axios.get(url);\n console.log('[offers.js/saga] responsealertscount=', response.data);\n let totalCount = 0;\n for(let item of response.data)\n {\n totalCount += item.textMessageAlertCount;\n totalCount += item.priceOfferAlertCount;\n }\n yield all([put(actions.getAlertsCountSuccess(totalCount)),put(actions.getAlertsArraySuccess(response.data))]);\n } catch (error) {}\n}\n\nexport function* getCartCountSaga(action) {\n try {\n let url = 'GetCartCount';\n console.log('[offers.js/saga] in getCartCountSaga ', axios.defaults.baseURL);\n const response = yield axios.get(url);\n yield all([put(actions.getCartCountSuccess(response.data)),put(actions.SeeIfThisCustomerSentHisPhotosToVerification(),\n put(actions.SeeIfThisCustomerIsSubscribedToATicket()) )]);\n \n } catch (error) {}\n}\n\nfunction countdown(secs) {\n return eventChannel(emitter => {\n const iv = setInterval(() => {\n secs -= 1;\n if (secs > 0) {\n emitter(secs);\n } else {\n // this causes the channel to close\n emitter(END);\n }\n }, 1000);\n // The subscriber must return an unsubscribe function\n return () => {\n clearInterval(iv);\n };\n });\n}\n\nfunction getTimeRemaining(endtime) {\n var t = Date.parse(endtime) - Date.parse(new Date());\n var seconds = Math.floor((t / 1000) % 60).toString();\n var minutes = Math.floor((t / 1000 / 60) % 60).toString();\n var hours = Math.floor((t / (1000 * 60 * 60)) % 24).toString();\n var days = Math.floor(t / (1000 * 60 * 60 * 24)).toString();\n return {\n total: t,\n days: days.length === 1 ? '0' + days : days,\n hours: hours.length === 1 ? '0' + hours : hours,\n minutes: minutes.length === 1 ? '0' + minutes : minutes,\n seconds: seconds.length === 1 ? '0' + seconds : seconds,\n };\n}\n\nexport function* getOfferHistorySaga(action) {\n try {\n let url = 'GetOfferHistory/' + action.offerId + '?' + action.limit + '&offset=' + action.offset + '&user=' + action.name;\n const response = yield axios.get(url);\n const allItems = response.data.content;\n yield put(actions.getOfferHistorySuccess(allItems, response.data.count));\n } catch (error) {}\n}\n\nexport function* counterOfferSaga(action) {\n try {\n let url = 'CounterOffer/' + action.offerId;\n let objectToSend = { price: action.offerPrice };\n const response = yield axios.post(url, objectToSend);\n console.log('[offers.js/saga] удачно получилось');\n yield put(actions.getOffer(action.offerId));\n } catch (error) {\n console.log('[offers.js/saga] неудачно получилось');\n }\n}\n\nexport function* acceptOfferSaga(action) {\n try {\n let url = 'AcceptOffer/' + action.offerId;\n const response = yield axios.post(url);\n //console.log('[offers.js/saga] удачно получилось', action);\n\n let href = 'https://dev-public.mtwin.ru/CartAuthorized';\n \n if(action.env === 'PROD') href = 'https://www.mtwin.ru/CartAuthorized';\n \n window.open(href, '_blank');\n yield put(actions.getOffers(10, 0));\n } catch (error) {\n console.log('[offers.js/saga] неудачно получилось');\n }\n}\n\nexport function* declineOfferSaga(action) {\n try {\n let url = 'DeclineOffer/' + action.offerId;\n const response = yield axios.post(url);\n console.log('[offers.js/saga] удачно получилось');\n yield put(actions.getOffer(action.offerId));\n } catch (error) {\n console.log('[offers.js/saga] неудачно получилось');\n }\n}\n\nexport function* postTextMessageSaga(action) {\n try {\n let url = 'SendTextMessage/' + action.offerId;\n let objectToSend = { text: action.textMessage };\n const response = yield axios.post(url, objectToSend);\n console.log('[offers.js/saga] удачно получилось чёрная пакость L212 action.offerId=',action.offerId);\n yield put(actions.getChat(action.offerId));\n } catch (error) {\n console.log('[offers.js/saga] неудачно получилось');\n }\n}\n\nexport function* setSeenBySaga(action) {\n try {\n let url = 'AddSeenByPersonToAChatItem/' + action.offerId;\n console.log('[offers.js/saga] sagawri_offerid=',action.offerId)\n console.log('[offers.js/saga] sagawri_messageids=',action.messageIds)\n let objectToSend = { messageIds: action.messageIds, messageType: action.messageType };\n console.log('[offers.js/saga] objectToSend=',objectToSend)\n const response = yield axios.post(url, objectToSend);\n console.log('[offers.js/saga] удачно получилось черная пакость L227 action.offerId',action.offerId);\n //yield put(actions.getChat(action.offerId));\n yield all([put(actions.getChat(action.offerId)),put(actions.getAlertsCount())]);\n } catch (error) {\n console.log('[offers.js/saga] неудачно получилось');\n }\n}\n\n","import axios from 'axios';\n\nconst fetchMe = () => {\n\n let customerAccountServiceBaseUri = null;\n \n\n if (window.location.href.indexOf(\"localhost\") > -1) {\n \n customerAccountServiceBaseUri = 'http://localhost:44302/';\n } else if (window.location.href.indexOf(\"dev\") > -1) {\n \n customerAccountServiceBaseUri = 'https://dev-ws.mtwin.ru/CustomerAccountService/';\n } else {\n \n customerAccountServiceBaseUri = 'https://ws.mtwin.ru/CustomerAccountService/';\n }\n\n let uri = customerAccountServiceBaseUri + 'api/AzureGraph/';\n \n const defaultOptions = {\n baseURL: uri,\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n\n let instance = axios.create(defaultOptions);\n\n instance.interceptors.request.use(function (config) {\n const storedToken = localStorage.getItem('token');\n //console.log('token from axios-profile.js===',storedToken);\n config.headers.Authorization = storedToken ? storedToken : '';\n return config;\n });\n\n return instance;\n};\n\nexport default fetchMe();","import { put, call, takeEvery, all } from 'redux-saga/effects';\nimport { signInAuthProvider } from '../../authProvider';\nimport axios from '../../components/Profile/axios-profile';\nimport queryString from 'query-string';\n\nimport * as actions from '../actions';\n\nexport function* getAccessTokenSaga(action) {\n try {\n const response = yield signInAuthProvider.getAccessToken({ scopes: ['https://mtwin.onmicrosoft.com/CustomerAccountService/User.ReadWrite'] });\n yield all([put(actions.getOffersCount())]);\n } catch (error) {}\n}\n\nexport function* getGraphAccessTokenSaga(action) {\n try {\n var url = 'http://localhost:44302/api/AzureGraph/GetAccessToken';\n\n const config = { headers: { Authorization: `Bearer ${action.ordinaryAccessToken}` } };\n\n const response = yield axios.get(url, config);\n console.log('getGraphAccessTokenSaga@@@@@@@@@@@@@@@@@=', response.data);\n yield put(actions.getGraphAccessTokenSuccess(response.data.access_token));\n } catch (error) {\n console.log('error=', error);\n }\n}\n\nexport function* getUserCredentialsSaga(action) {\n try {\n //var url = \"http://localhost:44302/api/AzureGraph/GetUserCredentials/\";\n var url = 'GetUserCredentials/';\n //alert(process.env.REACT_APP_PIPS);\n // const config = {headers: {'Authorization': `Bearer ${action.accessToken}`}};\n\n const response = yield axios.get(url);\n let payLoad = response.data;\n // alert('симагонты!');\n console.log('paypaypayLoad=', payLoad);\n yield all([ put(actions.getUserCredentialsSuccess(payLoad)) ]);\n //yield put(actions.getUserCredentialsSuccess(payLoad));\n } catch (error) {}\n}\n\nexport function* updateUserCredentialsSaga(action) {\n try {\n //var url = \"http://localhost:44302/api/AzureGraph/UpdateUser/\";\n var url = 'UpdateUser/';\n //const config = {headers: {'Authorization': `Bearer ${action.accessToken}`}};\n \n let objToSend = { justString: action.json };\n console.log('[auth.js(saga)/L51] objToSend=',objToSend)\n const response = yield axios.post(url, objToSend);\n let payLoad = response.data;\n console.log('[auth/saga] paypaypayLoadiki=', payLoad);\n console.log('[auth/saga] end')\n yield put(actions.getUserCredentials(action.accessToken));\n } catch (error) {}\n}\n","import {put, call, takeEvery, all} from 'redux-saga/effects';\nimport { signInAuthProvider } from '../../authProvider';\nimport axios from '../../components/Bargain/axios-offers';\nimport * as actions from \"../actions\";\n\nexport function* getUserAddressListSaga(action) {\n try {\n let userId = action.userId == null ? localStorage.getItem('userId') : action.userId;\n \n let url = 'GetCustomerOnlineAddresses/' + userId;\n \n const response = yield axios.get( url);\n let payLoad = response.data;\n payLoad.sort(function (a, b) { \n return b.default - a.default;\n });\n console.log('paypaypayLoad=',payLoad)\n yield put(actions.getUserAddressListSuccess(payLoad));\n } catch (error) {\n }\n }\n\n export function* removeUserAddressSaga(action) {\n \n try {\n let url = 'RemoveCustomerOnlineAddresses/'+action.userId+'/'+action.addressId;\n\n const response = yield axios.post(url);\n yield put(actions.getUserAddressList(action.userId));\n\n } catch (error) {\n }\n }\n\n export function* sendSMSSaga(action) {\n \n try {\n \n let url = 'SendSMS/';\n let objectToSend = { customerFio: action.customerFio, customerPhone: action.customerPhone, confirmationNumber: action.confirmationNumber };\n const response = yield axios.post(url, objectToSend);\n yield put(actions.sendSMSSuccess(action.userId));\n\n } catch (error) {\n }\n }\n\n export function* setUserAddressAsDefaultSaga(action) {\n \n try {\n let url = 'SetCustomerOnlineCurrentAddress/'+action.userId+'/'+action.addressId;\n\n const response = yield axios.post(url);\n yield put(actions.getUserAddressList(action.userId));\n\n } catch (error) {\n }\n }\n\n export function* saveUserAddressSaga(action) {\n \n try {\n console.log('action===',action);\n let id = action.payLoad.id;\n let url;\n let response;\n if(action.payLoad.modus == 'edit') {\n url = 'RemoveCustomerOnlineAddresses/' + id + '/' + action.payLoad.addressId;\n\n response = yield axios.post(url);\n }\n\n url = 'SaveCustomerOnlineAddresses/'+id;\n \n response = yield axios.post(url, action.payLoad);\n yield put(actions.getUserAddressList(action.payLoad.id));\n\n } catch (error) {\n }\n }\n\n export function* saveUserVerificationInfoSaga(action) {\n \n try {\n console.log('action===',action);\n //let fileUploadObj = {customerId: action.customerId, customerLogin: action.customerLogin}\n //let data = { fileUploadObj: JSON.stringify(fileUploadObj), file: action.img1 };\n var fd = new FormData();\n fd.append('img1', action.img1);\n fd.append('img2', action.img2);\n fd.append('img3', action.img3);\n fd.append('customerId', action.customerId);\n fd.append('customerLogin', action.customerLogin);\n fd.append('customerFirstname', action.customerFirstname);\n fd.append('customerLastname', action.customerLastname);\n fd.append('customerPhone', action.userPhone);\n const config = { headers: { 'Content-Type': 'multipart/form-data' } };\n\n const url = 'SaveUserVerificationInfo';\n \n const response = yield axios.post(url, fd ,config);\n //yield put(actions.saveUserVerificationInfoSuccess());\n yield all([put(actions.saveUserVerificationInfoSuccess()),put(actions.SeeIfThisCustomerSentHisPhotosToVerification())]);\n\n } catch (error) {\n }\n }\n\n export function* seeIfThisCustomerSentHisPhotosToVerificationSaga(action) {\n try {\n let url = 'SeeIfThisCustomerSentHisPhotosToVerification/';\n \n const response = yield axios.get( url);\n let payLoad = response.data;\n yield put(actions.SeeIfThisCustomerSentHisPhotosToVerificationSuccess(payLoad));\n } catch (error) {\n }\n }\n ","import {put, call, takeEvery, all} from 'redux-saga/effects';\nimport { signInAuthProvider } from '../../authProvider';\nimport axios from '../../components/Bargain/axios-offers';\nimport * as actions from \"../actions\";\n\nexport function* doTicketCheckSaga(action) {\n try {\n let url = 'DoTicketCheck';\n let objectToSend = { ticketNumber: action.ticketNumber, ticketSerial: action.ticketSerial, customerLastName: action.customerLastName, customerFirstName: action.customerFirstName };\n var config = { params: objectToSend };\n \n const response = yield axios.get(url, config);\n console.log('[From ticket.js saga] L13=',response.data)\n \n if(!response.data) yield put(actions.doTicketCheckSuccess({confirmationResult: undefined, customerId: undefined, checkWasSuccessfull: false}));\n else yield put(actions.doTicketCheckSuccess({confirmationResult: response.data.confirmationResult, customerId: response.data.customerId, checkWasSuccessfull: true}));\n \n \n } catch (error) {}\n}\n\nexport function* confirmUserAsValidTicketCustomerSaga(action) {\n try {\n let url = 'ConfirmUserAsValidTicketCustomer';\n \n let objectToSend = { objectId: action.objectId, customerId: action.customerId };\n const response = yield axios.post(url, objectToSend);\n \n yield put(actions.confirmThatUserSubscribedToATicket(true));\n \n } catch (error) {}\n}\n\nexport function* clearCustomerTicketSubscriptionSaga(action) {\n try {\n let url = 'ClearCustomerTicketSubscription';\n \n let objectToSend = { objectId: action.objectId};\n const response = yield axios.post(url, objectToSend);\n \n yield put(actions.confirmThatUserSubscribedToATicket(false));\n \n } catch (error) {}\n}\n\nexport function* getTicketListSaga(action) {\n try {\n let url = 'GetTicketList';\n \n let objectToSend = { customerId: action.customerId};\n var config = { params: objectToSend };\n \n const response = yield axios.get(url, config);\n console.log('[From ticket.js saga] L52=',response.data)\n for(let oneItem of response.data)\n {\n oneItem.thisRowIsSelected = false;\n if(oneItem.ticketNumber == 'ТИ00009414') oneItem.stateReadable = 'действующий';\n if(oneItem.ticketNumber == 'ТИ00009415') oneItem.stateReadable = 'просрочен';\n if(oneItem.ticketNumber == 'ТИ00009408') oneItem.stateReadable = 'на аукционе';\n }\n yield put(actions.getTicketListSuccess(response.data));\n \n \n \n } catch (error) {}\n}\n\nexport function* getTicketSaga(action) {\n try {\n let url = 'GetTicket';\n \n let objectToSend = { ticketId: action.ticketId};\n var config = { params: objectToSend };\n \n const response = yield axios.get(url, config);\n console.log('[From ticket.js saga] L77=',response.data)\n yield put(actions.getTicketSuccess(response.data));\n } catch (error) {}\n}","import { put, call, takeEvery, all } from 'redux-saga/effects';\nimport { signInAuthProvider } from '../../authProvider';\n//import axios from '../../components/Profile/axios-profile';\nimport axios from '../../components/Bargain/axios-offers';\nimport queryString from 'query-string';\n\nimport * as actions from '../actions';\n\n// export function* getAccessTokenSaga(action) {\n// try {\n// const response = yield signInAuthProvider.getAccessToken({ scopes: ['https://mtwin.onmicrosoft.com/CustomerAccountService/User.ReadWrite'] });\n// yield all([put(actions.getOffersCount())]);\n// } catch (error) {}\n// }\n\n// export function* getGraphAccessTokenSaga(action) {\n// try {\n// var url = 'http://localhost:44302/api/AzureGraph/GetAccessToken';\n\n// const config = { headers: { Authorization: `Bearer ${action.ordinaryAccessToken}` } };\n\n// const response = yield axios.get(url, config);\n// console.log('getGraphAccessTokenSaga@@@@@@@@@@@@@@@@@=', response.data);\n// yield put(actions.getGraphAccessTokenSuccess(response.data.access_token));\n// } catch (error) {\n// console.log('error=', error);\n// }\n// }\n\nexport function* getUserClaimsSaga(action) {\n try {\n let url = 'GetAzureUser';\n \n var config = { params: {userLogin: action.userLogin} };\n //let objectToSend = { userLogin: action.userLogin};\n //alert(action.userLogin)\n const response = yield axios.get(url, config);\n console.log('бибаибоба',response.data)\n if(response.data.userAssignedToTicket) yield all([put(actions.confirmThatUserSubscribedToATicket(response.data)), put(actions.getTicketList(response.data.customerId)) ]); \n else yield put(actions.confirmThatUserSubscribedToATicket(response.data));\n } catch (error) {}\n}","import { takeEvery } from \"redux-saga/effects\";\nimport { clearCustomerTicketSubscription, counterOffer, getIncomingOffersCountSuccess } from \"../actions\";\n\nimport * as actionTypes from \"../actions/actionTypes\";\n\nimport { getOffersSaga } from './offers';\nimport { getOfferSaga } from './offers';\nimport { getChatSaga } from './offers';\nimport {getOfferHistorySaga} from './offers';\nimport {counterOfferSaga} from './offers';\nimport {acceptOfferSaga} from './offers';\nimport {declineOfferSaga} from './offers';\nimport {postTextMessageSaga} from './offers';\nimport {setSeenBySaga} from './offers';\nimport {getAccessTokenSaga} from './auth';\nimport {getGraphAccessTokenSaga} from './auth';\nimport {getUserCredentialsSaga} from './auth';\nimport {getOffersCountSaga} from './offers';\nimport {getAlertsCountSaga} from './offers';\nimport {getCartCountSaga} from './offers';\nimport {updateUserCredentialsSaga} from './auth';\nimport {getUserAddressListSaga} from './profile';\nimport {removeUserAddressSaga} from './profile';\nimport {saveUserAddressSaga} from './profile';\nimport {setUserAddressAsDefaultSaga} from './profile';\nimport {saveUserVerificationInfoSaga} from './profile';\nimport {seeIfThisCustomerSentHisPhotosToVerificationSaga} from './profile';\nimport {sendSMSSaga} from './profile';\nimport {doTicketCheckSaga} from './ticket';\nimport {confirmUserAsValidTicketCustomerSaga} from './ticket';\nimport {clearCustomerTicketSubscriptionSaga} from './ticket';\nimport { getTicketListSaga } from \"./ticket\";\nimport { getTicketSaga } from \"./ticket\";\nimport { getUserClaimsSaga } from \"./azure\";\n\nexport function* watchOffers() {\n yield takeEvery(actionTypes.GET_OFFERS, getOffersSaga);\n yield takeEvery(actionTypes.GET_OFFER, getOfferSaga);\n yield takeEvery(actionTypes.GET_CHAT, getChatSaga);\n yield takeEvery(actionTypes.GET_OFFER_HISTORY, getOfferHistorySaga);\n yield takeEvery(actionTypes.COUNTER_OFFER, counterOfferSaga);\n yield takeEvery(actionTypes.ACCEPT_OFFER, acceptOfferSaga);\n yield takeEvery(actionTypes.DECLINE_OFFER, declineOfferSaga);\n yield takeEvery(actionTypes.POST_TEXT_MESSAGE, postTextMessageSaga);\n yield takeEvery(actionTypes.SET_SEEN_BY, setSeenBySaga);\n yield takeEvery(actionTypes.GET_OFFERS_COUNT, getOffersCountSaga);\n yield takeEvery(actionTypes.GET_ALERTS_COUNT, getAlertsCountSaga);\n yield takeEvery(actionTypes.GET_CART_COUNT, getCartCountSaga);\n\n yield takeEvery(actionTypes.GET_ACCESS_TOKEN, getAccessTokenSaga);\n yield takeEvery(actionTypes.GET_GRAPH_ACCESS_TOKEN, getGraphAccessTokenSaga);\n yield takeEvery(actionTypes.GET_USER_CREDENTIALS, getUserCredentialsSaga);\n yield takeEvery(actionTypes.UPDATE_USER_CREDENTIALS, updateUserCredentialsSaga);\n\n yield takeEvery(actionTypes.GET_USER_ADDRESS_LIST, getUserAddressListSaga);\n yield takeEvery(actionTypes.REMOVE_USER_ADDRESS, removeUserAddressSaga);\n yield takeEvery(actionTypes.SET_USER_ADDRESS_AS_DEFAULT, setUserAddressAsDefaultSaga);\n yield takeEvery(actionTypes.SAVE_USER_ADDRESS, saveUserAddressSaga);\n yield takeEvery(actionTypes.SAVE_USER_VERIFICATION_INFO, saveUserVerificationInfoSaga);\n yield takeEvery(actionTypes.GET_WHETHER_USER_VERIFICATION_INFO_EXISTS, seeIfThisCustomerSentHisPhotosToVerificationSaga);\n yield takeEvery(actionTypes.SEND_SMS, sendSMSSaga);\n\n yield takeEvery(actionTypes.DO_TICKET_CHECK, doTicketCheckSaga);\n yield takeEvery(actionTypes.CONFIRM_USER_AS_VALID_TICKET_CUSTOMER, confirmUserAsValidTicketCustomerSaga);\n yield takeEvery(actionTypes.CLEAR_CUSTOMER_TICKET_SUBSCRIPTION, clearCustomerTicketSubscriptionSaga );\n yield takeEvery(actionTypes.GET_TICKET_LIST, getTicketListSaga);\n yield takeEvery(actionTypes.GET_TICKET, getTicketSaga);\n\n yield takeEvery(actionTypes.GET_USER_CLAIMS, getUserClaimsSaga);\n}\n","import AzureAD from 'react-aad-msal';\nimport {signInAuthProvider} from './authProvider';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport {Provider} from 'react-redux';\nimport { createStore, applyMiddleware, combineReducers } from \"redux\";\n\nimport {HashRouter as Router} from 'react-router-dom';\nimport createSagaMiddleware from \"redux-saga\";\n\nimport offersReducer from './store/reducers/offers';\nimport authReducer from './store/reducers/authReducer';\nimport graphReducer from './store/reducers/graphReducer';\nimport profileReducer from './store/reducers/profileReducer';\nimport ticketReducer from './store/reducers/ticket';\n\nimport {watchOffers } from \"./store/sagas\";\n\nconst rootReducer = combineReducers({\n offers: offersReducer,\n auth: authReducer,\n graph: graphReducer,\n profile: profileReducer,\n ticket: ticketReducer\n});\n\nconst sagaMiddleware = createSagaMiddleware();\nconst store = createStore(rootReducer,applyMiddleware(sagaMiddleware) );\nsagaMiddleware.run(watchOffers);\n\n\nReactDOM.render(\n \n \n {/* */}\n \n \n \n {/* */}\n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}