Skip to content

Commit 440ff6b

Browse files
feat: implement pattern selection handling in PatternsSidebar
1 parent 5dc711c commit 440ff6b

1 file changed

Lines changed: 27 additions & 8 deletions

File tree

components/layout/PatternsSidebar.tsx

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ const categoryFilters: Array<{ value: CategoryFilter; label: string }> = [
4040
export const PatternsSidebar = ({ onSelectPattern }: PatternsSidebarProps) => {
4141
const [search, setSearch] = useState("");
4242
const [selectedCategory, setSelectedCategory] = useState<CategoryFilter>("all");
43+
const [selectedPattern, setSelectedPattern] = useState<{ id: string; name: string } | null>(null);
44+
45+
const handleSelectPattern = (pattern: Pattern) => {
46+
setSelectedPattern({ id: pattern.id, name: pattern.name });
47+
onSelectPattern(pattern);
48+
};
4349

4450
const filteredPatterns = PATTERNS.filter((p) => {
4551
const matchesSearch =
@@ -111,11 +117,19 @@ export const PatternsSidebar = ({ onSelectPattern }: PatternsSidebarProps) => {
111117
</div>
112118
<div className="space-y-1">
113119
{patterns.map((pattern) => (
114-
<PatternItem
120+
<div
115121
key={pattern.id}
116-
pattern={pattern}
117-
onSelect={() => onSelectPattern(pattern)}
118-
/>
122+
className={
123+
selectedPattern?.id === pattern.id
124+
? "rounded-lg bg-primary/10 ring-1 ring-primary/40"
125+
: "rounded-lg"
126+
}
127+
>
128+
<PatternItem
129+
pattern={pattern}
130+
onSelect={() => handleSelectPattern(pattern)}
131+
/>
132+
</div>
119133
))}
120134
</div>
121135
</div>
@@ -124,11 +138,16 @@ export const PatternsSidebar = ({ onSelectPattern }: PatternsSidebarProps) => {
124138
) : (
125139
<div className="space-y-1">
126140
{filteredPatterns.map((pattern) => (
127-
<PatternItem
141+
<div
128142
key={pattern.id}
129-
pattern={pattern}
130-
onSelect={() => onSelectPattern(pattern)}
131-
/>
143+
className={
144+
selectedPattern?.id === pattern.id
145+
? "rounded-lg bg-primary/10 ring-1 ring-primary/40"
146+
: "rounded-lg"
147+
}
148+
>
149+
<PatternItem pattern={pattern} onSelect={() => handleSelectPattern(pattern)} />
150+
</div>
132151
))}
133152
</div>
134153
)}

0 commit comments

Comments
 (0)