Fix: Aphrodite UI enhancements

* New: Display UI before movies have loaded

* Revised webpack bundling

* New: Option for production build with profiling

* Fixed: Faster hasDifferentItems and specialized OrOrder version

* Fixed: Faster movie selector

* Fixed: Speed up release processing, add indices (migration 161)

* Fixed: Use a worker for UI fuzzy search

* Fixed: Don't loop over all movies if we know none selected

* Fixed: Strip UrlBase from UI events before sending to sentry

Should mean that source maps are picked up correctly.

* Better selection of jump bar items

Show first, last and most common items

* Fixed: Don't repeatedly re-render cells

* Rework Movie Index and virtualTable

* Corresponding improvements for AddListMovie and ImportMovie
This commit is contained in:
ta264
2019-11-27 14:19:35 +00:00
committed by Devin Buhl
parent 95e5e3132b
commit abe7a85a39
65 changed files with 1529 additions and 1305 deletions

View File

@@ -1,10 +1,19 @@
import _ from 'lodash';
function hasDifferentItems(prevItems, currentItems, idProp = 'id') {
const diff1 = _.differenceBy(prevItems, currentItems, (item) => item[idProp]);
const diff2 = _.differenceBy(currentItems, prevItems, (item) => item[idProp]);
if (prevItems === currentItems) {
return false;
}
return diff1.length > 0 || diff2.length > 0;
if (prevItems.length !== currentItems.length) {
return true;
}
const currentItemIds = new Set();
currentItems.forEach((currentItem) => {
currentItemIds.add(currentItem[idProp]);
});
return prevItems.every((prevItem) => currentItemIds.has(prevItem[idProp]));
}
export default hasDifferentItems;

View File

@@ -0,0 +1,21 @@
function hasDifferentItemsOrOrder(prevItems, currentItems, idProp = 'id') {
if (prevItems === currentItems) {
return false;
}
const len = prevItems.length;
if (len !== currentItems.length) {
return true;
}
for (let i = 0; i < len; i++) {
if (prevItems[i][idProp] !== currentItems[i][idProp]) {
return true;
}
}
return false;
}
export default hasDifferentItemsOrOrder;