fix: resolve all TypeScript compilation errors
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m17s

- Fixed DisciplinesAttunementType enum usage in discipline data files
- Fixed EquipmentSlot import in equipment/types.ts
- Fixed enchantment-effects.ts export/import chain
- Fixed safe-persist.ts StateStorage type compatibility
- Fixed store persist partial return types for all stores
- Fixed gameStore.ts ElementState type and error handling
- Fixed useGameDerived.ts missing properties on GameCoordinatorStore
- Added SkillUpgradeChoice type to types.ts
- Fixed ActionButtons.tsx optional currentStudyTarget prop
- Fixed GameToast.tsx Toast type compatibility
- Fixed EnchantmentDesigner sub-component type mismatches
- Fixed SpireCombatPage equippedInstances/equipmentInstances types
- Fixed page.tsx computeClickMana argument
- Added baseCastTime to SpellDef type
- Fixed golem/types.ts and loot-drops.ts import paths
- Fixed craftingStore.ts missing lastError in initial state and actions
- Fixed store-actions-combat-prestige.test.ts Memory type usage
- Fixed floor-utils.upgraded.test.ts array type annotation
- Fixed computed-stats.test.ts state type assertions
- Fixed activity-log.test.ts state type annotation
- Fixed discipline-math.test.ts enum value usage
- Fixed game-loop.test.ts vitest mock import
- Various other test file type fixes
This commit is contained in:
2026-05-24 14:34:49 +02:00
parent 14f25fffda
commit 23a83a04cf
44 changed files with 191 additions and 142 deletions
@@ -78,7 +78,7 @@ export function EffectSelector({
{selected && (
<ActionButton
size="sm"
variant="outline"
variant="ghost"
className="h-6 w-6 p-0"
onClick={() => removeEffect(effect.id)}
>
@@ -87,7 +87,7 @@ export function EffectSelector({
)}
<ActionButton
size="sm"
variant="outline"
variant="ghost"
className="h-6 w-6 p-0"
onClick={() => addEffect(effect.id)}
disabled={!selected && selectedEffects.length >= 5}
@@ -29,7 +29,7 @@ export function EquipmentTypeSelector({
/>
<div className="flex justify-between text-xs text-[var(--text-muted)]">
<span>{designProgress.progress.toFixed(1)}h / {designProgress.required.toFixed(1)}h</span>
<ActionButton size="sm" variant="outline" onClick={cancelDesign}>Cancel</ActionButton>
<ActionButton size="sm" variant="ghost" onClick={cancelDesign}>Cancel</ActionButton>
</div>
</div>
) : (
@@ -1,4 +1,4 @@
import type { EquipmentInstance, EnchantmentDesign, DesignEffect, EquipmentCraftingProgress, EquipmentCategory } from '@/lib/game/types';
import type { EquipmentInstance, EnchantmentDesign, DesignEffect, DesignProgress, EquipmentCategory } from '@/lib/game/types';
export interface EnchantmentDesignerProps {
selectedEquipmentType: string | null;
@@ -15,7 +15,7 @@ export interface EquipmentTypeSelectorProps {
ownedEquipmentTypes: Array<{ id: string; name: string; baseCapacity: number }>;
selectedEquipmentType: string | null;
setSelectedEquipmentType: (type: string | null) => void;
designProgress: EquipmentCraftingProgress | null;
designProgress: DesignProgress | null;
cancelDesign: () => void;
}
@@ -24,10 +24,10 @@ export interface EffectSelectorProps {
selectedEffects: DesignEffect[];
setSelectedEffects: (effects: DesignEffect[]) => void;
availableEffects: Array<{ id: string; name: string; description: string; baseCapacityCost: number; maxStacks: number }>;
incompatibleEffects: Array<{ id: string; name: string; description: string }>;
incompatibleEffects: Array<{ id: string; name: string; description: string; allowedEquipmentCategories: EquipmentCategory[] }>;
enchantingLevel: number;
efficiencyBonus: number;
designProgress: EquipmentCraftingProgress | null;
designProgress: DesignProgress | null;
addEffect: (effectId: string) => void;
removeEffect: (effectId: string) => void;
getIncompatibilityReason: (effect: { id: string; name: string; description: string; allowedEquipmentCategories: EquipmentCategory[] }) => string;