Skip to content

Commit 3cd24f4

Browse files
committed
Add new category types
1 parent c7d5136 commit 3cd24f4

3 files changed

Lines changed: 58 additions & 20 deletions

File tree

src/app/events/page.tsx

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ export default function EventPage() {
519519
</DialogDescription>
520520
</DialogHeader>
521521

522-
<div className="space-y-6 py-4">
522+
<div className="space-y-4 py-4">
523523
{/* Date Range Picker */}
524524
<div>
525525
<Label className="text-sm font-semibold mb-3 block">
@@ -552,7 +552,7 @@ export default function EventPage() {
552552
<Label className="text-sm font-semibold mb-3 block">
553553
{filter.name}
554554
</Label>
555-
<div className="space-y-2">
555+
<div className="space-y-2 grid grid-cols-2 @xl/main:grid-cols-2 @4xl/main:grid-cols-2">
556556
{filter.items.map((item) => {
557557
const isActive =
558558
selectedFilters[filter.name]?.has(item);
@@ -638,21 +638,15 @@ export default function EventPage() {
638638
<SelectValue placeholder="Select a category" />
639639
</SelectTrigger>
640640
<SelectContent>
641-
<SelectGroup>
642-
<SelectLabel>Category</SelectLabel>
643-
<SelectItem
644-
value={EventTypes.VOLUNTEER.toString()}
645-
>
646-
Volunteering
647-
</SelectItem>
648-
<SelectItem value={EventTypes.SPORTS.toString()}>
649-
Sports
650-
</SelectItem>
651-
<SelectItem
652-
value={EventTypes.TUTORING.toString()}
653-
>
654-
Tutoring
655-
</SelectItem>
641+
<SelectGroup>
642+
<SelectLabel>Category</SelectLabel>
643+
{Object.values(EventTypes)
644+
.filter((v) => typeof v === "string" && v != 'NO_CATEGORY') // Does not work
645+
.map((category) => (
646+
<SelectItem key={category} value={category}>
647+
{category}
648+
</SelectItem>
649+
))}
656650
</SelectGroup>
657651
</SelectContent>
658652
</Select>

src/context/EventFilterContext.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"use client"
22

3+
import { EventTypes } from "@/lib/firebaseEvents"
34
import { createContext, useContext, useState, ReactNode } from "react"
45
import { DateRange } from "react-day-picker"
56

@@ -28,9 +29,12 @@ export type EventFilterContextType = {
2829
setSelectedTags: (tags: Set<string>) => void
2930
}
3031

32+
const categoryItems = Object.values(EventTypes)
33+
.filter((v) => typeof v === "string" && v != 'NO_CATEGORY') as string[];
34+
3135
const initialFilters: FilterCategory[] = [
3236
{ name: "Attendance", items: ["Organizing", "Attendee"] },
33-
{ name: "Category", items: ["Volunteering", "Sports", "Tutoring"] },
37+
{ name: "Category", items: categoryItems },
3438
]
3539

3640
const EventFilterContext = createContext<EventFilterContextType | undefined>(

src/lib/firebaseEvents.tsx

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,15 @@ export enum EventTypes {
1414
NO_CATEGORY,
1515
VOLUNTEER = 'Volunteering',
1616
SPORTS = 'Sports',
17-
TUTORING = 'Tutoring'
17+
TUTORING = 'Tutoring',
18+
ARTS = 'Arts & Crafts',
19+
YOGA = 'Yoga',
20+
BOOKS = 'Book Club',
21+
WORKSHOP = 'Workshop & Learning',
22+
MUSIC = 'Music & Concert',
23+
HANGOUT = 'Hang-out',
24+
OUTDOORS = 'Outdoors & Nature',
25+
FOOD = 'Food & Dining'
1826
}
1927

2028
export function getEventTypeFilename(category: EventTypes): string {
@@ -25,8 +33,24 @@ export function getEventTypeFilename(category: EventTypes): string {
2533
return "/models/SportsMarker.glb";
2634
case EventTypes.TUTORING:
2735
return "/models/TutoringMarker.glb";
36+
case EventTypes.ARTS:
37+
return "/models/ArtsAndCraftsMarker.glb";
38+
case EventTypes.YOGA:
39+
return "/models/YogaMarker.glb";
40+
case EventTypes.BOOKS:
41+
return "/models/BookClubMarker.glb";
42+
case EventTypes.FOOD:
43+
return "/models/FoodAndDining.glb";
44+
case EventTypes.HANGOUT:
45+
return "/models/HangOut.glb";
46+
case EventTypes.MUSIC:
47+
return "/models/MusicAndConcertMarker.glb";
48+
case EventTypes.OUTDOORS:
49+
return "/models/OutdoorAndNatureMarker.glb";
50+
case EventTypes.WORKSHOP:
51+
return "/models/WorkshopAndLearningMarker.glb";
2852
default:
29-
return "";
53+
return "/models/HangOut.glb";
3054
}
3155
}
3256

@@ -38,6 +62,22 @@ function getEventTypeName(category: EventTypes) {
3862
return "SPORTS";
3963
case EventTypes.TUTORING:
4064
return "TUTORING";
65+
case EventTypes.ARTS:
66+
return "ARTS";
67+
case EventTypes.YOGA:
68+
return "YOGA";
69+
case EventTypes.BOOKS:
70+
return "BOOKS";
71+
case EventTypes.FOOD:
72+
return "FOOD";
73+
case EventTypes.HANGOUT:
74+
return "HANGOUT";
75+
case EventTypes.MUSIC:
76+
return "MUSIC";
77+
case EventTypes.OUTDOORS:
78+
return "OUTDOORS";
79+
case EventTypes.WORKSHOP:
80+
return "WORKSHOP";
4181
default:
4282
return "NO_CATEGORY";
4383
}

0 commit comments

Comments
 (0)