Redesign AdminSettings with tabs navigation and favorites

- Add tab-based navigation (Favorites, Branding, Theme, Payments, etc.)
- Create useFavoriteSettings hook for localStorage-based favorites
- Create SettingCard component for consistent setting display
- Add global search functionality
- Implement collapsible sections for theme presets and colors
- Group settings by meta-categories (payments, subscriptions, etc.)
- Add dropdown for additional categories (More menu)
- Modern UI with improved spacing and interactions
This commit is contained in:
PEDZEO
2026-01-21 02:52:37 +03:00
parent b7e6ee490c
commit d7b387927f
3 changed files with 1136 additions and 1624 deletions

View File

@@ -0,0 +1,49 @@
import { useState, useEffect, useCallback } from 'react'
const STORAGE_KEY = 'admin_favorite_settings'
export function useFavoriteSettings() {
const [favorites, setFavorites] = useState<string[]>(() => {
try {
const stored = localStorage.getItem(STORAGE_KEY)
return stored ? JSON.parse(stored) : []
} catch {
return []
}
})
// Sync to localStorage
useEffect(() => {
try {
localStorage.setItem(STORAGE_KEY, JSON.stringify(favorites))
} catch {
// Ignore storage errors
}
}, [favorites])
const toggleFavorite = useCallback((settingKey: string) => {
setFavorites(prev => {
if (prev.includes(settingKey)) {
return prev.filter(key => key !== settingKey)
} else {
return [...prev, settingKey]
}
})
}, [])
const isFavorite = useCallback((settingKey: string) => {
return favorites.includes(settingKey)
}, [favorites])
const clearFavorites = useCallback(() => {
setFavorites([])
}, [])
return {
favorites,
toggleFavorite,
isFavorite,
clearFavorites,
count: favorites.length
}
}