randomise partners list using date as the seed

This commit is contained in:
Starystars67
2025-12-23 13:00:33 +00:00
parent 88a3f10192
commit c09b0cc69f
2 changed files with 15 additions and 2 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "beammp-website",
"private": true,
"version": "2.3.2",
"version": "2.4.0",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -10,7 +10,20 @@ async function loadPartners() {
const res = await fetch('/partners.json', { cache: 'no-store' })
if (!res.ok) throw new Error(`Failed to load partners (${res.status})`)
const data = await res.json()
partners.value = Array.isArray(data) ? data : []
const partnersArray = Array.isArray(data) ? data : []
// Create a seed based on the current date (YYYY-MM-DD)
const today = new Date().toISOString().split('T')[0]
const seed = today.split('-').reduce((acc, val) => acc + parseInt(val), 0)
// Simple seeded shuffle using the date as seed
const shuffled = [...partnersArray]
for (let i = shuffled.length - 1; i > 0; i--) {
const j = Math.floor(((seed * (i + 1) * 9301 + 49297) % 233280) / 233280 * (i + 1))
;[shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]
}
partners.value = shuffled
} catch (e) {
error.value = e.message || 'Unable to fetch partners'
} finally {