From a9dfa41083ff618428c7bcdc9816606a67a7f7ca Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 13:17:55 +0000 Subject: [PATCH 1/2] feat: single select equipment category and updated fitting room header - Refactored `Equipments` page to use single category selection. - Updated `FittingRoom` page to use `PageHeader` component. - Added `backButton` prop to `PageHeader` component to support navigation controls. - Removed "Manage looks for" hint text from Fitting Room header. --- src/ui/components/PageHeader.tsx | 29 +++++++++++++--------- src/ui/pages/Equipments.tsx | 14 +++++------ src/ui/pages/FittingRoom.tsx | 42 ++++++++++++++------------------ 3 files changed, 41 insertions(+), 44 deletions(-) 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 */} From d6515e8c2971fe0ceb7e363cd3869742f49faac7 Mon Sep 17 00:00:00 2001 From: yiling ji Date: Fri, 13 Feb 2026 21:27:20 +0800 Subject: [PATCH 2/2] ui update --- src/ui/pages/Characters.tsx | 2 +- src/ui/pages/FittingRoom.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ui/pages/Characters.tsx b/src/ui/pages/Characters.tsx index 24a9447..26e60fb 100644 --- a/src/ui/pages/Characters.tsx +++ b/src/ui/pages/Characters.tsx @@ -61,7 +61,7 @@ export default function Characters() { } return ( -
+
+