Use nothing-changed helper in home to prevent unnecessary render
This commit is contained in:
+3
-1
@@ -11,6 +11,7 @@ import { getOrCreateCycleDay, getCycleDaysSortedByDate } from '../db'
|
|||||||
import { getFertilityStatusForDay } from '../lib/sympto-adapter'
|
import { getFertilityStatusForDay } from '../lib/sympto-adapter'
|
||||||
import styles from '../styles'
|
import styles from '../styles'
|
||||||
import AppText, { AppTextLight } from './app-text'
|
import AppText, { AppTextLight } from './app-text'
|
||||||
|
import nothingChanged from '../helpers/db-unchanged'
|
||||||
|
|
||||||
export default class Home extends Component {
|
export default class Home extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@@ -32,7 +33,8 @@ export default class Home extends Component {
|
|||||||
this.cycleDays.addListener(this.updateState)
|
this.cycleDays.addListener(this.updateState)
|
||||||
}
|
}
|
||||||
|
|
||||||
updateState = () => {
|
updateState = (_, changes) => {
|
||||||
|
if (nothingChanged(changes)) return
|
||||||
const prediction = this.getBleedingPrediction()
|
const prediction = this.getBleedingPrediction()
|
||||||
const fertilityStatus = getFertilityStatusForDay(this.todayDateString)
|
const fertilityStatus = getFertilityStatusForDay(this.todayDateString)
|
||||||
this.setState({
|
this.setState({
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
export default function (dbChanges) {
|
||||||
|
return Object.values(dbChanges).every(changeArray => changeArray.length === 0)
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@ import Moment from 'moment'
|
|||||||
import { settings as labels } from '../components/labels'
|
import { settings as labels } from '../components/labels'
|
||||||
import { getOrCreateCycleDay, getBleedingDaysSortedByDate } from '../db'
|
import { getOrCreateCycleDay, getBleedingDaysSortedByDate } from '../db'
|
||||||
import cycleModule from './cycle'
|
import cycleModule from './cycle'
|
||||||
|
import nothingChanged from '../helpers/db-unchanged'
|
||||||
|
|
||||||
export default function setupNotifications(navigate) {
|
export default function setupNotifications(navigate) {
|
||||||
Notification.configure({
|
Notification.configure({
|
||||||
@@ -80,7 +81,3 @@ function setupPeriodReminder() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function nothingChanged(dbChanges) {
|
|
||||||
return Object.values(dbChanges).every(changeArray => changeArray.length === 0)
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user