{"version":3,"sources":["assets/svg/lines.svg","assets/img/BannerTop.png","assets/img/BannerBottom.png","components/api-authorization/ApiAuthorizationConstants.js","components/api-authorization/AuthorizeService.js","helpers/Api.js","redux/userSlice.js","redux/preferenceSlice.js","components/Elements/Backdrop.jsx","assets/svg/nav/electric.jsx","assets/svg/nav/gas.jsx","components/Elements/NotificationBox.jsx","assets/svg/bell.jsx","assets/svg/arrows/arrowUpFull.jsx","assets/svg/noNewNotification.jsx","components/Elements/Notification.jsx","components/Buttons/FullButton.jsx","assets/svg/person.jsx","components/Elements/Profile.jsx","assets/svg/logo.jsx","assets/svg/burger.jsx","components/Nav/NavbarTop.jsx","components/Nav/NavbarTopDesktop.jsx","assets/svg/nav/dashboard.jsx","assets/svg/nav/logoutIcon.jsx","components/Nav/NavItem.jsx","components/Nav/VerticalNavbar.jsx","assets/svg/logoBig.jsx","components/Nav/SidebarDesktop.jsx","components/Nav/SidebarMobile.jsx","components/Elements/Popup.jsx","assets/svg/close.jsx","components/Nav/NotificationSidebar.jsx","components/Nav/Navbar.jsx","components/Elements/CopyRight.jsx","components/api-authorization/AuthorizeRoute.js","assets/svg/checkmark.jsx","components/Elements/Spinner.jsx","components/api-authorization/Login.js","components/api-authorization/Logout.js","components/api-authorization/ApiAuthorizationRoutes.js","components/Buttons/SelectButton.jsx","assets/svg/logoBigDark.jsx","pages/AccountSelect.jsx","helpers/utils.js","assets/svg/map.jsx","assets/svg/calendar.jsx","assets/svg/bank.jsx","assets/svg/people.jsx","assets/svg/phone.jsx","assets/svg/envelope.jsx","pages/Dashboard.jsx","assets/svg/stromDetail.jsx","assets/svg/gasDetail.jsx","components/Buttons/ProductSelect.jsx","components/Inputs/Checkbox.jsx","components/Elements/ProgressPoint.jsx","components/Inputs/InputLabel.jsx","assets/svg/Error.jsx","components/Elements/ModalSuccess.jsx","assets/svg/EmptyState.jsx","assets/svg/document.jsx","assets/svg/building.jsx","assets/svg/tag.jsx","assets/svg/savings.jsx","assets/svg/info.jsx","assets/svg/arowsIntersect.jsx","assets/svg/electricSymbol.jsx","assets/svg/meter.jsx","pages/Strom.jsx","pages/Gas.jsx","assets/svg/404.jsx","pages/Error404.jsx","style/GlobalStyles.js","App.js","redux/store.js","index.js"],"names":["module","exports","QueryParameterNames","LogoutActions","LoginActions","prefix","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","ApiAuthorizationPrefix","Login","LoginFailed","LoginCallback","Register","Profile","LogOut","LoggedOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","authService","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","a","this","getUser","user","profile","ensureUserManagerInitialized","userManager","access_token","state","signinSilent","createArguments","silentUser","updateState","success","console","log","Error","signinPopup","popUpUser","message","error","signinRedirect","redirect","url","signinCallback","signoutPopup","undefined","signoutRedirect","signoutCallback","response","data","notifySubscribers","callback","push","subscription","subscriptionId","subscriptionIndex","map","element","index","found","filter","length","splice","i","useReplaceToNavigate","status","AuthenticationResultStatus","Fail","Success","Redirect","fetch","ok","json","settings","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","events","addUserSignedOut","removeUser","getData","method","headers","Accept","postData","getToken","createAsyncThunk","thunkAPI","getAccessToken","token","rejectWithValue","getAccounts","Authorization","signOut","getAccountDetail","id","getAddressDetail","accId","addId","postSaveChanges","getState","body","JSON","stringify","userSlice","createSlice","name","initialState","accounts","selectedAccount","selectedAddress","accDetail","addrDetail","popup","isFetching","isSuccess","isError","savedChanges","errorMessage","reducers","clearState","togglePopup","action","payload","selectAccount","selectAddress","closeSuccessModal","dashboardState","invalidIban","extraReducers","fulfilled","rejected","pending","actions","preferenceSlice","sidebarOpen","mobileOpen","notificationOpen","toggleSidebar","openMobile","closeMobile","openNotification","closeNotification","Backdrop","transparent","Wrapper","onClick","styled","div","props","SvgComponent","data-name","xmlns","width","height","viewBox","d","fill","color","NotificationBox","energy","title","date","changeType","className","Icon","Info","style","transform","stroke","strokeWidth","cx","cy","r","fontSize","fontFamily","fontWeight","x","y","Notification","useState","showDropdown","setShowDropdown","useSelector","ExtraWrapper","notifications","Counter","DropdownBox","Header","ArrowUpWrapper","Body","item","key","energyType","createdDate","paddingTop","dropdownOpenAnimation","keyframes","button","FullButton","link","grey","href","WrapperLink","to","pathname","target","dispatch","useDispatch","AvatarImg","margin","email","clipPath","strokeLinecap","NavbarTop","WrapperDiv","LogoWrapper","BurgerWrapper","location","useLocation","preference","InnerWrap","BurgerIconWrapper","BreadCrumb","substring","charAt","toUpperCase","slice","maxWidth","paddingRight","TabBar","icon","path","full","withPopup","menuIcon","StyledButton","IconWrapper","LinkText","StyledLink","exact","activeStyle","backgroundColor","borderRight","NavLink","p","UlWrap","ListWraper","open","NavItem","ul","li","xmlnsXlink","rx","xlinkHref","opacity","ry","SidebarDesktop","NavWrapper","VerticalNavbar","SidebarMobile","sidebarStatus","HeaderDiv","BodyDiv","Popup","actionSecond","logoutPath","local","PopupDiv","marginTop","marginRight","marginLeft","CloseButton","ClearAllBtn","padding","overflowY","maxHeight","getWindowDimensions","window","innerWidth","innerHeight","Navbar","windowDimensions","setWindowDimensions","useEffect","handleResize","addEventListener","removeEventListener","NotificationSidebar","NavbarTopDesktop","CopyRight","Date","getFullYear","AuthorizeRoute","ready","authenticated","_subscription","subscribe","authenticationChanged","populateAuthenticationState","unsubscribe","document","createElement","returnUrl","protocol","host","search","hash","redirectUrl","encodeURI","Component","component","rest","render","hideMenu","isAuthenticated","setState","Spinner","text","noSpinner","showCheckmark","CheckmarkDiv","login","getReturnUrl","processLoginCallback","URLSearchParams","get","redirectToProfile","redirectToRegister","signIn","result","navigateToReturnUrl","completeSignIn","fromQuery","startsWith","origin","redirectToApiAuthorizationPath","apiAuthorizationPath","replace","Logout","isReady","history","logout","processLogoutCallback","completeSignOut","ApiAuthorizationRoutes","loginAction","logoutAction","SelectButton","account","address","active","NumberWrapper","NumberCircle","InfoWrapper","InfoInnerWrapper","minWidth","AddressP","SelectP","AccountSelect","selectAccHandler","items","PageWrapper","InnerWrapper","paddingBottom","FooterWrapper","BgLines","src","LinesBg","alt","maskStr","str","word","masked","Dashboard","selectAddressHandler","addresses","marginBottom","EmptyBox","ButtonWrapper","InfoRowWrapper","InfoBoxWrapper","EmptyBoxHeader","HeaderBox","AvatarCircle","BoxRow","BoxRowTitle","BoxRowSubtitle","format","birthday","iban","friendsCode","MailToStyle","lineHeight","BannerBox","BannerTop","BannerBottom","ProductSelect","border","Link","CheckboxDiv","IconWrapperDiv","Checkbox","checked","disabled","cursor","ProgressPoint","current","unactive","lineLeft","lineRight","lineLeftActive","lineRightActive","CircleWrapper","ProgressLine","ProgressLineInner1","ProgressLineInner2","InputDiv","InputInput","input","LabelLabel","label","InputLabel","placeholder","value","setValue","onChange","e","ModalSuccess","Strom","showDropdownInfo","setShowDropdownInfo","showStatusDropdownInfo","setShowStatusDropdownInfo","addressDetail","energyData","setEnergyData","nkDiscount","setNkDiscount","greenElectricity","setGreenElectricity","electricityAustria","setElectricityAustria","totalBill","setTotalBill","consumptionValue","setConsumptionValue","billingAddress","setBillingAddress","setIban","energyProviderDetails","energyMatch","find","obj","toLowerCase","tariffDiscount","ecoElectricity","electricityFromAUS","totalInvoice","annualConsumption","HeaderAddressWrapper","energyProvider","tariff","ExpectedSavings","expectedSavings","InfoBtn","onMouseEnter","onMouseLeave","DropdownP","isElectricityNkDiscountDisabled","isElectricityGreenElectricityDisabled","isElectricityFromAustriaDisabled","isElectricityTotalBillDisabled","ProgressContainer","ProgressIcon","extendedStatus","description","InfoBtn2","info","ProgressWrapper","display","alignItems","progressBarStatuses","BigInputWrapper","InputStyle","isElectricityConsumptionDisabled","type","UnitStyle","MeterWrapper","meterNumber","AddressHeaderWrapper","AddressWrapper","isElectricityBillingAddressDisabled","isElectricityIbanDisabled","userMadeChanges","AccountId","AddressId","AddressName","ContractId","contractId","EnergyProvider","EnergyProviderId","energyProviderId","EnergyType","MeterNumber","ProductId","productId","ProgressBarStatus","progressBarStatus","ShippingAddress","shippingAddress","Status","Tariff","NkDiscountNew","NkDiscountOld","GreenElectricityNew","GreenElectricityOld","ElectricityFromAustriaNew","ElectricityFromAustriaOld","TotalBillNew","TotalBillOld","ConsumptionNew","parseInt","ConsumptionOld","BillingAddressNew","BillingAddressOld","IbanNew","IbanOld","EmptyState","isGasNkDiscountDisabled","isGasTotalBillDisabled","isGasConsumptionDisabled","isGasBillingAddressDisabled","isGasIbanDisabled","Error404","GlobalStyles","createGlobalStyle","App","Helmet","rel","crossorigin","Gas","store","configureStore","reducer","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","basename"],"mappings":"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","file":"static/js/main.3fc34d4a.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/lines.3531622b.svg\";","module.exports = __webpack_public_path__ + \"static/media/BannerTop.63816f92.png\";","module.exports = __webpack_public_path__ + \"static/media/BannerBottom.b57df128.png\";","export const ApplicationName = 'EnergyHero.LoginArea';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: 'returnUrl',\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nconst prefix = '/authentication';\r\n\r\nexport const ApplicationPaths = {\r\n DefaultLoginRedirectPath: '/',\r\n ApiAuthorizationClientConfigurationUrl: `/_configuration/${ApplicationName}`,\r\n ApiAuthorizationPrefix: prefix,\r\n Login: `${prefix}/${LoginActions.Login}`,\r\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\r\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\r\n Register: `${prefix}/${LoginActions.Register}`,\r\n Profile: `${prefix}/${LoginActions.Profile}`,\r\n LogOut: `${prefix}/${LogoutActions.Logout}`,\r\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\r\n IdentityRegisterPath: '/Identity/Account/Register',\r\n IdentityManagePath: '/Identity/Account/Manage'\r\n};\r\n","import { UserManager, WebStorageStateStore } from 'oidc-client';\r\nimport { ApplicationPaths, ApplicationName } from './ApiAuthorizationConstants';\r\n\r\nexport class AuthorizeService {\r\n _callbacks = [];\r\n _nextSubscriptionId = 0;\r\n _user = null;\r\n _isAuthenticated = false;\r\n\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n _popUpDisabled = true;\r\n\r\n async isAuthenticated() {\r\n const user = await this.getUser();\r\n return !!user;\r\n }\r\n\r\n async getUser() {\r\n if (this._user && this._user.profile) {\r\n return this._user.profile;\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.profile;\r\n }\r\n\r\n async getAccessToken() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.access_token;\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n async signIn(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const silentUser = await this.userManager.signinSilent(this.createArguments());\r\n this.updateState(silentUser);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log(\"Silent authentication error: \", silentError);\r\n\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n const popUpUser = await this.userManager.signinPopup(this.createArguments());\r\n this.updateState(popUpUser);\r\n return this.success(state);\r\n } catch (popUpError) {\r\n if (popUpError.message === \"Popup window closed\") {\r\n // The user explicitly cancelled the login action by closing an opened popup.\r\n return this.error(\"The user closed the window.\");\r\n } else if (!this._popUpDisabled) {\r\n console.log(\"Popup authentication error: \", popUpError);\r\n }\r\n\r\n // PopUps might be blocked by the user, fallback to redirect\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log(\"Redirect authentication error: \", redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async completeSignIn(url) {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.updateState(user);\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n // We try to sign out the user in two different ways:\r\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\r\n // post logout redirect flow.\r\n async signOut(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.updateState(undefined);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log(\"Popup signout error: \", popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log(\"Redirect signout error: \", redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n async completeSignOut(url) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.updateState(null);\r\n return this.success(response && response.data);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n updateState(user) {\r\n this._user = user;\r\n this._isAuthenticated = !!this._user;\r\n this.notifySubscribers();\r\n }\r\n\r\n subscribe(callback) {\r\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\r\n return this._nextSubscriptionId - 1;\r\n }\r\n\r\n unsubscribe(subscriptionId) {\r\n const subscriptionIndex = this._callbacks\r\n .map((element, index) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\r\n .filter(element => element.found === true);\r\n if (subscriptionIndex.length !== 1) {\r\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n }\r\n\r\n this._callbacks.splice(subscriptionIndex[0].index, 1);\r\n }\r\n\r\n notifySubscribers() {\r\n for (let i = 0; i < this._callbacks.length; i++) {\r\n const callback = this._callbacks[i].callback;\r\n callback();\r\n }\r\n }\r\n\r\n createArguments(state) {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n error(message) {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n success(state) {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n redirect() {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n async ensureUserManagerInitialized() {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n let settings = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n settings.userStore = new WebStorageStateStore({\r\n prefix: ApplicationName\r\n });\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.updateState(undefined);\r\n });\r\n }\r\n\r\n static get instance() { return authService }\r\n}\r\n\r\nconst authService = new AuthorizeService();\r\n\r\nexport default authService;\r\n\r\nexport const AuthenticationResultStatus = {\r\n Redirect: 'redirect',\r\n Success: 'success',\r\n Fail: 'fail'\r\n};\r\n","export const getData = {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n};\r\n\r\nexport const postData = {\r\n method: \"POST\",\r\n headers: {\r\n 'Accept': 'application/json, text/plain, */*',\r\n 'Content-Type': 'application/json'\r\n },\r\n};\r\n","import { createSlice, createAsyncThunk } from \"@reduxjs/toolkit\";\r\nimport { getData, postData } from \"../helpers/Api\";\r\nimport authService from \"../components/api-authorization/AuthorizeService\";\r\n\r\n// Get Token to Redux State\r\nexport const getToken = createAsyncThunk(\"token\", async (thunkAPI) => {\r\n try {\r\n let token = await authService.getAccessToken();\r\n if (token) {\r\n return token;\r\n } else {\r\n return thunkAPI.rejectWithValue();\r\n }\r\n } catch (e) {\r\n thunkAPI.rejectWithValue(e.response.data);\r\n }\r\n});\r\n// Get Accounts for User\r\nexport const getAccounts = createAsyncThunk(\"salesforceaccount\", async (token, thunkAPI) => {\r\n try {\r\n getData.headers = { Authorization: `Bearer ${token}` };\r\n const response = await fetch(`salesforceaccount`, getData);\r\n if (response.status === 401) {\r\n authService.signOut();\r\n }\r\n let data = await response.json();\r\n if (response.status === 200) {\r\n return data;\r\n } else {\r\n return thunkAPI.rejectWithValue(data);\r\n }\r\n } catch (e) {\r\n thunkAPI.rejectWithValue(e.response.data);\r\n }\r\n});\r\n// Get Accounts Detail for User\r\nexport const getAccountDetail = createAsyncThunk(\"account-detail\", async ({token, id}, thunkAPI) => {\r\n try {\r\n getData.headers = { Authorization: `Bearer ${token}` };\r\n const response = await fetch(`salesforceaccount/getaccountdetails/${id}`, getData);\r\n let data = await response.json();\r\n if (response.status === 200) {\r\n return data;\r\n } else {\r\n return thunkAPI.rejectWithValue(data);\r\n }\r\n } catch (e) {\r\n thunkAPI.rejectWithValue(e.response.data);\r\n }\r\n});\r\n// Get Address Detail for Account/Address\r\nexport const getAddressDetail = createAsyncThunk(\"address-detail\", async ({ token, accId, addId }, thunkAPI) => {\r\n try {\r\n getData.headers = { Authorization: `Bearer ${token}` };\r\n const response = await fetch(`salesforceaccount/getaddressdetails/${accId}/${addId}`, getData);\r\n let data = await response.json();\r\n if (response.status === 200) {\r\n return data;\r\n } else {\r\n return thunkAPI.rejectWithValue(data);\r\n }\r\n } catch (e) {\r\n thunkAPI.rejectWithValue(e.response.data);\r\n }\r\n});\r\n// Save Electric / Gas Changes\r\nexport const postSaveChanges = createAsyncThunk(\"SaveChanges\", async (data, thunkAPI) => {\r\n postData.headers.Authorization = `Bearer ${thunkAPI.getState().user.token}`;\r\n postData.body = JSON.stringify(data);\r\n try {\r\n const response = await fetch(`Changes/SaveChanges`, postData);\r\n let data = await response.json();\r\n if (response.status === 200) {\r\n return data;\r\n } else {\r\n return thunkAPI.rejectWithValue(data);\r\n }\r\n } catch (e) {\r\n thunkAPI.rejectWithValue(e.response.data);\r\n }\r\n});\r\n\r\nexport const userSlice = createSlice({\r\n name: \"user\",\r\n initialState: {\r\n token: null,\r\n accounts: null,\r\n selectedAccount: null,\r\n selectedAddress: null,\r\n accDetail: null,\r\n addrDetail: null,\r\n popup: false,\r\n isFetching: false,\r\n isSuccess: false,\r\n isError: false,\r\n savedChanges: false,\r\n errorMessage: \"\",\r\n },\r\n reducers: {\r\n clearState: (state) => {\r\n state.isFetching = false;\r\n state.isSuccess = false;\r\n state.isError = false;\r\n return state;\r\n },\r\n togglePopup: (state, action) => {\r\n state.popup = action.payload;\r\n },\r\n selectAccount: (state, action) => {\r\n state.selectedAccount = action.payload;\r\n },\r\n selectAddress: (state, action) => {\r\n state.selectedAddress = action.payload;\r\n },\r\n closeSuccessModal: (state) => {\r\n state.savedChanges = false;\r\n state.addrDetail.dashboardState.invalidIban = false;\r\n },\r\n },\r\n extraReducers: {\r\n [getToken.fulfilled]: (state, { payload }) => {\r\n state.token = payload;\r\n state.isFetching = false;\r\n state.isSuccess = true;\r\n },\r\n [getToken.rejected]: (state, { payload }) => {\r\n state.isFetching = false;\r\n state.isError = true;\r\n state.errorMessage = \"there is a problem getting token\";\r\n },\r\n [getToken.pending]: (state) => {\r\n state.isFetching = true;\r\n },\r\n [getAccounts.fulfilled]: (state, { payload }) => {\r\n state.accounts = payload;\r\n state.isFetching = false;\r\n state.isSuccess = true;\r\n },\r\n [getAccounts.rejected]: (state, { payload }) => {\r\n state.isFetching = false;\r\n state.isError = true;\r\n state.errorMessage = payload ? payload.error : \"there is a problem getting data from server\";\r\n },\r\n [getAccounts.pending]: (state) => {\r\n state.isFetching = true;\r\n },\r\n [getAccountDetail.fulfilled]: (state, { payload }) => {\r\n state.accDetail = payload;\r\n state.isFetching = false;\r\n state.isSuccess = true;\r\n },\r\n [getAccountDetail.rejected]: (state, { payload }) => {\r\n state.isFetching = false;\r\n state.isError = true;\r\n state.errorMessage = payload ? payload.error : \"there is a problem getting data from server\";\r\n },\r\n [getAccountDetail.pending]: (state) => {\r\n state.isFetching = true;\r\n },\r\n [getAddressDetail.fulfilled]: (state, { payload }) => {\r\n state.addrDetail = payload;\r\n state.isFetching = false;\r\n state.isSuccess = true;\r\n },\r\n [getAddressDetail.rejected]: (state, { payload }) => {\r\n state.isFetching = false;\r\n state.isError = true;\r\n state.errorMessage = payload ? payload.error : \"there is a problem getting data from server\";\r\n },\r\n [getAddressDetail.pending]: (state) => {\r\n state.isFetching = true;\r\n },\r\n [postSaveChanges.fulfilled]: (state, { payload }) => {\r\n state.addrDetail.dashboardState = payload;\r\n state.isFetching = false;\r\n state.isSuccess = true;\r\n state.savedChanges = true;\r\n },\r\n [postSaveChanges.rejected]: (state, { payload }) => {\r\n state.isFetching = false;\r\n state.isError = true;\r\n state.errorMessage = payload ? payload.error : \"there is a problem sending data to server\";\r\n },\r\n [postSaveChanges.pending]: (state) => {\r\n state.isFetching = true;\r\n },\r\n },\r\n});\r\n\r\nexport const { clearState, togglePopup, selectAccount, selectAddress, closeSuccessModal } = userSlice.actions;\r\n\r\nexport const userSelector = (state) => state.user;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n sidebarOpen: true,\r\n mobileOpen: false,\r\n notificationOpen: false,\r\n};\r\n\r\nexport const preferenceSlice = createSlice({\r\n name: \"preference\",\r\n initialState,\r\n reducers: {\r\n toggleSidebar: (state) => {\r\n state.sidebarOpen = !state.sidebarOpen;\r\n },\r\n openMobile: (state) => {\r\n state.mobileOpen = true;\r\n },\r\n closeMobile: (state) => {\r\n state.mobileOpen = false;\r\n },\r\n openNotification: (state) => {\r\n state.notificationOpen = true;\r\n },\r\n closeNotification: (state) => {\r\n state.notificationOpen = false;\r\n },\r\n },\r\n});\r\n\r\nexport const { toggleSidebar, openMobile, closeMobile, openNotification, closeNotification } = preferenceSlice.actions;\r\n\r\nexport default preferenceSlice.reducer;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Backdrop = ({ transparent, action }) => {\r\n return action() : null}>;\r\n};\r\n\r\nexport default Backdrop;\r\n\r\nconst Wrapper = styled.div`\r\n height: 100vh;\r\n width: 100%;\r\n position: fixed;\r\n top: 0px;\r\n left: 0px;\r\n z-index: 999!important;\r\n opacity: ${(props) => (props.transparent ? \"0\" : \"0.6\")};\r\n background-color: #374146;\r\n`;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n// Assets\r\nimport ElectricIcon from \"../../assets/svg/nav/electric\";\r\nimport GasIcon from \"../../assets/svg/nav/gas\";\r\n\r\nconst NotificationBox = ({energy, title, date, changeType}) => {\r\n return (\r\n \r\n {energy ? energy === \"Electricity\" ? : : null}\r\n \r\n
\r\n

\r\n {changeType ? changeType : null}\r\n

\r\n

\r\n {date ? date : null}\r\n

\r\n
\r\n

\r\n {title ? title : null}\r\n

\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default NotificationBox;\r\n\r\nconst Wrapper = styled.div`\r\n width: 100%;\r\n background-color: #fafafa;\r\n margin: 10px 0;\r\n padding: 10px;\r\n`;\r\nconst Icon = styled.div`\r\n background-color: #f9a81a;\r\n width: 38px;\r\n height: 38px;\r\n min-width: 38px;\r\n max-height: 38px;\r\n max-width: 38px;\r\n min-height: 38px;\r\n border-radius: 50%;\r\n`;\r\nconst Info = styled.div`\r\n width: 100%;\r\n margin-left: 10px;\r\n`;","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\"0\"}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React, { useState } from \"react\";\r\nimport styled, { keyframes } from \"styled-components\";\r\nimport { useSelector } from \"react-redux\";\r\n// Components\r\nimport Backdrop from \"../Elements/Backdrop\";\r\nimport NotificationBox from \"../Elements/NotificationBox\";\r\n// Assets\r\nimport BellIcon from \"../../assets/svg/bell\";\r\nimport ArrowUpFull from \"../../assets/svg/arrows/arrowUpFull\";\r\nimport NoNewNotification from \"../../assets/svg/noNewNotification\";\r\n\r\nconst Notification = ({action}) => {\r\n const [showDropdown, setShowDropdown] = useState(false);\r\n const addrDetail = useSelector((state) => state.user.addrDetail);\r\n return (\r\n \r\n action() : () => setShowDropdown(!showDropdown)}>\r\n {addrDetail && addrDetail.dashboardState && addrDetail.dashboardState.notifications.length > 0 ? (\r\n \r\n

{addrDetail && addrDetail.dashboardState && addrDetail.dashboardState.notifications.length}

\r\n
\r\n ) : null}\r\n \r\n
\r\n {showDropdown ? (\r\n <>\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n

Benachrichtigungen

\r\n
\r\n
\r\n \r\n {addrDetail && addrDetail.dashboardState && addrDetail.dashboardState.notifications && addrDetail.dashboardState.notifications.length > 0 ? (\r\n addrDetail.dashboardState.notifications.map((item, index) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n \r\n

\r\n Keine neue Benachrichtigung\r\n

\r\n
\r\n )}\r\n \r\n
\r\n setShowDropdown(false)} />\r\n \r\n ) : null}\r\n
\r\n );\r\n};\r\n\r\nexport default Notification;\r\n\r\nconst dropdownOpenAnimation = keyframes`\r\n 0% { top: 20px; }\r\n 100% { top: 62px; }\r\n`;\r\nconst ExtraWrapper = styled.div`\r\n position: relative;\r\n height: 60px;\r\n`;\r\nconst Wrapper = styled.button`\r\n background-color: transparent;\r\n height: 60px;\r\n width: 60px;\r\n outline: none;\r\n border: 0px;\r\n position: relative;\r\n margin: 0 5px;\r\n @media (max-width: 360px) {\r\n margin: 0px;\r\n }\r\n`;\r\nconst Counter = styled.div`\r\n background-color: #ff4141;\r\n height: 25px;\r\n width: 25px;\r\n border: 2px solid #fafafa;\r\n border-radius: 50%;\r\n position: absolute;\r\n top: 5px;\r\n right: 5px;\r\n p {\r\n color: #fff;\r\n }\r\n`;\r\nconst DropdownBox = styled.div`\r\n background-color: #fff;\r\n position: absolute;\r\n min-width: 350px;\r\n height: 500px;\r\n right: 0;\r\n padding: 0px 0px 15px 15px;\r\n border-radius: 0.6rem;\r\n border: 2px solid #eaeeee;\r\n -webkit-box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n -moz-box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n z-index: 9999;\r\n animation-name: ${dropdownOpenAnimation};\r\n animation-duration: 0.3s;\r\n -webkit-animation: ${dropdownOpenAnimation} 0.3s forwards;\r\n animation: ${dropdownOpenAnimation} 0.3s forwards;\r\n`;\r\nconst Header = styled.div`\r\n padding: 8px 0px;\r\n width: 100%;\r\n`;\r\nconst Body = styled.div`\r\n width: 100%;\r\n overflow-y: auto;\r\n padding-right: 15px;\r\n`;\r\nconst ArrowUpWrapper = styled.div`\r\n position: absolute;\r\n top: -10px;\r\n right: 15px;\r\n`;\r\n\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst FullButton = ({ title, action, link, grey, href }) => {\r\n return (\r\n <>\r\n {link ? (\r\n \r\n \r\n {title}\r\n \r\n \r\n ) : href ? (\r\n \r\n \r\n {title}\r\n \r\n \r\n ) : (\r\n action() : null}>\r\n

\r\n {title}\r\n

\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default FullButton;\r\n\r\nconst Wrapper = styled.button`\r\n background-color: ${(props) => (props.grey ? \"#CED4DA\" : \"#f9a81a\")};\r\n height: 45px;\r\n width: 100%;\r\n outline: none;\r\n border: 0px;\r\n border-radius: 0.5rem;\r\n :hover {\r\n background-color: ${(props) => (props.grey ? \"#AFBFCE\" : \"#f58600\")};\r\n }\r\n`;\r\nconst WrapperLink = styled.div`\r\n background-color: ${(props) => (props.grey ? \"#CED4DA\" : \"#f9a81a\")};\r\n height: 45px;\r\n width: 100%;\r\n border-radius: 0.5rem;\r\n :hover {\r\n background-color: ${(props) => (props.grey ? \"#AFBFCE\" : \"#f58600\")};\r\n }\r\n`;","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React, { useState } from \"react\";\r\nimport styled, { keyframes } from \"styled-components\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { togglePopup } from \"../../redux/userSlice\";\r\n// Components\r\nimport Backdrop from \"../Elements/Backdrop\";\r\nimport FullButton from \"../Buttons/FullButton\";\r\n// Assets\r\nimport PersonIcon from \"../../assets/svg/person\";\r\nimport ArrowUpFull from \"../../assets/svg/arrows/arrowUpFull\";\r\n\r\nconst Profile = () => {\r\n const [showDropdown, setShowDropdown] = useState(false);\r\n const dispatch = useDispatch();\r\n const accDetail = useSelector((state) => state.user.accDetail);\r\n\r\n return (\r\n \r\n setShowDropdown(!showDropdown)}>\r\n \r\n \r\n {showDropdown ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{accDetail ? accDetail.name : null}

\r\n

\r\n {accDetail ? accDetail.email : null}\r\n

\r\n
\r\n \r\n
\r\n
\r\n dispatch(togglePopup(true))} />\r\n
\r\n
\r\n setShowDropdown(false)} />\r\n \r\n ) : null}\r\n
\r\n );\r\n};\r\n\r\nexport default Profile;\r\n\r\nconst dropdownOpenAnimation = keyframes`\r\n 0% { top: 20px; }\r\n 100% { top: 62px; }\r\n`;\r\nconst ExtraWrapper = styled.div`\r\n position: relative;\r\n height: 60px;\r\n`;\r\nconst Wrapper = styled.button`\r\n background-color: transparent;\r\n height: 60px;\r\n width: 60px;\r\n outline: none;\r\n border: 0px;\r\n position: relative;\r\n margin: 0 5px;\r\n @media (max-width: 360px) {\r\n margin: 0px;\r\n }\r\n`;\r\nconst DropdownBox = styled.div`\r\n background-color: #fff;\r\n position: absolute;\r\n min-width: 230px;\r\n right: 0;\r\n padding: 15px;\r\n border-radius: 0.6rem;\r\n border: 2px solid #eaeeee;\r\n -webkit-box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n -moz-box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n z-index: 9999;\r\n animation-name: ${dropdownOpenAnimation};\r\n animation-duration: 0.3s;\r\n -webkit-animation: ${dropdownOpenAnimation} 0.3s forwards;\r\n animation: ${dropdownOpenAnimation} 0.3s forwards;\r\n`;\r\nconst ArrowUpWrapper = styled.div`\r\n position: absolute;\r\n top: -10px;\r\n right: 15px;\r\n`;\r\nconst AvatarImg = styled.div`\r\n background-color: #f9a81a;\r\n width: 50px;\r\n height: 50px;\r\n border-radius: 50%;\r\n margin: 15px;\r\n`;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { openMobile, openNotification } from \"../../redux/preferenceSlice\";\r\n// Components\r\nimport Notification from \"../Elements/Notification\";\r\nimport Profile from \"../Elements/Profile\";\r\n// Assets\r\nimport LogoImg from \"../../assets/svg/logo\";\r\nimport BurgerImg from \"../../assets/svg/burger\";\r\n\r\nconst NavbarTop = () => {\r\n const dispatch = useDispatch();\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n dispatch(openMobile())}>\r\n \r\n \r\n
\r\n
\r\n dispatch(openNotification())}/>\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default NavbarTop;\r\n\r\nconst WrapperDiv = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n z-index: 50;\r\n width: 100%;\r\n height: 60px;\r\n background-color: #fafafa;\r\n border-bottom: 2px solid #eaeeee;\r\n padding: 0 5px;\r\n`;\r\nconst LogoWrapper = styled.div`\r\n width: 60px;\r\n height: 60px;\r\n`;\r\nconst BurgerWrapper = styled.button`\r\n width: 60px;\r\n min-width: 60px;\r\n height: 60px;\r\n border: 0px;\r\n outline: none;\r\n background-color: transparent;\r\n`;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { toggleSidebar } from \"../../redux/preferenceSlice\";\r\n// Components\r\nimport Notification from \"../Elements/Notification\";\r\nimport Profile from \"../Elements/Profile\";\r\n// Assets\r\nimport BurgerIcon from \"../../assets/svg/burger\";\r\n\r\nconst NavbarTop = () => {\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n const sidebarOpen = useSelector((state) => state.preference.sidebarOpen);\r\n\r\n const getBreadcrumb = () => {\r\n let name = \"\";\r\n if (location.pathname === \"/\") {\r\n name = \"Dashboard\";\r\n } else {\r\n name = location.pathname.substring(1).charAt(0).toUpperCase() + location.pathname.slice(2);\r\n }\r\n return name;\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n dispatch(toggleSidebar())}>\r\n \r\n \r\n \r\n \r\n \r\n

\r\n Energy Hero\r\n \r\n /\r\n \r\n {getBreadcrumb()}\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default NavbarTop;\r\n\r\nconst WrapperDiv = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n z-index: 40;\r\n height: 70px;\r\n padding-right: 15px;\r\n background-color: #fafafa;\r\n border-bottom: 2px solid #eaeeee;\r\n`;\r\nconst InnerWrap = styled.div`\r\n max-width: 1720px;\r\n height: 70px;\r\n margin: 0 auto;\r\n`;\r\nconst BurgerWrapper = styled.button`\r\n background-color: transparent;\r\n height: 60px;\r\n width: 80px;\r\n max-width: 20%;\r\n border: 0px;\r\n outline: none;\r\n overflow-x: hidden;\r\n`;\r\nconst BurgerIconWrapper = styled.div`\r\n width: 80px;\r\n`;\r\nconst BreadCrumb = styled.div`\r\n max-width: 70%;\r\n p {\r\n min-height: 17px;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n }\r\n`;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { NavLink, useLocation } from \"react-router-dom\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { closeMobile } from \"../../redux/preferenceSlice\";\r\nimport { togglePopup } from \"../../redux/userSlice\";\r\n// Assets\r\nimport DashboardIcon from \"../../assets/svg/nav/dashboard\";\r\nimport ElectricIcon from \"../../assets/svg/nav/electric\";\r\nimport GasIcon from \"../../assets/svg/nav/gas\";\r\nimport LogoutIcon from \"../../assets/svg/nav/logoutIcon\";\r\n\r\nconst TabBar = ({ icon, path, title, full, withPopup }) => {\r\n const dispatch = useDispatch();\r\n const location = useLocation();\r\n const sidebarOpen = useSelector((state) => state.preference.sidebarOpen);\r\n\r\n let menuIcon =
;\r\n\r\n if (icon === \"dashboard\") {\r\n menuIcon = ;\r\n } else if (icon === \"strom\") {\r\n menuIcon = ;\r\n } else if (icon === \"gas\") {\r\n menuIcon = ;\r\n } else if (icon === \"logout\") {\r\n menuIcon = ;\r\n } else {\r\n menuIcon = ;\r\n }\r\n\r\n const logoutHandler = () => {\r\n dispatch(closeMobile());\r\n dispatch(togglePopup(true));\r\n }\r\n\r\n if(withPopup) {\r\n return (\r\n logoutHandler()}>\r\n {menuIcon}\r\n {sidebarOpen || full ? {title} : null}\r\n \r\n );\r\n }else {\r\n return (\r\n dispatch(closeMobile())}\r\n >\r\n {menuIcon}\r\n {sidebarOpen || full ? {title} : null}\r\n \r\n );\r\n }\r\n};\r\n\r\nexport default TabBar;\r\nconst StyledButton = styled.button`\r\n border: 0px;\r\n outline: none;\r\n background-color: transparent;\r\n width: 100%;\r\n margin: 5px auto;\r\n border-right: \"5px solid #404A4F\";\r\n :hover {\r\n background-color: #374146;\r\n }\r\n`;\r\nconst StyledLink = styled(NavLink)`\r\n border: 0px;\r\n outline: none;\r\n background-color: transparent;\r\n width: 100%;\r\n margin: 5px auto;\r\n border-right: \"5px solid #404A4F\";\r\n :hover {\r\n background-color: #374146;\r\n }\r\n`;\r\nconst IconWrapper = styled.div`\r\n width: 80px;\r\n height: 70px;\r\n border-radius: 5px;\r\n`;\r\nconst LinkText = styled.p`\r\n color: #fff;\r\n`;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useSelector } from \"react-redux\";\r\n// Components\r\nimport NavItem from \"./NavItem\";\r\n\r\nconst TabBar = ({ full }) => {\r\n const sidebarOpen = useSelector((state) => state.preference.sidebarOpen);\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default TabBar;\r\n\r\nconst WrapperDiv = styled.div`\r\n width: 100%;\r\n height: calc(100vh - 130px);\r\n display: block;\r\n z-index: 30;\r\n overflow-x: hidden;\r\n`;\r\nconst UlWrap = styled.ul`\r\n width: 100%;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n`;\r\nconst ListWraper = styled.li`\r\n width: ${(props) => (props.open || props.full ? \"220px\" : \"80px\")};\r\n overflow-x: hidden;\r\n`;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useSelector } from \"react-redux\";\r\n// Components\r\nimport VerticalNavbar from \"../Nav/VerticalNavbar\";\r\n// Assets\r\nimport Logo from \"../../assets/svg/logo\";\r\nimport LogoBig from \"../../assets/svg/logoBig\";\r\n\r\nconst SidebarDesktop = () => {\r\n const sidebarOpen = useSelector((state) => state.preference.sidebarOpen);\r\n\r\n return (\r\n \r\n {sidebarOpen ? : }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SidebarDesktop;\r\n\r\nconst WrapperDiv = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n z-index: 50;\r\n width: ${(props) => (props.sidebarOpen ? \"220px\" : \"80px\")};\r\n height: 100vh;\r\n background-color: #404A4F;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n`;\r\nconst LogoWrapper = styled.div`\r\n height: 70px;\r\n width: 100%;\r\n`;\r\nconst NavWrapper = styled.div`\r\n padding-top: 30px;\r\n`;","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { closeMobile } from \"../../redux/preferenceSlice\";\r\n// Components\r\nimport Backdrop from \"../Elements/Backdrop\";\r\nimport VerticalNavbar from \"../Nav/VerticalNavbar\";\r\n// Assets\r\nimport Large from \"../../assets/svg/logoBig\";\r\n\r\nconst SidebarMobile = () => {\r\n const dispatch = useDispatch();\r\n const sidebarStatus = useSelector((state) => state.preference.mobileOpen);\r\n return (\r\n <>\r\n {sidebarStatus ? dispatch(closeMobile())}> : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SidebarMobile;\r\n\r\nconst WrapperDiv = styled.div`\r\n background-color: #404a4f;\r\n width: 80%;\r\n max-width: 220px;\r\n height: 100vh;\r\n position: fixed;\r\n overflow-y: auto;\r\n top: 0;\r\n z-index: 9999;\r\n left: ${(props) => (props.sidebarStatus ? \"0\" : \"-80%\")};\r\n`;\r\n// HEADER\r\nconst HeaderDiv = styled.div`\r\n width: 100%;\r\n height: 60px;\r\n`;\r\n// BODY\r\nconst BodyDiv = styled.div`\r\n width: 100%;\r\n margin: 3vh 0;\r\n`;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { ApplicationPaths } from \"../api-authorization/ApiAuthorizationConstants\";\r\n\r\n// Components\r\nimport Backdrop from \"../Elements/Backdrop\";\r\nimport FullButton from \"../Buttons/FullButton\";\r\n\r\nconst Popup = ({actionSecond}) => {\r\n const logoutPath = { pathname: `${ApplicationPaths.LogOut}`, state: { local: true } };\r\n return (\r\n \r\n \r\n \r\n

Bist du sicher?

\r\n
\r\n
\r\n \r\n
\r\n
\r\n actionSecond() : null} />\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Popup;\r\n\r\nconst Wrapper = styled.div`\r\n height: 100vh;\r\n width: 100%;\r\n position: fixed;\r\n z-index: 99999;\r\n top: 0px;\r\n left: 0px;\r\n`;\r\nconst PopupDiv = styled.div`\r\n background-color: #fff;\r\n z-index: 9999;\r\n padding: 60px 80px 30px 80px;\r\n border-radius: 10px;\r\n min-width: 320px;\r\n @media (max-width: 460px) {\r\n margin: 0 10px;\r\n }\r\n`;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { closeNotification } from \"../../redux/preferenceSlice\";\r\n// Components\r\nimport Backdrop from \"../../components/Elements/Backdrop\";\r\nimport NoNewNotification from \"../../assets/svg/noNewNotification\";\r\nimport NotificationBox from \"../Elements/NotificationBox\";\r\n// Assets\r\nimport CloseIcon from \"../../assets/svg/close\";\r\n\r\nconst SidebarMobile = () => {\r\n const dispatch = useDispatch();\r\n const addrDetail = useSelector((state) => state.user.addrDetail);\r\n const sidebarStatus = useSelector((state) => state.preference.notificationOpen);\r\n return (\r\n <>\r\n {sidebarStatus ? dispatch(closeNotification())}> : null}\r\n \r\n
\r\n dispatch(closeNotification())}>\r\n \r\n \r\n Clear All\r\n
\r\n
\r\n {addrDetail && addrDetail.dashboardState && addrDetail.dashboardState.notifications && addrDetail.dashboardState.notifications.length > 0 ? (\r\n addrDetail.dashboardState.notifications.map((item, index) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n \r\n

\r\n No New Notification\r\n

\r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SidebarMobile;\r\n\r\nconst WrapperDiv = styled.div`\r\n background-color: #fff;\r\n width: 70%;\r\n max-width: 320px;\r\n height: 100vh;\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n z-index: 999;\r\n right: ${(props) => (props.sidebarStatus ? \"0\" : \"-70%\")};\r\n`;\r\nconst Header = styled.div`\r\n width: 100%;\r\n height: 60px;\r\n`;\r\nconst CloseButton = styled.button`\r\n padding: 0 20px;\r\n max-height: 60px;\r\n outline: none;\r\n border: 0px;\r\n background-color: transparent;\r\n`;\r\nconst ClearAllBtn = styled.button`\r\n background-color: transparent;\r\n outline: none;\r\n border: 0px;\r\n padding: 10px 15px;\r\n color: #f9a81a;\r\n :hover {\r\n color: #171727;\r\n }\r\n`;","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { togglePopup } from \"../../redux/userSlice\";\r\n// Components\r\nimport NavbarTop from \"./NavbarTop\";\r\nimport NavbarTopDesktop from \"./NavbarTopDesktop\";\r\nimport SidebarDesktop from \"./SidebarDesktop\";\r\nimport SidebarMobile from \"./SidebarMobile\";\r\nimport Popup from \"../Elements/Popup\";\r\nimport NotificationSidebar from \"../Nav/NotificationSidebar\";\r\n\r\nfunction getWindowDimensions() {\r\n const { innerWidth: width, innerHeight: height } = window;\r\n return {\r\n width,\r\n height,\r\n };\r\n}\r\n\r\nconst Navbar = () => {\r\n const dispatch = useDispatch();\r\n const popup = useSelector((state) => state.user.popup);\r\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\r\n\r\n useEffect(() => {\r\n function handleResize() {\r\n setWindowDimensions(getWindowDimensions());\r\n }\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n return (\r\n <>\r\n {popup ? dispatch(togglePopup(false))} /> : null}\r\n {windowDimensions.width < 860 ? (\r\n <>\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Navbar;\r\n\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst CopyRight = () => {\r\n\r\n const getYear = () => {\r\n let d = new Date();\r\n return d.getFullYear();\r\n }\r\n\r\n return (\r\n \r\n \r\n

© {getYear()} All Rights Reserved

\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CopyRight;\r\n\r\nconst Wrapper = styled.div`\r\n height: 30px;\r\n width: 100%;\r\n position: fixed;\r\n bottom: 0px;\r\n left: 0px;\r\n z-index: 9!important;\r\n background-color: #fff;\r\n \r\n`;\r\nconst InnerWrap = styled.div`\r\n max-width: 1720px;\r\n height: 70px;\r\n margin: 0 auto;\r\n display: flex;\r\n justify-content: flex-end;\r\n padding: 10px 15px 0 0;\r\n`;","import React from 'react'\r\nimport { Component } from 'react'\r\nimport { Route, Redirect } from 'react-router-dom'\r\nimport { ApplicationPaths, QueryParameterNames } from './ApiAuthorizationConstants'\r\nimport authService from './AuthorizeService'\r\n// Components\r\nimport Navbar from \"../Nav/Navbar\";\r\nimport CopyRight from \"../Elements/CopyRight.jsx\";\r\n\r\nclass AuthorizeRoute extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ready: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.authenticationChanged());\r\n this.populateAuthenticationState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n render() {\r\n const { ready, authenticated } = this.state;\r\n var link = document.createElement(\"a\");\r\n link.href = this.props.path;\r\n const returnUrl = `${link.protocol}//${link.host}${link.pathname}${link.search}${link.hash}`;\r\n const redirectUrl = `${ApplicationPaths.Login}?${QueryParameterNames.ReturnUrl}=${encodeURI(returnUrl)}`\r\n if (!ready) {\r\n return
;\r\n } else {\r\n const { component: Component, ...rest } = this.props;\r\n return {\r\n if (authenticated) {\r\n return (\r\n <>\r\n {this.props.hideMenu ? null : }\r\n \r\n \r\n \r\n ); \r\n } else {\r\n return \r\n }\r\n }} />\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ ready: true, authenticated });\r\n }\r\n\r\n async authenticationChanged() {\r\n this.setState({ ready: false, authenticated: false });\r\n await this.populateAuthenticationState();\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nexport default AuthorizeRoute;","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n// Assets\r\nimport CheckmarkIcon from \"../../assets/svg/checkmark\";\r\n\r\nconst Spinner = ({ text, noSpinner, showCheckmark, transparent }) => {\r\n return (\r\n \r\n
\r\n {noSpinner ? null :
}\r\n {showCheckmark ? (\r\n \r\n \r\n \r\n ) : null}\r\n

\r\n {text}\r\n

\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Spinner;\r\n\r\nconst Wrapper = styled.div`\r\n height: 100vh;\r\n width: 100%;\r\n position: fixed;\r\n top: 0px;\r\n left: 0px;\r\n background-color: ${(props) => (props.transparent ? \"rgba(255, 255, 255, 0.8)\" : \"rgba(255, 255, 255, 1)\")};\r\n z-index: 9999;\r\n`;\r\nconst CheckmarkDiv = styled.div`\r\n height: 60px;\r\n width: 60px;\r\n border-radius: 50%;\r\n background-color: #e0f3ef;\r\n`;\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { LoginActions, QueryParameterNames, ApplicationPaths } from './ApiAuthorizationConstants';\r\n// Components\r\nimport Spinner from \"../Elements/Spinner.jsx\";\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\nexport class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LoginActions.Login:\r\n this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n this.setState({ message: error });\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n render() {\r\n const action = this.props.action;\r\n const { message } = this.state;\r\n\r\n if (!!message) {\r\n return ;\r\n } else {\r\n switch (action) {\r\n case LoginActions.Login:\r\n return ();\r\n case LoginActions.LoginCallback:\r\n return ;\r\n case LoginActions.Profile:\r\n case LoginActions.Register:\r\n return (
);\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async login(returnUrl) {\r\n const state = { returnUrl };\r\n const result = await authService.signIn(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${result.status}.`);\r\n }\r\n }\r\n\r\n async processLoginCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeSignIn finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid authentication result status '${result.status}'.`);\r\n }\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\r\n }\r\n\r\n redirectToRegister() {\r\n this.redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?${QueryParameterNames.ReturnUrl}=${encodeURI(ApplicationPaths.Login)}`);\r\n }\r\n\r\n redirectToProfile() {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n redirectToApiAuthorizationPath(apiAuthorizationPath) {\r\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser he gets sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n window.location.replace(redirectUrl);\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { QueryParameterNames, LogoutActions, ApplicationPaths } from './ApiAuthorizationConstants';\r\n// Components\r\nimport Spinner from \"../Elements/Spinner.jsx\";\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\nexport class Logout extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined,\r\n isReady: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n if (!!window.history.state.state.local) {\r\n this.logout(this.getReturnUrl());\r\n } else {\r\n // This prevents regular links to /authentication/logout from triggering a logout\r\n this.setState({ isReady: true, message: \"The logout was not initiated from within the page.\" });\r\n }\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.setState({ isReady: true, message: \"You successfully logged out!\" });\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n\r\n this.populateAuthenticationState();\r\n }\r\n\r\n render() {\r\n const { isReady, message } = this.state;\r\n if (!isReady) {\r\n return
\r\n }\r\n if (!!message) {\r\n return ;\r\n } else {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n return ;\r\n case LogoutActions.LogoutCallback:\r\n return ;\r\n case LogoutActions.LoggedOut:\r\n return ;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async logout(returnUrl) {\r\n const state = { returnUrl };\r\n const isauthenticated = await authService.isAuthenticated();\r\n if (isauthenticated) {\r\n const result = await authService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n } else {\r\n this.setState({ message: \"You successfully logged out!\" });\r\n }\r\n }\r\n\r\n async processLogoutCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n // await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n await this.navigateToReturnUrl(\"/\");\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ isReady: true, authenticated });\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n `${window.location.origin}${ApplicationPaths.LoggedOut}`;\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n return window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Login } from './Login'\r\nimport { Logout } from './Logout'\r\nimport { ApplicationPaths, LoginActions, LogoutActions } from './ApiAuthorizationConstants';\r\n\r\nexport default class ApiAuthorizationRoutes extends Component {\r\n\r\n render () {\r\n return(\r\n \r\n loginAction(LoginActions.Login)} />\r\n loginAction(LoginActions.LoginFailed)} />\r\n loginAction(LoginActions.LoginCallback)} />\r\n loginAction(LoginActions.Profile)} />\r\n loginAction(LoginActions.Register)} />\r\n logoutAction(LogoutActions.Logout)} />\r\n logoutAction(LogoutActions.LogoutCallback)} />\r\n logoutAction(LogoutActions.LoggedOut)} />\r\n );\r\n }\r\n}\r\n\r\nfunction loginAction(name){\r\n return ();\r\n}\r\n\r\nfunction logoutAction(name) {\r\n return ();\r\n}\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst SelectButton = ({ account, id, index, address, action, active }) => {\r\n return (\r\n action(id) : null}>\r\n \r\n \r\n

{index ? index : null}

\r\n
\r\n
\r\n \r\n \r\n
\r\n

\r\n {account ? \"Konto\" : \"Adresse\"} {index ? index : null}:\r\n

\r\n
\r\n \r\n

{address ? address : null}

\r\n
\r\n
\r\n {active ? ausgewählt : zur Auswahl klicken}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SelectButton;\r\n\r\nconst Wrapper = styled.button`\r\n background-color: ${(props) => (props.active ? \"#FFEED1\" : \"#fafafa\")};\r\n min-height: 75px;\r\n width: 100%;\r\n outline: none;\r\n border: 0px;\r\n border-radius: 0.8rem;\r\n margin: 15px 0;\r\n padding: 0 15px;\r\n border-bottom: ${(props) => (props.active ? \"5px solid #F9A81A\" : \"5px solid #eaeeee\")};\r\n :hover {\r\n background-color: #ffeed1;\r\n }\r\n @media (max-width: 859px) {\r\n padding: 0px 5px;\r\n }\r\n @media (max-width: 390px) {\r\n flex-direction: column;\r\n padding: 10px 5px;\r\n }\r\n`;\r\nconst NumberWrapper = styled.div`\r\n width: 8%;\r\n min-width: 70px;\r\n`;\r\nconst InfoWrapper = styled.div`\r\n width: 92%;\r\n`;\r\nconst InfoInnerWrapper = styled.div`\r\n width: 80%;\r\n @media (max-width: 859px) {\r\n width: 100%;\r\n }\r\n @media (max-width: 390px) {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst NumberCircle = styled.div`\r\n width: 50px;\r\n height: 50px;\r\n border-radius: 50%;\r\n @media (max-width: 390px) {\r\n margin-bottom: 15px;\r\n }\r\n`;\r\nconst AddressP = styled.div`\r\n padding-left: 20px;\r\n @media (max-width: 859px) {\r\n width: 100%;\r\n padding-left: 0px;\r\n }\r\n @media (max-width: 390px) {\r\n text-align: center !important;\r\n padding-top: 10px;\r\n }\r\n`;\r\nconst SelectP = styled.p`\r\n @media (max-width: 859px) {\r\n display: none;\r\n }\r\n`;\r\n\r\n\r\n\r\n\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React, { useEffect } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { selectAccount, togglePopup } from \"../redux/userSlice\";\r\n// Components\r\nimport SelectButton from \"../components/Buttons/SelectButton\";\r\nimport FullButton from \"../components/Buttons/FullButton\";\r\n// Assets\r\nimport LogoBigDark from \"../assets/svg/logoBigDark\";\r\nimport LinesBg from \"../assets/svg/lines.svg\"\r\n\r\nconst AccountSelect = () => {\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.user);\r\n\r\n const getYear = () => {\r\n let d = new Date();\r\n return d.getFullYear();\r\n };\r\n\r\n const selectAccHandler = (id) => {\r\n dispatch(selectAccount(id));\r\n }; \r\n\r\n useEffect(() => {\r\n if (user.accounts && user.accounts.items.length === 1) {\r\n dispatch(selectAccount(user.accounts && user.accounts.items[0].id));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [user.accounts]);\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n

\r\n Willkommen zurück\r\n

\r\n

\r\n Bitte wählen Sie Ihr Konto\r\n

\r\n {user && user.accounts && user.accounts.items\r\n ? user.accounts.items.map((item, index) => (\r\n \r\n ))\r\n : null}\r\n
\r\n
\r\n \r\n
\r\n dispatch(togglePopup(true))} />\r\n
\r\n

© {getYear()} All Rights Reserved

\r\n
\r\n
\r\n \r\n \"background\"\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AccountSelect;\r\n\r\nconst PageWrapper = styled.div`\r\n width: 100%;\r\n height: 100vh;\r\n position: fixed;\r\n top: 0; \r\n left: 0;\r\n background-color: #fafafa;\r\n z-index: 99999;\r\n`;\r\nconst InnerWrapper = styled.div`\r\n width: 100%;\r\n max-width: 720px;\r\n height: 100%;\r\n margin: 0 auto;\r\n text-align: center;\r\n padding: 0 30px;\r\n z-index: 99;\r\n position: relative;\r\n background-color: #fff;\r\n`;\r\nconst InfoWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-y: auto;\r\n`;\r\nconst FooterWrapper = styled.div`\r\n width: 100%;\r\n padding-bottom: 30px;\r\n`;\r\nconst BgLines = styled.div`\r\n width: 100%;\r\n position: fixed;\r\n height: 100vh;\r\n top: 0;\r\n left: 0;\r\n z-index: 1;\r\n`;\r\n","export const maskStr = (str) => {\r\n let word = str,\r\n masked = word.replace(/\\w/g, \"*\");\r\n if (word.length > 8) {\r\n masked = word.substring(0, 5) + masked.substring(5, word.length - 4) + word.substring(word.length - 4);\r\n } else {\r\n return masked;\r\n }\r\n return masked;\r\n};\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport Moment from \"react-moment\";\r\nimport { selectAddress, selectAccount } from \"../redux/userSlice\";\r\nimport {maskStr} from \"../helpers/utils\";\r\n// Components\r\nimport SelectButton from \"../components/Buttons/SelectButton\";\r\nimport FullButton from \"../components/Buttons/FullButton\";\r\n// Assets\r\nimport Mapicon from \"../assets/svg/map\";\r\nimport ProfileIcon from \"../assets/svg/person\";\r\nimport CalendarIcon from \"../assets/svg/calendar\";\r\nimport BankIcon from \"../assets/svg/bank\";\r\nimport PeopleIcon from \"../assets/svg/people\";\r\nimport PhoneIcon from \"../assets/svg/phone\";\r\nimport EnvelopeIcon from \"../assets/svg/envelope\";\r\n// Banners\r\nimport BannerTop from \"../assets/img/BannerTop.png\";\r\nimport BannerBottom from \"../assets/img/BannerBottom.png\";\r\n\r\nconst Dashboard = () => {\r\n const dispatch = useDispatch();\r\n const sidebarOpen = useSelector((state) => state.preference.sidebarOpen);\r\n const accDetail = useSelector((state) => state.user.accDetail);\r\n const user = useSelector((state) => state.user);\r\n\r\n const selectAddressHandler = (index) => {\r\n dispatch(selectAddress(accDetail.addresses[index]));\r\n };\r\n\r\n const selectAccHandler = () => {\r\n dispatch(selectAccount(null));\r\n dispatch(selectAddress(null));\r\n }; \r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Willkommen\r\n

\r\n

\r\n zu deiner Energy Hero Übersicht\r\n

\r\n
\r\n {user && user.accounts && user.accounts.items && user.accounts.items.length > 1 ? (\r\n
\r\n selectAccHandler()} />\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n Deine angemeldeten Adressen\r\n

\r\n

Bitte wählen Sie die jeweilige Adresse aus und Sie erhalten weitere Informationen.

\r\n
\r\n
\r\n {accDetail && accDetail.addresses && accDetail.addresses.length > 0\r\n ? accDetail.addresses.map((item, index) => (\r\n \r\n ))\r\n : null}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n {accDetail ? accDetail.name : null}\r\n

\r\n

{accDetail ? accDetail.email : null}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

Geburtsdatum:

\r\n
\r\n \r\n

{accDetail ? {accDetail.birthday} : null}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

IBAN:

\r\n
\r\n \r\n

{accDetail ? maskStr(accDetail.iban) : null}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

Friendscode:

\r\n
\r\n \r\n

{accDetail ? accDetail.friendsCode : null}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Hast du noch Fragen?

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

E-Mail:

\r\n
\r\n \r\n \r\n hallo@energyhero.at\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

Telefon:

\r\n
\r\n \r\n

\r\n +43 (0) 720 2 720 20

Mo-Mi 10:00 � 16:00 Uhr

Do 09:00 � 15:00 Uhr

Fr 09:00 � 12:00 Uhr\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \"Banner\"\r\n \r\n \r\n \"Banner\"\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Dashboard;\r\n\r\nconst BannerBox = styled.div`\r\n background-color: #fff;\r\n border-radius: 0.8rem;\r\n border: 2px solid #eaeeee;\r\n margin-top: 30px;\r\n @media (max-width: 400px) {\r\n margin-top: 10px;\r\n }\r\n img {\r\n \r\n width: 100%;\r\n height: auto;\r\n border-radius: 0.8rem;\r\n background-position: center;\r\n background-size: cover;\r\n }\r\n`;\r\nconst Header = styled.div`\r\n padding-bottom: 10px;\r\n @media (max-width: 859px) {\r\n padding-bottom: 0px;\r\n }\r\n @media (max-width: 630px) {\r\n text-align: center;\r\n flex-direction: column;\r\n }\r\n`;\r\nconst EmptyBox = styled.div`\r\n background-color: #fff;\r\n border-radius: 0.8rem;\r\n border: 2px solid #eaeeee;\r\n padding: 30px 20px;\r\n margin-top: 30px;\r\n @media (max-width: 400px) {\r\n margin-top: 10px;\r\n }\r\n`;\r\nconst EmptyBoxHeader = styled.div`\r\n background-color: #fff;\r\n border-radius: 0.8rem;\r\n border: 2px solid #eaeeee;\r\n margin-top: 30px;\r\n min-height: 320px;\r\n @media (max-width: 400px) {\r\n margin-top: 10px;\r\n }\r\n`;\r\nconst ButtonWrapper = styled.div`\r\n width: 245px; \r\n margin: 0 auto;\r\n margin-top: 20px;\r\n`;\r\nconst HeaderBox = styled.div`\r\n background-color: #fafafa;\r\n width: 100%;\r\n padding: 30px;\r\n border-top-left-radius: 0.8rem;\r\n border-top-right-radius: 0.8rem;\r\n`;\r\nconst AvatarCircle = styled.div`\r\n width: 50px;\r\n height: 50px;\r\n border-radius: 50%;\r\n min-width: 50px;\r\n min-height: 50px;\r\n`;\r\nconst BoxRow = styled.div`\r\n padding: 15px 30px;\r\n @media (max-width: 400px) {\r\n flex-direction: column;\r\n text-align: center!important;\r\n }\r\n`;\r\nconst InfoRowWrapper = styled.div`\r\n @media (max-width: 1580px) {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst InfoBoxWrapper = styled.div`\r\n width: 48.5%;\r\n @media (max-width: 1580px) {\r\n width: 100%;\r\n }\r\n`;\r\nconst BoxRowTitle = styled.div`\r\n width: 40%;\r\n padding-left: 20px;\r\n @media (max-width: 400px) {\r\n width: 100%;\r\n padding: 5px 0px;\r\n }\r\n`;\r\nconst BoxRowSubtitle = styled.div`\r\n width: 50%;\r\n @media (max-width: 400px) {\r\n width: 100%;\r\n padding: 5px 0px;\r\n }\r\n`\r\nconst MailToStyle = styled.a`\r\n color: #171727;\r\n :hover {\r\n color: #f9a81a;\r\n }\r\n`;\r\n;","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {Link} from \"react-router-dom\";\r\n// Assets\r\nimport StromDetail from \"../../assets/svg/stromDetail\";\r\nimport GasDetail from \"../../assets/svg/gasDetail\";\r\n\r\n\r\nconst ProductSelect = ({ title, active, to }) => {\r\n return (\r\n \r\n {title && title === \"Strom\" ? : }\r\n

\r\n {title}\r\n

\r\n \r\n );\r\n};\r\n\r\nexport default ProductSelect;\r\n\r\nconst Wrapper = styled(Link)`\r\n background-color: #fafafa;\r\n height: 65px;\r\n width: 100%;\r\n outline: none;\r\n border: 0px;\r\n margin: 0 10px;\r\n border-radius: 0.5rem;\r\n padding: 0 20px;\r\n color: #171727;\r\n :hover {\r\n background-color: #f58600;\r\n }\r\n`;\r\n\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n// Svg-s\r\nimport CheckmarkIcon from \"../../assets/svg/checkmark\";\r\n\r\nconst Checkbox = ({ action, checked, disabled }) => {\r\n return (\r\n action() : null}>\r\n \r\n {checked ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n );\r\n};\r\n\r\nconst WrapperDiv = styled.div`\r\n min-height: 24px;\r\n`;\r\nconst CheckboxDiv = styled.button`\r\n width: 24px;\r\n height: 24px;\r\n margin-right: 10px;\r\n position: relative;\r\n border-radius: 0.4rem;\r\n &:hover {\r\n border: 2px solid #f9981a !important;\r\n }\r\n`;\r\nconst IconWrapperDiv = styled.div`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n z-index: 10;\r\n width: 20px;\r\n height: 20px;\r\n`;\r\nexport default Checkbox;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n// Assets\r\nimport CheckMarkIcon from \"../../assets/svg/checkmark\";\r\n\r\n\r\nconst ProgressPoint = ({ active, current, unactive, lineLeft, lineRight, lineLeftActive, lineRightActive, title }) => {\r\n return (\r\n \r\n \r\n {active ? : null}\r\n \r\n \r\n \r\n \r\n \r\n

\r\n {title}\r\n

\r\n
\r\n );\r\n};\r\n\r\nexport default ProgressPoint;\r\n\r\nconst Wrapper = styled.div`\r\n width: 100%;\r\n position: relative;\r\n`;\r\nconst CircleWrapper = styled.div`\r\n margin: 0 auto 5px auto;\r\n height: 24px;\r\n width: 24px;\r\n border-radius: 50%;\r\n background-color: ${(props) => (props.active ? \"#f9a81a\" : \"#fff\")};\r\n border: ${(props) => (props.unactive ? \"4px solid #EAEEEE\" : props.current ? \"6px solid #171727\" : null)};\r\n position: relative;\r\n z-index: 9;\r\n`;\r\nconst ProgressLine = styled.div`\r\n width: 100%;\r\n height: 4px;\r\n position: absolute;\r\n top: 10px;\r\n`;\r\nconst ProgressLineInner1 = styled.div`\r\n width: 50%;\r\n height: 4px;\r\n background-color: ${(props) => (props.lineLeftActive ? \"#F9A81A\" : props.lineLeft ? \"#EAEEEE\" : null)};\r\n`;\r\nconst ProgressLineInner2 = styled.div`\r\n width: 50%;\r\n height: 4px;\r\n background-color: ${(props) => (props.lineRightActive ? \"#F9A81A\" : props.lineRight ? \"#EAEEEE\" : null)};\r\n`;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst InputLabel = ({ placeholder, value, setValue, name, disabled }) => {\r\n return (\r\n \r\n {value && value.length > 0 ? {placeholder} : null}\r\n setValue(e.target.value)}\r\n />\r\n \r\n );\r\n};\r\n\r\nconst InputDiv = styled.div`\r\n width: 100%;\r\n position: relative;\r\n min-height: 73px;\r\n margin-top: 10px;\r\n`;\r\nconst InputInput = styled.input`\r\n box-sizing: border-box;\r\n width: 100%;\r\n padding: 0 20px;\r\n min-height: 56px;\r\n border: 2px solid #eaeeee;\r\n color: #171727;\r\n background-color: #fff;\r\n ::placeholder,\r\n ::-webkit-input-placeholder {\r\n color: #d3d8d8;\r\n }\r\n :-ms-input-placeholder {\r\n color: #d3d8d8;\r\n }\r\n outline: none;\r\n &:focus {\r\n border: 2px solid #f9a81a;\r\n }\r\n`;\r\nconst LabelLabel = styled.label`\r\n position: absolute;\r\n top: -10px;\r\n left: 10px;\r\n z-index: 10;\r\n background-color: #fff;\r\n padding: 0 10px;\r\n color: #f9a81a;\r\n`;\r\n\r\nexport default InputLabel;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n// Components\r\nimport Backdrop from \"../Elements/Backdrop\";\r\nimport FullButton from \"../Buttons/FullButton\";\r\n// Assets\r\nimport ErrorIcon from \"../../assets/svg/Error\";\r\n\r\nconst ModalSuccess = ({ action, error }) => {\r\n return (\r\n \r\n \r\n \r\n {error ? (\r\n <>\r\n
\r\n \r\n
\r\n

\r\n Error!\r\n

\r\n \r\n ) : null}\r\n {error ? (\r\n

Ihre IBAN-Nummer ist ungültig.

\r\n ) : (\r\n

Deine Änderungen wurden an uns übermittelt und werden geprüft.

\r\n )}\r\n
\r\n
\r\n action() : null} />\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ModalSuccess;\r\n\r\nconst Wrapper = styled.div`\r\n height: 100vh;\r\n width: 100%;\r\n position: fixed;\r\n z-index: 99999;\r\n top: 0px;\r\n left: 0px;\r\n`;\r\nconst PopupDiv = styled.div`\r\n background-color: #fff;\r\n z-index: 9999;\r\n padding: 50px 80px 30px 80px;\r\n border-radius: 10px;\r\n min-width: 320px;\r\n @media (max-width: 460px) {\r\n margin: 0 10px;\r\n }\r\n`;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport styled, { keyframes } from \"styled-components\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { postSaveChanges, closeSuccessModal } from \"../redux/userSlice\";\r\nimport { maskStr } from \"../helpers/utils\";\r\n// Components\r\nimport ProductSelect from \"../components/Buttons/ProductSelect\";\r\nimport CheckBox from \"../components/Inputs/Checkbox\";\r\nimport ProgressPoint from \"../components/Elements/ProgressPoint\";\r\nimport FullButton from \"../components/Buttons/FullButton\";\r\nimport InputLabel from \"../components/Inputs/InputLabel\";\r\nimport ModalSuccess from \"../components/Elements/ModalSuccess\";\r\n// Assets\r\nimport EmptyState from \"../assets/svg/EmptyState\";\r\nimport DocumentIcon from \"../assets/svg/document\";\r\nimport BuildingIcon from \"../assets/svg/building\";\r\nimport TagIcon from \"../assets/svg/tag\";\r\nimport SavingsIcon from \"../assets/svg/savings\";\r\nimport InfoIcon from \"../assets/svg/info\";\r\nimport ArrowUpFull from \"../assets/svg/arrows/arrowUpFull\";\r\nimport ArrowsIntersect from \"../assets/svg/arowsIntersect\";\r\nimport ElectricSymbol from \"../assets/svg/electricSymbol\";\r\nimport MeterIcon from \"../assets/svg/meter\";\r\n\r\nconst Strom = () => {\r\n const dispatch = useDispatch()\r\n const sidebarOpen = useSelector((state) => state.preference.sidebarOpen);\r\n const user = useSelector((state) => state.user);\r\n const [showDropdownInfo, setShowDropdownInfo] = useState(false);\r\n const [showStatusDropdownInfo, setShowStatusDropdownInfo] = useState(false);\r\n const addressDetail = useSelector((state) => state.user.addrDetail);\r\n const [energyData, setEnergyData] = useState(null);\r\n // PREFERENCES\r\n const [nkDiscount, setNkDiscount] = useState(false);\r\n const [greenElectricity, setGreenElectricity] = useState(false);\r\n const [electricityAustria, setElectricityAustria] = useState(false);\r\n const [totalBill, setTotalBill] = useState(false);\r\n // CONSUMPTION\r\n const [consumptionValue, setConsumptionValue] = useState(\"\");\r\n const [billingAddress, setBillingAddress] = useState(\"\");\r\n const [iban, setIban] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (addressDetail && addressDetail.energyProviderDetails && addressDetail.energyProviderDetails !== \"undefined\") {\r\n const energyMatch = addressDetail.energyProviderDetails.find((obj) =>\r\n obj.energyType && obj.energyType !== \"undefined\" ? obj.energyType.toLowerCase() === \"electricity\" : null\r\n );\r\n setEnergyData(energyMatch);\r\n }\r\n }, [addressDetail]);\r\n\r\n useEffect(() => {\r\n setNkDiscount(energyData && energyData.tariffDiscount ? energyData.tariffDiscount : false);\r\n setGreenElectricity(energyData && energyData.ecoElectricity ? energyData.ecoElectricity : false);\r\n setElectricityAustria(energyData && energyData.electricityFromAUS ? energyData.electricityFromAUS : false);\r\n setTotalBill(energyData && energyData.totalInvoice ? energyData.totalInvoice : false);\r\n setConsumptionValue(energyData && energyData.annualConsumption ? energyData.annualConsumption : \"\");\r\n }, [energyData]);\r\n\r\n const saveHandler = () => {\r\n let userMadeChanges = false;\r\n let data = {\r\n AccountId: user.selectedAccount,\r\n AddressId: user.selectedAddress.id,\r\n AddressName: user.selectedAddress.name,\r\n ContractId: energyData.contractId,\r\n EnergyProvider: energyData.energyProvider,\r\n EnergyProviderId: energyData.energyProviderId,\r\n EnergyType: energyData.energyType,\r\n ExpectedSavings: energyData.expectedSavings,\r\n MeterNumber: energyData.meterNumber,\r\n ProductId: energyData.productId,\r\n ProgressBarStatus: energyData.progressBarStatus,\r\n ShippingAddress: energyData.shippingAddress,\r\n Status: energyData.status,\r\n Tariff: energyData.tariff,\r\n };\r\n if (nkDiscount !== energyData.tariffDiscount) {\r\n data.NkDiscountNew = nkDiscount;\r\n data.NkDiscountOld = energyData.tariffDiscount;\r\n userMadeChanges = true;\r\n } else {\r\n data.NkDiscountNew = energyData.tariffDiscount;\r\n data.NkDiscountOld = energyData.tariffDiscount;\r\n }\r\n if (greenElectricity !== energyData.ecoElectricity) {\r\n data.GreenElectricityNew = greenElectricity;\r\n data.GreenElectricityOld = energyData.ecoElectricity;\r\n userMadeChanges = true;\r\n } else {\r\n data.GreenElectricityNew = energyData.ecoElectricity;\r\n data.GreenElectricityOld = energyData.ecoElectricity;\r\n }\r\n if (electricityAustria !== energyData.electricityFromAUS) {\r\n data.ElectricityFromAustriaNew = electricityAustria;\r\n data.ElectricityFromAustriaOld = energyData.electricityFromAUS;\r\n userMadeChanges = true;\r\n } else {\r\n data.ElectricityFromAustriaNew = energyData.electricityFromAUS;\r\n data.ElectricityFromAustriaOld = energyData.electricityFromAUS;\r\n }\r\n if (totalBill !== energyData.totalInvoice) {\r\n data.TotalBillNew = totalBill;\r\n data.TotalBillOld = energyData.totalInvoice;\r\n userMadeChanges = true;\r\n } else {\r\n data.TotalBillNew = energyData.totalInvoice;\r\n data.TotalBillOld = energyData.totalInvoice;\r\n }\r\n if (consumptionValue !== energyData.annualConsumption && consumptionValue.length > 0) {\r\n data.ConsumptionNew = parseInt(consumptionValue);\r\n data.ConsumptionOld = energyData.annualConsumption;\r\n userMadeChanges = true;\r\n } else {\r\n data.ConsumptionNew = energyData.annualConsumption;\r\n data.ConsumptionOld = energyData.annualConsumption;\r\n }\r\n if (billingAddress !== addressDetail.billingAddress && billingAddress.replace(/ /g, \"\") !== \"\") {\r\n data.BillingAddressNew = billingAddress;\r\n data.BillingAddressOld = addressDetail.billingAddress;\r\n userMadeChanges = true;\r\n } else {\r\n data.BillingAddressNew = addressDetail.billingAddress;\r\n data.BillingAddressOld = addressDetail.billingAddress;\r\n }\r\n if (iban !== addressDetail.iban && iban.replace(/ /g, \"\") !== \"\") {\r\n data.IbanNew = iban;\r\n data.IbanOld = addressDetail.iban;\r\n userMadeChanges = true;\r\n }else {\r\n data.IbanNew = addressDetail.iban;\r\n data.IbanOld = addressDetail.iban;\r\n }\r\n if (userMadeChanges) {\r\n dispatch(postSaveChanges(data))\r\n }\r\n }\r\n return (\r\n
\r\n {user?.savedChanges && user?.addrDetail?.dashboardState?.invalidIban === false ? dispatch(closeSuccessModal())} /> : null}\r\n {user?.savedChanges && user?.addrDetail?.dashboardState?.invalidIban ? dispatch(closeSuccessModal())} /> : null}\r\n
\r\n
\r\n
\r\n \r\n

\r\n Lieferadresse:\r\n

\r\n

\r\n {user && user.accDetail && user.accDetail.name ? user.accDetail.name : null} -{\" \"}\r\n {user && user.selectedAddress && user.selectedAddress.name ? user.selectedAddress.name : null}\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {energyData ? (\r\n <>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Derzeitiger Vertrag

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

Anbieter:

\r\n

{energyData.energyProvider ? energyData.energyProvider : \"No Data\"}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

Tarif:

\r\n

{energyData.tariff ? energyData.tariff : \"No Data\"}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

Voraussichtliche Ersparnis:

\r\n \r\n

{energyData.expectedSavings ? energyData.expectedSavings + \" €\" : \"No Data\"}

\r\n

\r\n (exkl. Servicegebühr)\r\n

\r\n setShowDropdownInfo(true)} onMouseLeave={() => setShowDropdownInfo(false)}>\r\n \r\n {showDropdownInfo ? (\r\n \r\n \r\n \r\n \r\n \r\n Berechnung auf Basis aktueller Tarifinformationen. Energy Hero übernimmt keine Gewähr für Tarifanpassungen seitens der Anbieter im Zeitraum zwischen Vorabberechnung und dem tatsächlichen Anbieterwechsel. Die genannte Ersparnis bezieht sich auf deinen letzten Energy Hero Anbieterwechsel.\r\n \r\n \r\n ) : null}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Deine Präferenzen

\r\n
\r\n
\r\n
\r\n \r\n
\r\n setNkDiscount(!nkDiscount)}\r\n />\r\n
\r\n \r\n

Tarife ohne Neukundenrabatte

\r\n
\r\n
\r\n \r\n
\r\n setGreenElectricity(!greenElectricity)}\r\n />\r\n
\r\n \r\n

Ökostrom

\r\n
\r\n
\r\n \r\n
\r\n setElectricityAustria(!electricityAustria)}\r\n />\r\n
\r\n \r\n

Strom aus AT

\r\n
\r\n
\r\n \r\n
\r\n setTotalBill(!totalBill)}\r\n />\r\n
\r\n \r\n

Gesamtrechnung

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n

Aktueller Wechselstatus

\r\n
\r\n

\r\n {energyData.extendedStatus && energyData.extendedStatus.description ? energyData.extendedStatus.description : null}\r\n

\r\n setShowStatusDropdownInfo(true)}\r\n onMouseLeave={() => setShowStatusDropdownInfo(false)}\r\n >\r\n \r\n {showStatusDropdownInfo ? (\r\n \r\n \r\n \r\n \r\n \r\n {energyData.extendedStatus && energyData.extendedStatus.info ? energyData.extendedStatus.info : null}\r\n \r\n \r\n ) : null}\r\n \r\n
\r\n
\r\n
\r\n \r\n {energyData.progressBarStatuses\r\n ? energyData.progressBarStatuses.map((item, index) => (\r\n \r\n ))\r\n : null}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n

\r\n Verbrauch ändern\r\n

\r\n

\r\n Bitte gib uns Bescheid, wenn sich dein Verbrauch ändert, damit wir immer den besten Tarif für deine Bedürfnisse finden können. Bitte beachte, dass deine Verbrauchsdaten erst beim nächsten Wechsel berücksichtigt werden können.\r\n

\r\n
\r\n
\r\n \r\n \r\n setConsumptionValue(e.target.value)}\r\n value={consumptionValue}\r\n placeholder={energyData.annualConsumption ? energyData.annualConsumption : \"No Data\"}\r\n style={\r\n addressDetail && addressDetail.dashboardState && addressDetail.dashboardState.isElectricityConsumptionDisabled\r\n ? { cursor: \"not-allowed\" }\r\n : null\r\n }\r\n />\r\n \r\n

kWh

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n Zählpunktbezeichnung:\r\n

\r\n

{energyData.meterNumber ? energyData.meterNumber : \"No Data\"}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n Zahlungsinformationen\r\n

\r\n

\r\n Bitte beachte, dass du deine Zahlungsinformationen auch deinem Energieanbieter und Netzbetreiber bekannt geben musst.{\" \"}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Rechnungsadresse:

\r\n

{addressDetail && addressDetail.billingAddress ? addressDetail.billingAddress : \"No Data\"}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

IBAN

\r\n
\r\n
\r\n

IBAN:

\r\n

{addressDetail && addressDetail.iban ? maskStr(addressDetail.iban) : \"No Data\"}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n ) : (\r\n
\r\n \r\n

Kein Strom-Wechsel gefunden

\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Strom;\r\n\r\nconst dropdownOpenAnimation = keyframes`\r\n 0% { top: 0px; }\r\n 100% { top: 40px; }\r\n`;\r\nconst Header = styled.div`\r\n padding-bottom: 10px;\r\n @media (max-width: 859px) {\r\n padding-bottom: 0px;\r\n }\r\n @media (max-width: 660px) {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst HeaderAddressWrapper = styled.div`\r\n @media (max-width: 660px) {\r\n padding-bottom: 20px;\r\n }\r\n`;\r\nconst EmptyBox = styled.div`\r\n background-color: #fff;\r\n border-radius: 0.8rem;\r\n border: 2px solid #eaeeee;\r\n padding: 30px 20px;\r\n margin-top: 30px;\r\n @media (max-width: 400px) {\r\n margin-top: 10px;\r\n }\r\n`;\r\nconst EmptyBoxHeader = styled.div`\r\n background-color: #fff;\r\n border-radius: 0.8rem;\r\n border: 2px solid #eaeeee;\r\n margin-top: 30px;\r\n padding-bottom: 10px;\r\n @media (max-width: 400px) {\r\n margin-top: 10px;\r\n }\r\n`;\r\nconst HeaderBox = styled.div`\r\n background-color: #fafafa;\r\n width: 100%;\r\n padding: 20px 30px;\r\n border-top-left-radius: 0.8rem;\r\n border-top-right-radius: 0.8rem;\r\n`;\r\nconst AvatarCircle = styled.div`\r\n width: 50px;\r\n height: 50px;\r\n border-radius: 50%;\r\n min-width: 50px;\r\n min-height: 50px;\r\n`;\r\nconst BoxRow = styled.div`\r\n padding: 10px 30px;\r\n @media (max-width: 400px) {\r\n flex-direction: column;\r\n text-align: center !important;\r\n }\r\n`;\r\nconst BoxRowTitle = styled.div`\r\n width: 90%;\r\n padding-left: 20px;\r\n @media (max-width: 660px) {\r\n padding: 10px 0 0 0px;\r\n }\r\n`;\r\nconst ExpectedSavings = styled.div`\r\n margin: 10px 0;\r\n padding: 15px 60px 15px 30px;\r\n border-radius: 0.7rem;\r\n float: left;\r\n position: relative;\r\n @media (max-width: 400px) {\r\n float: none;\r\n }\r\n`;\r\nconst InfoBtn = styled.button`\r\n background-color: transparent;\r\n border: 0px;\r\n outline: none;\r\n padding: 10px;\r\n position: absolute;\r\n top: 20px;\r\n right: 10px;\r\n`;\r\nconst InfoBtn2 = styled.button`\r\n background-color: transparent;\r\n border: 0px;\r\n outline: none;\r\n padding: 10px;\r\n right: 10px;\r\n margin-top: 3px;\r\n`;\r\nconst DropdownBox = styled.div`\r\n background-color: #fff;\r\n position: absolute;\r\n min-width: 230px;\r\n right: 0;\r\n padding: 15px;\r\n border-radius: 0.6rem;\r\n border: 2px solid #eaeeee;\r\n -webkit-box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n -moz-box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n z-index: 9999;\r\n animation-name: ${dropdownOpenAnimation};\r\n animation-duration: 0.3s;\r\n -webkit-animation: ${dropdownOpenAnimation} 0.3s forwards;\r\n animation: ${dropdownOpenAnimation} 0.3s forwards;\r\n`;\r\nconst ArrowUpWrapper = styled.div`\r\n position: absolute;\r\n top: -10px;\r\n right: 0px;\r\n`;\r\nconst DropdownP = styled.p`\r\n line-height: 1rem;\r\n color: #5C5C67;\r\n`;\r\nconst ProgressWrapper = styled.div`\r\n width: 70%;\r\n @media (max-width: 660px) {\r\n width: 100%;\r\n }\r\n`;\r\nconst ProgressContainer = styled.div`\r\n @media (max-width: 660px) {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst ProgressIcon = styled.div`\r\n width: 100%;\r\n margin-bottom: 20px;\r\n margin-left: 10px;\r\n`;\r\nconst BigInputWrapper = styled.div`\r\n max-width: 50%;\r\n @media (max-width: 990px) {\r\n max-width: 100%;\r\n }\r\n`;\r\nconst MeterWrapper = styled.div`\r\n margin-top: 20px;\r\n @media (max-width: 660px) {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst AddressHeaderWrapper = styled.div`\r\n margin-bottom: 20px;\r\n @media (max-width: 660px) {\r\n margin-bottom: 20px;\r\n }\r\n`;\r\nconst AddressWrapper = styled.div`\r\n margin-top: 5px;\r\n @media (max-width: 660px) {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst WrapperDiv = styled.div`\r\n width: 100%;\r\n position: relative;\r\n`;\r\nconst InputStyle = styled.input`\r\n width: 100%;\r\n height: 52px;\r\n background-color: #fff;\r\n border: ${(props) => (props.error ? \"2px solid #FF1500\" : \"2px solid #eaeeee\")};\r\n outline: none;\r\n padding: 0 130px 0 20px;\r\n font-size: 1.1rem;\r\n border-radius: 0.7rem;\r\n position: relative;\r\n`;\r\nconst UnitStyle = styled.div`\r\n width: 120px;\r\n height: calc(100% - 4px);\r\n padding: 0 30px;\r\n margin: 2px;\r\n background-color: #ced4da;\r\n border-radius: 0.5rem;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n`;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport styled, { keyframes } from \"styled-components\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { postSaveChanges, closeSuccessModal } from \"../redux/userSlice\";\r\nimport { maskStr } from \"../helpers/utils\";\r\n// Components\r\nimport ProductSelect from \"../components/Buttons/ProductSelect\";\r\nimport CheckBox from \"../components/Inputs/Checkbox\";\r\nimport ProgressPoint from \"../components/Elements/ProgressPoint\";\r\nimport FullButton from \"../components/Buttons/FullButton\";\r\nimport InputLabel from \"../components/Inputs/InputLabel\";\r\nimport ModalSuccess from \"../components/Elements/ModalSuccess\";\r\n// Assets\r\nimport EmptyState from \"../assets/svg/EmptyState\";\r\nimport DocumentIcon from \"../assets/svg/document\";\r\nimport BuildingIcon from \"../assets/svg/building\";\r\nimport TagIcon from \"../assets/svg/tag\";\r\nimport SavingsIcon from \"../assets/svg/savings\";\r\nimport InfoIcon from \"../assets/svg/info\";\r\nimport ArrowUpFull from \"../assets/svg/arrows/arrowUpFull\";\r\nimport ArrowsIntersect from \"../assets/svg/arowsIntersect\";\r\nimport ElectricSymbol from \"../assets/svg/electricSymbol\";\r\nimport MeterIcon from \"../assets/svg/meter\";\r\n\r\nconst Strom = () => {\r\n const dispatch = useDispatch();\r\n const sidebarOpen = useSelector((state) => state.preference.sidebarOpen);\r\n const user = useSelector((state) => state.user);\r\n const [showDropdownInfo, setShowDropdownInfo] = useState(false);\r\n const [showStatusDropdownInfo, setShowStatusDropdownInfo] = useState(false);\r\n const addressDetail = useSelector((state) => state.user.addrDetail);\r\n const [energyData, setEnergyData] = useState(null);\r\n // PREFERENCES\r\n const [nkDiscount, setNkDiscount] = useState(false);\r\n const [greenElectricity, setGreenElectricity] = useState(false);\r\n const [electricityAustria, setElectricityAustria] = useState(false);\r\n const [totalBill, setTotalBill] = useState(false);\r\n // CONSUMPTION\r\n const [consumptionValue, setConsumptionValue] = useState(\"\");\r\n const [billingAddress, setBillingAddress] = useState(\"\");\r\n const [iban, setIban] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (addressDetail && addressDetail.energyProviderDetails && addressDetail.energyProviderDetails !== \"undefined\") {\r\n const energyMatch = addressDetail.energyProviderDetails.find((obj) =>\r\n obj.energyType && obj.energyType !== \"undefined\" ? obj.energyType.toLowerCase() === \"gas\" : null\r\n );\r\n setEnergyData(energyMatch);\r\n }\r\n }, [addressDetail]);\r\n\r\n useEffect(() => {\r\n setNkDiscount(energyData && energyData.tariffDiscount ? energyData.tariffDiscount : false);\r\n setTotalBill(energyData && energyData.totalInvoice ? energyData.totalInvoice : false);\r\n setConsumptionValue(energyData && energyData.annualConsumption ? energyData.annualConsumption : \"\");\r\n }, [energyData]);\r\n\r\n const saveHandler = () => {\r\n let userMadeChanges = false;\r\n let data = {\r\n AccountId: user.selectedAccount,\r\n AddressId: user.selectedAddress.id,\r\n AddressName: user.selectedAddress.name,\r\n ContractId: energyData.contractId,\r\n EnergyProvider: energyData.energyProvider,\r\n EnergyProviderId: energyData.energyProviderId,\r\n EnergyType: energyData.energyType,\r\n ExpectedSavings: energyData.expectedSavings,\r\n MeterNumber: energyData.meterNumber,\r\n ProductId: energyData.productId,\r\n ProgressBarStatus: energyData.progressBarStatus,\r\n ShippingAddress: energyData.shippingAddress,\r\n Status: energyData.status,\r\n Tariff: energyData.tariff,\r\n };\r\n if (nkDiscount !== energyData.tariffDiscount) {\r\n data.NkDiscountNew = nkDiscount;\r\n data.NkDiscountOld = energyData.tariffDiscount;\r\n userMadeChanges = true;\r\n } else {\r\n data.NkDiscountNew = energyData.tariffDiscount;\r\n data.NkDiscountOld = energyData.tariffDiscount;\r\n }\r\n if (greenElectricity !== energyData.ecoElectricity) {\r\n data.GreenElectricityNew = energyData.ecoElectricity;\r\n data.GreenElectricityOld = energyData.ecoElectricity;\r\n }\r\n if (electricityAustria !== energyData.electricityFromAUS) {\r\n data.ElectricityFromAustriaNew = energyData.electricityFromAUS;\r\n data.ElectricityFromAustriaOld = energyData.electricityFromAUS;\r\n }\r\n if (totalBill !== energyData.totalInvoice) {\r\n data.TotalBillNew = totalBill;\r\n data.TotalBillOld = energyData.totalInvoice;\r\n userMadeChanges = true;\r\n } else {\r\n data.TotalBillNew = energyData.totalInvoice;\r\n data.TotalBillOld = energyData.totalInvoice;\r\n }\r\n if (consumptionValue !== energyData.annualConsumption && consumptionValue.length > 0) {\r\n data.ConsumptionNew = parseInt(consumptionValue);\r\n data.ConsumptionOld = energyData.annualConsumption;\r\n userMadeChanges = true;\r\n } else {\r\n data.ConsumptionNew = energyData.annualConsumption;\r\n data.ConsumptionOld = energyData.annualConsumption;\r\n }\r\n if (billingAddress !== addressDetail.billingAddress && billingAddress.replace(/ /g, \"\") !== \"\") {\r\n data.BillingAddressNew = billingAddress;\r\n data.BillingAddressOld = addressDetail.billingAddress;\r\n userMadeChanges = true;\r\n } else {\r\n data.BillingAddressNew = addressDetail.billingAddress;\r\n data.BillingAddressOld = addressDetail.billingAddress;\r\n }\r\n if (iban !== addressDetail.iban && iban.replace(/ /g, \"\") !== \"\") {\r\n data.IbanNew = iban;\r\n data.IbanOld = addressDetail.iban;\r\n userMadeChanges = true;\r\n } else {\r\n data.IbanNew = addressDetail.iban;\r\n data.IbanOld = addressDetail.iban;\r\n }\r\n if (userMadeChanges) {\r\n dispatch(postSaveChanges(data));\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {user?.savedChanges && user?.addrDetail?.dashboardState?.invalidIban === false ? dispatch(closeSuccessModal())} /> : null}\r\n {user?.savedChanges && user?.addrDetail?.dashboardState?.invalidIban ? dispatch(closeSuccessModal())} /> : null}\r\n
\r\n
\r\n
\r\n \r\n

\r\n Lieferadresse:\r\n

\r\n

\r\n {user && user.accDetail && user.accDetail.name ? user.accDetail.name : null} -{\" \"}\r\n {user && user.selectedAddress && user.selectedAddress.name ? user.selectedAddress.name : null}\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {energyData ? (\r\n <>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Derzeitiger Vertrag

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

Anbieter:

\r\n

{energyData.energyProvider ? energyData.energyProvider : \"No Data\"}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

Tarif:

\r\n

{energyData.tariff ? energyData.tariff : \"No Data\"}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

Voraussichtliche Ersparnis:

\r\n \r\n

{energyData.expectedSavings ? energyData.expectedSavings + \" €\" : \"No Data\"}

\r\n

\r\n (exkl. Servicegebühr)\r\n

\r\n setShowDropdownInfo(true)} onMouseLeave={() => setShowDropdownInfo(false)}>\r\n \r\n {showDropdownInfo ? (\r\n \r\n \r\n \r\n \r\n \r\n Berechnung auf Basis aktueller Tarifinformationen. Energy Hero übernimmt keine Gewähr für Tarifanpassungen seitens der Anbieter im Zeitraum zwischen Vorabberechnung und dem tatsächlichen Anbieterwechsel. Die genannte Ersparnis bezieht sich auf deinen letzten Energy Hero Anbieterwechsel.\r\n \r\n \r\n ) : null}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Deine Präferenzen

\r\n
\r\n
\r\n
\r\n \r\n
\r\n setNkDiscount(!nkDiscount)}\r\n />\r\n
\r\n \r\n

Tarife ohne Neukundenrabatte

\r\n
\r\n
\r\n \r\n
\r\n setTotalBill(!totalBill)}\r\n />\r\n
\r\n \r\n

Gesamtrechnung

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n

Aktueller Wechselstatus

\r\n
\r\n

\r\n {energyData.extendedStatus && energyData.extendedStatus.description ? energyData.extendedStatus.description : null}\r\n

\r\n setShowStatusDropdownInfo(true)}\r\n onMouseLeave={() => setShowStatusDropdownInfo(false)}\r\n >\r\n \r\n {showStatusDropdownInfo ? (\r\n \r\n \r\n \r\n \r\n \r\n {energyData.extendedStatus && energyData.extendedStatus.info ? energyData.extendedStatus.info : null}\r\n \r\n \r\n ) : null}\r\n \r\n
\r\n
\r\n
\r\n \r\n {energyData.progressBarStatuses\r\n ? energyData.progressBarStatuses.map((item, index) => (\r\n \r\n ))\r\n : null}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n

\r\n Verbrauch ändern\r\n

\r\n

\r\n Bitte gib uns Bescheid, wenn sich dein Verbrauch ändert, damit wir immer den besten Tarif für deine Bedürfnisse finden können. Bitte beachte, dass deine Verbrauchsdaten erst beim nächsten Wechsel berücksichtigt werden können.\r\n

\r\n
\r\n
\r\n \r\n \r\n setConsumptionValue(e.target.value)}\r\n value={consumptionValue}\r\n placeholder={energyData.annualConsumption ? energyData.annualConsumption : \"No Data\"}\r\n style={\r\n addressDetail && addressDetail.dashboardState && addressDetail.dashboardState.isGasConsumptionDisabled\r\n ? { cursor: \"not-allowed\" }\r\n : null\r\n }\r\n />\r\n \r\n

kWh

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n Zählpunktbezeichnung:\r\n

\r\n

{energyData.meterNumber ? energyData.meterNumber : \"No Data\"}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n Zahlungsinformationen\r\n

\r\n

\r\n Bitte beachte, dass du deine Zahlungsinformationen auch deinem Energieanbieter und Netzbetreiber bekannt geben musst.{\" \"}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Rechnungsadresse:

\r\n

{addressDetail && addressDetail.billingAddress ? addressDetail.billingAddress : \"No Data\"}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

IBAN

\r\n
\r\n
\r\n

IBAN:

\r\n

{addressDetail && addressDetail.iban ? maskStr(addressDetail.iban) : \"No Data\"}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n ) : (\r\n
\r\n \r\n

Kein Gas-Wechsel gefunden

\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Strom;\r\n\r\nconst dropdownOpenAnimation = keyframes`\r\n 0% { top: 0px; }\r\n 100% { top: 40px; }\r\n`;\r\nconst Header = styled.div`\r\n padding-bottom: 10px;\r\n @media (max-width: 859px) {\r\n padding-bottom: 0px;\r\n }\r\n @media (max-width: 660px) {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst HeaderAddressWrapper = styled.div`\r\n @media (max-width: 660px) {\r\n padding-bottom: 20px;\r\n }\r\n`;\r\nconst EmptyBox = styled.div`\r\n background-color: #fff;\r\n border-radius: 0.8rem;\r\n border: 2px solid #eaeeee;\r\n padding: 30px 20px;\r\n margin-top: 30px;\r\n @media (max-width: 400px) {\r\n margin-top: 10px;\r\n }\r\n`;\r\nconst EmptyBoxHeader = styled.div`\r\n background-color: #fff;\r\n border-radius: 0.8rem;\r\n border: 2px solid #eaeeee;\r\n margin-top: 30px;\r\n padding-bottom: 10px;\r\n @media (max-width: 400px) {\r\n margin-top: 10px;\r\n }\r\n`;\r\nconst HeaderBox = styled.div`\r\n background-color: #fafafa;\r\n width: 100%;\r\n padding: 20px 30px;\r\n border-top-left-radius: 0.8rem;\r\n border-top-right-radius: 0.8rem;\r\n`;\r\nconst AvatarCircle = styled.div`\r\n width: 50px;\r\n height: 50px;\r\n border-radius: 50%;\r\n min-width: 50px;\r\n min-height: 50px;\r\n`;\r\nconst BoxRow = styled.div`\r\n padding: 10px 30px;\r\n @media (max-width: 400px) {\r\n flex-direction: column;\r\n text-align: center !important;\r\n }\r\n`;\r\nconst BoxRowTitle = styled.div`\r\n width: 90%;\r\n padding-left: 20px;\r\n @media (max-width: 660px) {\r\n padding: 10px 0 0 0px;\r\n }\r\n`;\r\nconst ExpectedSavings = styled.div`\r\n margin: 10px 0;\r\n padding: 15px 60px 15px 30px;\r\n border-radius: 0.7rem;\r\n float: left;\r\n position: relative;\r\n @media (max-width: 400px) {\r\n float: none;\r\n }\r\n`;\r\nconst InfoBtn = styled.button`\r\n background-color: transparent;\r\n border: 0px;\r\n outline: none;\r\n padding: 10px;\r\n position: absolute;\r\n top: 20px;\r\n right: 10px;\r\n`;\r\nconst InfoBtn2 = styled.button`\r\n background-color: transparent;\r\n border: 0px;\r\n outline: none;\r\n padding: 10px;\r\n right: 10px;\r\n margin-top: 3px;\r\n`;\r\nconst DropdownBox = styled.div`\r\n background-color: #fff;\r\n position: absolute;\r\n min-width: 230px;\r\n right: 0;\r\n padding: 15px;\r\n border-radius: 0.6rem;\r\n border: 2px solid #eaeeee;\r\n -webkit-box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n -moz-box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n box-shadow: 0px 3px 12px 0px rgba(139, 139, 131, 0.16);\r\n z-index: 9999;\r\n animation-name: ${dropdownOpenAnimation};\r\n animation-duration: 0.3s;\r\n -webkit-animation: ${dropdownOpenAnimation} 0.3s forwards;\r\n animation: ${dropdownOpenAnimation} 0.3s forwards;\r\n`;\r\nconst ArrowUpWrapper = styled.div`\r\n position: absolute;\r\n top: -10px;\r\n right: 0px;\r\n`;\r\nconst DropdownP = styled.p`\r\n line-height: 1rem;\r\n color: #5c5c67;\r\n`;\r\nconst ProgressWrapper = styled.div`\r\n width: 70%;\r\n @media (max-width: 660px) {\r\n width: 100%;\r\n }\r\n`;\r\nconst ProgressContainer = styled.div`\r\n @media (max-width: 660px) {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst ProgressIcon = styled.div`\r\n width: 100%;\r\n margin-bottom: 20px;\r\n margin-left: 10px;\r\n`;\r\nconst BigInputWrapper = styled.div`\r\n max-width: 50%;\r\n @media (max-width: 990px) {\r\n max-width: 100%;\r\n }\r\n`;\r\nconst MeterWrapper = styled.div`\r\n margin-top: 20px;\r\n @media (max-width: 660px) {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst AddressHeaderWrapper = styled.div`\r\n margin-bottom: 20px;\r\n @media (max-width: 660px) {\r\n margin-bottom: 20px;\r\n }\r\n`;\r\nconst AddressWrapper = styled.div`\r\n margin-top: 5px;\r\n @media (max-width: 660px) {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst WrapperDiv = styled.div`\r\n width: 100%;\r\n position: relative;\r\n`;\r\nconst InputStyle = styled.input`\r\n width: 100%;\r\n height: 52px;\r\n background-color: #fff;\r\n border: ${(props) => (props.error ? \"2px solid #FF1500\" : \"2px solid #eaeeee\")};\r\n outline: none;\r\n padding: 0 130px 0 20px;\r\n font-size: 1.1rem;\r\n border-radius: 0.7rem;\r\n position: relative;\r\n`;\r\nconst UnitStyle = styled.div`\r\n width: 120px;\r\n height: calc(100% - 4px);\r\n padding: 0 30px;\r\n margin: 2px;\r\n background-color: #ced4da;\r\n border-radius: 0.5rem;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n`;\r\n","import * as React from \"react\";\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n// Components\r\nimport FullButton from \"../components/Buttons/FullButton\";\r\n// Assets\r\nimport LogoBigDark from \"../assets/svg/logoBigDark\";\r\nimport Sign404 from \"../assets/svg/404\";\r\n\r\nconst Error404 = () => {\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

whoops... this page is not available

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Error404;\r\n\r\nconst PageWrapper = styled.div`\r\n width: 100%;\r\n height: 100vh;\r\n position: relative;\r\n`;\r\nconst InnerWrapper = styled.div`\r\n width: 100%;\r\n max-width: 720px;\r\n height: 100%;\r\n margin: 0 auto;\r\n text-align: center;\r\n`;","import { createGlobalStyle } from \"styled-components\";\r\n\r\nexport const GlobalStyles = createGlobalStyle`\r\n html, body, div, span, applet, object, iframe,\r\n h1, h2, h3, h4, h5, h6, p, blockquote, pre,\r\n a, abbr, acronym, address, big, cite, code,\r\n del, dfn, em, img, ins, kbd, q, s, samp,\r\n small, strike, strong, sub, sup, tt, var,\r\n b, u, i, center,\r\n dl, dt, dd, ol, ul, li,\r\n fieldset, form, label, legend,\r\n table, caption, tbody, tfoot, thead, tr, th, td,\r\n article, aside, canvas, details, embed, \r\n figure, figcaption, footer, header, hgroup, \r\n menu, nav, output, ruby, section, summary,\r\n time, mark, audio, video {\r\n margin: 0;\r\n padding: 0;\r\n border: 0;\r\n vertical-align: baseline;\r\n box-sizing: border-box;\r\n }\r\n /* HTML5 display-role reset for older browsers */\r\n article, aside, details, figcaption, figure, \r\n footer, header, hgroup, menu, nav, section {\r\n display: block;\r\n }\r\n body {\r\n line-height: 1;\r\n }\r\n ol, ul {\r\n list-style: none;\r\n }\r\n blockquote, q {\r\n quotes: none;\r\n }\r\n blockquote:before, blockquote:after,\r\n q:before, q:after {\r\n content: '';\r\n content: none;\r\n }\r\n table {\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n }\r\n a {\r\n text-decoration: none!important;\r\n }\r\n input:-webkit-autofill {\r\n -webkit-box-shadow:0 0 0 50px #fff inset; /* Change the color to your own background color */\r\n box-shadow: transparent;\r\n -webkit-text-fill-color: #fff;\r\n }\r\n body {\r\n background: #fff;\r\n color: #171727;\r\n font-family: 'Noto Sans', sans-serif;\r\n overflow-x: hidden;\r\n font-size: 16px;\r\n line-height: 1.4rem;\r\n font-weight: 400;\r\n }\r\n .container {\r\n width: 100%;\r\n max-width: 1720px;\r\n margin: 0 auto;\r\n padding: 30px;\r\n }\r\n .safeArea {\r\n padding: 80px 0 0 0;\r\n }\r\n .sidebarOpen {\r\n margin-left: 220px;\r\n width: calc(100% - 220px);\r\n }\r\n .sidebarClosed {\r\n margin-left: 80px;\r\n width: calc(100% - 80px);\r\n }\r\n @media only screen and (max-width: 859px) {\r\n .safeArea {\r\n padding: 60px 0;\r\n }\r\n .sidebarOpen {\r\n margin-left: 0px;\r\n width: 100%;\r\n }\r\n .sidebarClosed {\r\n margin-left: 0px;\r\n width: 100%;\r\n }\r\n .container {\r\n padding: 15px 15px 30px 15px;\r\n }\r\n }\r\n .regular {\r\n font-weight: 400;\r\n }\r\n .bold {\r\n font-weight: 700;\r\n }\r\n\r\n // HELLPERS\r\n .textCenter {\r\n text-align: center\r\n }\r\n .animate {\r\n transition: 0.3s ease;\r\n }\r\n .pointer {\r\n cursor: pointer;\r\n }\r\n .relative {\r\n position: relative;\r\n }\r\n .textCenter {\r\n text-align: center;\r\n }\r\n .textLeft {\r\n text-align: left;\r\n }\r\n .textRight {\r\n text-align: right;\r\n }\r\n .x100 {\r\n width: 100%;\r\n }\r\n // FLEXBOX\r\n .flex {\r\n display: flex;\r\n }\r\n .flexSpaceCenter {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n }\r\n .flexNullCenter {\r\n display: flex;\r\n align-items: center;\r\n }\r\n .flexColumn {\r\n flex-direction: column;\r\n }\r\n .flexCenter {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n .flexSpaceNull {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n // FONT SIZES\r\n .font11 {\r\n font-size: 0.688rem;\r\n }\r\n .font12 {\r\n font-size: 0.75rem;\r\n }\r\n .font13 {\r\n font-size: 0.813rem;\r\n }\r\n .font14 {\r\n font-size: 0.875rem;\r\n }\r\n .font15 {\r\n font-size: 0.938rem;\r\n }\r\n .font18 {\r\n font-size: 1.125rem;\r\n }\r\n .font20 {\r\n font-size: 1.25rem;\r\n }\r\n .font25 {\r\n font-size: 1.563rem;\r\n }\r\n .font30 {\r\n font-size: 1.875rem;\r\n }\r\n .font40 {\r\n font-size: 2.5rem;\r\n }\r\n @media only screen and (max-width: 859px) {\r\n .font11 {\r\n font-size: 0.688rem;\r\n }\r\n .font12 {\r\n font-size: 0.688rem;\r\n }\r\n .font13 {\r\n font-size: 0.75rem;\r\n }\r\n .font14 {\r\n font-size: 0.813rem;\r\n }\r\n .font15 {\r\n font-size: 0.813rem;\r\n }\r\n .font18 {\r\n font-size: 0.938rem;\r\n }\r\n .font20 {\r\n font-size: 1.125rem;\r\n }\r\n .font25 {\r\n font-size: 1.25rem;\r\n }\r\n .font30 {\r\n font-size: 1.5rem;\r\n }\r\n .font40 {\r\n font-size: 1.875rem;\r\n }\r\n }\r\n // BORDER RADIUS\r\n .radius8 {\r\n border-radius: 1rem;\r\n }\r\n .radius6 {\r\n border-radius: 0.6rem;\r\n }\r\n // COLORS\r\n .orangeColor {\r\n color: #F9A81A;\r\n }\r\n .orangeColorBg {\r\n background-color: #F9A81A;\r\n }\r\n .blackColor {\r\n color: #171727;\r\n }\r\n .blackColorBg {\r\n background-color: #171727;\r\n }\r\n .softBlackColor {\r\n color: #404A4F;\r\n }\r\n .softBlackColorBg {\r\n background-color: #404A4F;\r\n }\r\n .lightColor {\r\n color: #FAFAFA;\r\n }\r\n .lightColorBg {\r\n background-color: #FAFAFA;\r\n }\r\n .whiteColor {\r\n color: #fff;\r\n }\r\n .whiteColorBg {\r\n background-color: #fff;\r\n }\r\n .greyColor {\r\n color: #B5B5BA;\r\n }\r\n .greyColorBg {\r\n background-color: #B5B5BA;\r\n }\r\n .redColor {\r\n color: #FF1500;\r\n }\r\n\r\n\r\n\r\n \r\n\r\n // ANIMATION\r\n .moveLabelUp {\r\n animation-name: moveLabelUpAnimation;\r\n animation-duration: 0.3s;\r\n }\r\n @keyframes moveLabelUpAnimation {\r\n from {top: 10px;}\r\n to {top: -5px;}\r\n }\r\n\r\n // SPACING\r\n .margin20-0 {\r\n margin: 20px 0;\r\n }\r\n\r\n // Spinner\r\n .spinner {\r\n width:20px;\r\n height:15px;\r\n --c:linear-gradient(currentColor 0 0);\r\n background: \r\n var(--c) 0% 50%,\r\n var(--c) 50% 50%,\r\n var(--c) 100% 50%;\r\n background-size:4px 100%;\r\n background-repeat: no-repeat;\r\n animation:spinner 1s infinite linear;\r\n }\r\n @keyframes spinner {\r\n 33%{background-size:4px 10% ,4px 100%,4px 100%}\r\n 50%{background-size:4px 100%,4px 10% ,4px 100%}\r\n 66%{background-size:4px 100%,4px 100%,4px 10% }\r\n }\r\n .loader {\r\n border: 8px solid #EAEEEE; /* Light grey */\r\n border-top: 8px solid #F9A81A; /* orange */\r\n border-radius: 50%;\r\n width: 60px;\r\n height: 60px;\r\n animation: spin 1.5s linear infinite;\r\n }\r\n\r\n @keyframes spin {\r\n 0% { transform: rotate(0deg); }\r\n 100% { transform: rotate(360deg); }\r\n }\r\n`;\r\n","import React, { useEffect } from \"react\";\r\nimport { Route } from \"react-router\";\r\nimport { Switch } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\n// API\r\nimport AuthorizeRoute from \"./components/api-authorization/AuthorizeRoute\";\r\nimport ApiAuthorizationRoutes from \"./components/api-authorization/ApiAuthorizationRoutes\";\r\nimport { ApplicationPaths } from \"./components/api-authorization/ApiAuthorizationConstants\";\r\nimport { getToken, getAccounts, getAccountDetail, selectAddress, getAddressDetail } from \"./redux/userSlice\";\r\n// Components\r\nimport Spinner from \"./components/Elements/Spinner.jsx\";\r\nimport AccountSelect from \"./pages/AccountSelect\";\r\n// Pages\r\nimport Dashboard from \"./pages/Dashboard.jsx\";\r\nimport Strom from \"./pages/Strom.jsx\";\r\nimport Gas from \"./pages/Gas.jsx\";\r\nimport Error404 from \"./pages/Error404.jsx\";\r\n// Style\r\nimport { GlobalStyles } from \"./style/GlobalStyles\";\r\n\r\nfunction App() {\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.user);\r\n\r\n useEffect(() => {\r\n if (!user.token) {\r\n dispatch(getToken());\r\n }\r\n if (user.token) {\r\n dispatch(getAccounts(user.token));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [user.token]);\r\n\r\n useEffect(() => {\r\n if (user.token && user.selectedAccount) {\r\n const token = user.token;\r\n const id = user.selectedAccount;\r\n dispatch(getAccountDetail({token, id}));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [user.selectedAccount]);\r\n\r\n useEffect(() => {\r\n if (user.accDetail && !user.selectedAddress) {\r\n dispatch(selectAddress(user.accDetail.addresses[0]));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [user.accDetail]);\r\n\r\n useEffect(() => {\r\n if (user.selectedAccount && user.selectedAddress) {\r\n const token = user.token;\r\n const accId = user.selectedAccount;\r\n const addId = user.selectedAddress.id;\r\n dispatch(getAddressDetail({ token, accId, addId })); // (0010Q000014OLHiQAO, a050Q0000059updQAA)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [user.selectedAddress]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {user.isFetching ? : null}\r\n {user.token && user.accounts && !user.selectedAccount ? : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import { configureStore } from \"@reduxjs/toolkit\";\r\n// Slices\r\nimport { userSlice } from \"./userSlice\";\r\nimport preferenceSlice from \"./preferenceSlice\";\r\n\r\nexport const store = configureStore({\r\n reducer: {\r\n user: userSlice.reducer,\r\n preference: preferenceSlice,\r\n },\r\n});\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport \"./style/flexboxgrid.min.css\";\r\n// Redux\r\nimport { store } from \"./redux/store\";\r\nimport { Provider } from \"react-redux\";\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n rootElement\r\n);\r\n"],"sourceRoot":""}