mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-02-23 15:46:28 +08:00
fix(thread-list): Recompute visible region after window resize
This commit is contained in:
parent
dccffe9acb
commit
fe077d4285
1 changed files with 8 additions and 1 deletions
|
@ -21,7 +21,7 @@ class ListTabularItem extends React.Component
|
|||
# React.Perf.wasted-time from ~300msec to 20msec by doing a deep
|
||||
# comparison of props before triggering a re-render.
|
||||
shouldComponentUpdate: (nextProps, nextState) =>
|
||||
if not Utils.isEqualReact(@props.item, nextProps.item)
|
||||
if not Utils.isEqualReact(@props.item, nextProps.item) or @props.columns isnt nextProps.columns
|
||||
@_columnCache = null
|
||||
return true
|
||||
if not Utils.isEqualReact(_.omit(@props, 'item'), _.omit(nextProps, 'item'))
|
||||
|
@ -84,8 +84,12 @@ class ListTabular extends React.Component
|
|||
renderedRangeEnd: -1
|
||||
|
||||
componentDidMount: =>
|
||||
window.addEventListener('resize', @onWindowResize, true)
|
||||
@updateRangeState()
|
||||
|
||||
componentWillUnmount: =>
|
||||
window.removeEventListener('resize', @onWindowResize, true)
|
||||
|
||||
componentDidUpdate: (prevProps, prevState) =>
|
||||
# If our view has been swapped out for an entirely different one,
|
||||
# reset our scroll position to the top.
|
||||
|
@ -96,6 +100,9 @@ class ListTabular extends React.Component
|
|||
@updateRangeState()
|
||||
@updateRangeStateFiring = false
|
||||
|
||||
onWindowResize: =>
|
||||
@_onWindowResize ?= _.debounce(@updateRangeState, 50)
|
||||
@_onWindowResize()
|
||||
|
||||
onScroll: =>
|
||||
# If we've shifted enough pixels from our previous scrollTop to require
|
||||
|
|
Loading…
Reference in a new issue