diff options
Diffstat (limited to 'frontend/views/page/components/tile.list.js')
| -rw-r--r-- | frontend/views/page/components/tile.list.js | 17 |
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 }) } } |
