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 styles from '../styles'
|
||||
import AppText, { AppTextLight } from './app-text'
|
||||
import nothingChanged from '../helpers/db-unchanged'
|
||||
|
||||
export default class Home extends Component {
|
||||
constructor(props) {
|
||||
@@ -32,7 +33,8 @@ export default class Home extends Component {
|
||||
this.cycleDays.addListener(this.updateState)
|
||||
}
|
||||
|
||||
updateState = () => {
|
||||
updateState = (_, changes) => {
|
||||
if (nothingChanged(changes)) return
|
||||
const prediction = this.getBleedingPrediction()
|
||||
const fertilityStatus = getFertilityStatusForDay(this.todayDateString)
|
||||
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 { getOrCreateCycleDay, getBleedingDaysSortedByDate } from '../db'
|
||||
import cycleModule from './cycle'
|
||||
import nothingChanged from '../helpers/db-unchanged'
|
||||
|
||||
export default function setupNotifications(navigate) {
|
||||
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