generated from nhcarrigan/template
fix: sort injected entries by canonical defaults order after sync
This commit is contained in:
@@ -533,6 +533,13 @@ const injectMissingEntries = <T extends { id: string }>(
|
||||
added = added + 1;
|
||||
}
|
||||
}
|
||||
const defaultOrder = new Map(defaults.map((item, index) => {
|
||||
return [ item.id, index ] as const;
|
||||
}));
|
||||
existing.sort((itemA, itemB) => {
|
||||
return (defaultOrder.get(itemA.id) ?? Number.MAX_SAFE_INTEGER)
|
||||
- (defaultOrder.get(itemB.id) ?? Number.MAX_SAFE_INTEGER);
|
||||
});
|
||||
return added;
|
||||
};
|
||||
|
||||
|
||||
@@ -13,14 +13,14 @@ import { ConfirmationModal } from "../ui/confirmationModal.js";
|
||||
type ActiveModal = "force-unlocks" | "hard-reset" | "sync-new-content" | null;
|
||||
|
||||
interface SyncNewContentResult {
|
||||
achievementsAdded: number;
|
||||
adventurersAdded: number;
|
||||
bossesAdded: number;
|
||||
equipmentAdded: number;
|
||||
achievementsAdded: number;
|
||||
adventurersAdded: number;
|
||||
bossesAdded: number;
|
||||
equipmentAdded: number;
|
||||
explorationAreasAdded: number;
|
||||
questsAdded: number;
|
||||
upgradesAdded: number;
|
||||
zonesAdded: number;
|
||||
questsAdded: number;
|
||||
upgradesAdded: number;
|
||||
zonesAdded: number;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -580,14 +580,14 @@ interface GameContextValue {
|
||||
* @returns Counts of what was added per content type.
|
||||
*/
|
||||
syncNewContent: ()=> Promise<{
|
||||
achievementsAdded: number;
|
||||
adventurersAdded: number;
|
||||
bossesAdded: number;
|
||||
equipmentAdded: number;
|
||||
achievementsAdded: number;
|
||||
adventurersAdded: number;
|
||||
bossesAdded: number;
|
||||
equipmentAdded: number;
|
||||
explorationAreasAdded: number;
|
||||
questsAdded: number;
|
||||
upgradesAdded: number;
|
||||
zonesAdded: number;
|
||||
questsAdded: number;
|
||||
upgradesAdded: number;
|
||||
zonesAdded: number;
|
||||
}>;
|
||||
|
||||
/**
|
||||
@@ -2176,14 +2176,14 @@ export const GameProvider = ({
|
||||
localStorage.setItem("elysium_save_signature", data.signature);
|
||||
}
|
||||
return {
|
||||
achievementsAdded: data.achievementsAdded,
|
||||
adventurersAdded: data.adventurersAdded,
|
||||
bossesAdded: data.bossesAdded,
|
||||
equipmentAdded: data.equipmentAdded,
|
||||
achievementsAdded: data.achievementsAdded,
|
||||
adventurersAdded: data.adventurersAdded,
|
||||
bossesAdded: data.bossesAdded,
|
||||
equipmentAdded: data.equipmentAdded,
|
||||
explorationAreasAdded: data.explorationAreasAdded,
|
||||
questsAdded: data.questsAdded,
|
||||
upgradesAdded: data.upgradesAdded,
|
||||
zonesAdded: data.zonesAdded,
|
||||
questsAdded: data.questsAdded,
|
||||
upgradesAdded: data.upgradesAdded,
|
||||
zonesAdded: data.zonesAdded,
|
||||
};
|
||||
} catch (error_: unknown) {
|
||||
setError(
|
||||
@@ -2192,14 +2192,14 @@ export const GameProvider = ({
|
||||
: "Failed to sync new content",
|
||||
);
|
||||
return {
|
||||
achievementsAdded: 0,
|
||||
adventurersAdded: 0,
|
||||
bossesAdded: 0,
|
||||
equipmentAdded: 0,
|
||||
achievementsAdded: 0,
|
||||
adventurersAdded: 0,
|
||||
bossesAdded: 0,
|
||||
equipmentAdded: 0,
|
||||
explorationAreasAdded: 0,
|
||||
questsAdded: 0,
|
||||
upgradesAdded: 0,
|
||||
zonesAdded: 0,
|
||||
questsAdded: 0,
|
||||
upgradesAdded: 0,
|
||||
zonesAdded: 0,
|
||||
};
|
||||
}
|
||||
}, []);
|
||||
@@ -2304,6 +2304,7 @@ export const GameProvider = ({
|
||||
startQuest,
|
||||
state,
|
||||
syncError,
|
||||
syncNewContent,
|
||||
toggleAutoAdventurer,
|
||||
toggleAutoBoss,
|
||||
toggleAutoPrestige,
|
||||
@@ -2313,7 +2314,6 @@ export const GameProvider = ({
|
||||
unlockedAchievements,
|
||||
unlockedCodexEntryIds,
|
||||
unlockedStoryChapterIds,
|
||||
syncNewContent,
|
||||
};
|
||||
}, [
|
||||
apotheosis,
|
||||
|
||||
Reference in New Issue
Block a user