mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02:00
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:
@@ -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;
|
||||
|
21
frontend/src/Utilities/Object/hasDifferentItemsOrOrder.js
Normal file
21
frontend/src/Utilities/Object/hasDifferentItemsOrOrder.js
Normal 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;
|
Reference in New Issue
Block a user