JSFiddle - React, Tailwind, and code Playground
by rexonms
JavaScript
import _ from 'lodash'
import { store } from '../index'
export function getPowerUsageDetails() {
return new Promise(resolve=> {
getCalculatedData()
.then(response => {
const selfPowered = getSelfPower(response)
const hoursOfBackUp = getHoursOfBackup(response)
const numberOfPowerwalls = getOffGridNumberOfPowerwalls()
const recommendedSolarScale = getRecommendedSolarAmount(response)
return resolve({
onGrid : {
selfPowered,
hoursOfBackUp,
},
offGrid : {
numberOfPowerwalls,
recommendedSolarScale
},
})
})
})
}
function getCalculatedData() {
return new Promise((resolve) => {
const state = store.getState()
const calculatorData = state.calculatorData
const baseLoads = calculatorData.baseLoads
const baseProductions = calculatorData.baseProductions
const numberOfPowerwall = state.orderDetails.powerwallCount // number of Powerwall
const userEnergyUsage = getUserEnergyUsage()
const totalEnergyCapacity = (calculatorData.energyCapacity * numberOfPowerwall) // Users current total battery capacity
const totalPowerCapacity = (calculatorData.powerCapacity * numberOfPowerwall)
const userSolarSize = state.solarSystem.selected
const userSolarScale = state.solarSystem.solarScale
// Variable that needs to be updated with the loop
let counter = 0 // Keeps track of loop
let max = baseLoads.length
let stateOfCharge = totalEnergyCapacity
let siteLoad = getSiteLoad(baseLoads[counter], userEnergyUsage)
let solarProduction = getSolarProduction(baseProductions[counter], userSolarSize, userSolarScale)
let storageIsDischarging = false
...