fix: hydration mismatch, production Dockerfile, SSR localStorage guard, SpellsTab/SkillsTab/debug store migrations
Build and Publish Mana Loop Docker Image / build-and-publish (push) Has been cancelled

This commit is contained in:
2026-05-06 11:17:12 +02:00
parent 17b3571a18
commit 496d3dde4c
6 changed files with 28 additions and 45 deletions
+2 -27
View File
@@ -3,7 +3,7 @@
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Bug } from 'lucide-react';
import { usePrestigeStore, useManaStore, useUIStore } from '@/lib/game/stores';
import { usePrestigeStore, useManaStore, useUIStore, useGameStore } from '@/lib/game/stores';
import { GUARDIANS, ELEMENTS } from '@/lib/game/constants';
export function PactDebug() {
@@ -59,32 +59,7 @@ export function PactDebug() {
};
debugSetPactDetails(newSignedPactDetails);
// Unlock mana types
for (const elemId of guardian.unlocksMana) {
if (!elements[elemId]?.unlocked) {
unlockElement(elemId, 500);
}
}
// Check for compound element unlocks
const currentElements = useManaStore.getState().elements;
const unlockedSet = new Set(
Object.entries(currentElements)
.filter(([, e]) => e.unlocked)
.map(([id]) => id)
);
for (const [elemId, elemDef] of Object.entries(ELEMENTS)) {
if (elemDef.recipe && !currentElements[elemId]?.unlocked) {
const canUnlock = elemDef.recipe.every((comp: string) => unlockedSet.has(comp));
if (canUnlock) {
unlockElement(elemId, 500);
addLog(`🔮 ${elemDef.name} mana unlocked through component synergy!`);
}
}
}
addLog(`📜 DEBUG: Pact with ${guardian.name} force-signed! ${guardian.unlocksMana.map(e => ELEMENTS[e]?.name || e).join(', ')} mana unlocked!`);
addLog(`📜 DEBUG: Pact with ${guardian.name} force-signed!`);
};
// Remove a pact