refactor(ux): consolidate BMAD skills, update design system, and clean up Prisma generated client

This commit is contained in:
Sepehr Ramezani
2026-04-19 19:21:27 +02:00
parent 5296c4da2c
commit 25529a24b8
2476 changed files with 127934 additions and 101962 deletions

View File

@@ -0,0 +1,37 @@
'use client'
import { useState, useEffect, useCallback } from 'react'
type CardSizeMode = 'variable' | 'uniform'
export function useCardSizeMode(): CardSizeMode {
const [mode, setMode] = useState<CardSizeMode>('variable')
useEffect(() => {
// Check localStorage first (for immediate UI response)
const stored = localStorage.getItem('card-size-mode') as CardSizeMode | null
if (stored && (stored === 'variable' || stored === 'uniform')) {
setMode(stored)
}
// Listen for storage changes (when user changes setting in another tab)
const handleStorageChange = (e: StorageEvent) => {
if (e.key === 'card-size-mode') {
const newMode = e.newValue as CardSizeMode | null
if (newMode && (newMode === 'variable' || newMode === 'uniform')) {
setMode(newMode)
}
}
}
window.addEventListener('storage', handleStorageChange)
return () => window.removeEventListener('storage', handleStorageChange)
}, [])
return mode
}
export function useIsUniformSize(): boolean {
const mode = useCardSizeMode()
return mode === 'uniform'
}