diff --git a/src/ui/components/PageHeader.tsx b/src/ui/components/PageHeader.tsx
index 0acff8f..e64ceb5 100644
--- a/src/ui/components/PageHeader.tsx
+++ b/src/ui/components/PageHeader.tsx
@@ -6,6 +6,7 @@ interface PageHeaderProps {
title: ReactNode
subtitle?: ReactNode
actions?: ReactNode
+ backButton?: ReactNode
children?: ReactNode
className?: string
sticky?: boolean
@@ -16,6 +17,7 @@ export function PageHeader({
title,
subtitle,
actions,
+ backButton,
children,
className,
sticky = true,
@@ -32,18 +34,21 @@ export function PageHeader({
style={sticky ? { top: topOffset } : undefined}
>
-
- {subtitle && (
-
-
- {subtitle}
-
- )}
-
-
- {title}
-
-
+
+ {backButton}
+
+ {subtitle && (
+
+
+ {subtitle}
+
+ )}
+
+
+ {title}
+
+
+
{actions &&
{actions}
}
diff --git a/src/ui/pages/Equipments.tsx b/src/ui/pages/Equipments.tsx
index 83b61d9..5d4b9ec 100644
--- a/src/ui/pages/Equipments.tsx
+++ b/src/ui/pages/Equipments.tsx
@@ -36,7 +36,7 @@ export default function Equipments() {
const [items, setItems] = useState
([])
const [outfits, setOutfits] = useState([])
const [loading, setLoading] = useState(true)
- const [selectedCategories, setSelectedCategories] = useState([])
+ const [selectedCategory, setSelectedCategory] = useState(null)
const [extractorOpen, setExtractorOpen] = useState(false)
const [createOutfitOpen, setCreateOutfitOpen] = useState(false)
const [viewMode, setViewMode] = useState<'equipments' | 'outfits'>('equipments')
@@ -49,7 +49,7 @@ export default function Equipments() {
} else {
fetchOutfits()
}
- }, [viewMode, selectedCategories])
+ }, [viewMode, selectedCategory])
const fetchItems = async () => {
setLoading(true)
@@ -58,8 +58,8 @@ export default function Equipments() {
limit: '100',
}
- if (selectedCategories.length > 0) {
- query.category = selectedCategories
+ if (selectedCategory) {
+ query.category = [selectedCategory]
}
const res = await client.equipments.$get({
@@ -106,9 +106,7 @@ export default function Equipments() {
}
const toggleCategory = (category: string) => {
- setSelectedCategories((prev) =>
- prev.includes(category) ? prev.filter((c) => c !== category) : [...prev, category],
- )
+ setSelectedCategory((prev) => (prev === category ? null : category))
}
return (
@@ -157,7 +155,7 @@ export default function Equipments() {
{EQUIPMENT_CATEGORIES.map((cat) => {
- const isSelected = selectedCategories.includes(cat.main_category)
+ const isSelected = selectedCategory === cat.main_category
return (
- {/* Header */}
-
-
+
navigate('/characters')}
- className="rounded-full hover:bg-stone-200"
+ className="rounded-full hover:bg-stone-200 text-stone-600"
>
-
+
-
-
- Fitting Room
-
-
- Manage looks for{' '}
-
- {character.name}
-
-
-
-
-
-
+ }
+ actions={
+
+ }
+ className="mb-6 shrink-0"
+ />
{/* Left: Character Preview */}