Skip to content

Commit fa3e9ba

Browse files
committed
browser/search-engines: deterministic repeated shuffling
1 parent ad1a417 commit fa3e9ba

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/lib/browser/search-engines.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,13 @@ import { readonly, writable } from "svelte/store";
44
const browser = cr.SearchEnginesBrowserProxyImpl.getInstance();
55
const _searchEngines = writable<cr.SearchEngine[]>([]);
66

7+
const _keys: Record<number, number> = {};
8+
const shuffleKey = (engine: cr.SearchEngine) =>
9+
(_keys[engine.id] ??= Math.random());
10+
711
const shuffle = (array: cr.SearchEngine[]) => {
812
return array
9-
.map(value => ({ value, sort: Math.random() }))
13+
.map(value => ({ value, sort: shuffleKey(value) }))
1014
.sort((a, b) => a.sort - b.sort)
1115
.map(({ value }) => value);
1216
}

0 commit comments

Comments
 (0)