summaryrefslogtreecommitdiff
path: root/frontend/views/page/components/tile.list.js
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/views/page/components/tile.list.js')
-rw-r--r--frontend/views/page/components/tile.list.js17
1 files changed, 13 insertions, 4 deletions
diff --git a/frontend/views/page/components/tile.list.js b/frontend/views/page/components/tile.list.js
index d6e5366..5e87cb6 100644
--- a/frontend/views/page/components/tile.list.js
+++ b/frontend/views/page/components/tile.list.js
@@ -13,7 +13,6 @@ const DOUBLE_CLICK_THRESHOLD = 250
class TileList extends Component {
state = {
tiles: [],
- didDoubleClick: false,
lastTargetId: 0,
lastTimeStamp: 0,
}
@@ -27,12 +26,22 @@ class TileList extends Component {
}
componentDidUpdate(prevProps, prevState) {
- const { tiles, didDoubleClick } = this.state
+ if (this.didDoubleClick) return
+ const { tiles } = this.state
if (prevState.tiles.length && !pageActions.isSameTileOrder(tiles, prevState.tiles)) {
this.props.pageActions.setTileSortOrder(tiles.slice(0).reverse())
}
- if (didDoubleClick) {
- this.setState({ didDoubleClick: false })
+ // since we store the full tiles here (reversed!), they might change from under us
+ // potentially later refactor to only use a sort order / lookup
+ else if (prevProps.page.show.res.tiles !== this.props.page.show.res.tiles) {
+ const tileLookup = this.props.page.show.res.tiles.reduce((a,b) => {
+ a[b.id] = b
+ return a
+ }, {})
+ const newTiles = this.state.tiles.map(tile => {
+ return tileLookup[tile.id]
+ })
+ this.setState({ tiles: newTiles })
}
}