Skip to content

Commit 3a259a1

Browse files
committed
Repair player button settings on open
For unknown reasons, sometimes it seems this can get messed up What I've seen locally: - Duplicate numbers (e.g. -5 twice) - Gaps I believe this is caused by new or removed buttons, since this setting isn't really migrated
1 parent 2b3e805 commit 3a259a1

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/scripts/options/player.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,18 @@ const nameToTitle: Record<Comp, string> = {
5151
'speeddial': msg('optionsCompSpeed'),
5252
};
5353

54+
const repairPlayerSettings = (settings: Partial<Settings>) => {
55+
const keys = Object.keys(settings).toSorted((a, b) => (settings[a]?.position ?? defaultPositions[a]) - (settings[b]?.position ?? defaultPositions[b]));
56+
const left = keys.filter(i => (settings[i]?.position ?? defaultPositions[i]) >= 0);
57+
const right = keys.filter(i => (settings[i]?.position ?? defaultPositions[i]) < 0);
58+
for (let i = 0; i < left.length; ++i) {
59+
settings[left[i]].position = i;
60+
}
61+
for (let i = 0; i < right.length; ++i) {
62+
settings[right[i]].position = -right.length + i;
63+
}
64+
};
65+
5466
const render = (settings: Partial<Settings>, selected: Comp = undefined) => {
5567
console.debug('Rendering for mobile?', isMobile());
5668
const wrapper = document.createElement('div');
@@ -145,5 +157,6 @@ const render = (settings: Partial<Settings>, selected: Comp = undefined) => {
145157

146158
export const showConfigurePlayers = withLoader(async () => {
147159
const { playerSettings } = await getFromStorage<{ playerSettings: Partial<Settings>; }>({ playerSettings: {} });
160+
repairPlayerSettings(playerSettings);
148161
buildModal(msg('optionsPlayerConfigure'), '', 'configure-player', render(playerSettings));
149162
});

0 commit comments

Comments
 (0)