diff --git a/src/app/groups/[groupId]/expenses/category-icon.tsx b/src/app/groups/[groupId]/expenses/category-icon.tsx
new file mode 100644
index 0000000..0020ff4
--- /dev/null
+++ b/src/app/groups/[groupId]/expenses/category-icon.tsx
@@ -0,0 +1,144 @@
+import { Category } from '@prisma/client'
+import {
+ Armchair,
+ Baby,
+ Banknote,
+ Bike,
+ Bus,
+ Car,
+ CarTaxiFront,
+ Cat,
+ Clapperboard,
+ CupSoda,
+ Dices,
+ Dumbbell,
+ Eraser,
+ FerrisWheel,
+ Fuel,
+ Gift,
+ Home,
+ Hotel,
+ Lamp,
+ Landmark,
+ LibraryBig,
+ LucideIcon,
+ LucideProps,
+ Martini,
+ Music,
+ ParkingMeter,
+ Phone,
+ PiggyBank,
+ Plane,
+ Plug,
+ PlugZap,
+ Shirt,
+ ShoppingCart,
+ Stethoscope,
+ ThermometerSun,
+ Train,
+ Trash,
+ Utensils,
+ Wine,
+ Wrench,
+} from 'lucide-react'
+
+export function CategoryIcon({
+ category,
+ ...props
+}: { category: Category | null } & LucideProps) {
+ const Icon = getCategoryIcon(`${category?.grouping}/${category?.name}`)
+ return
+}
+
+function getCategoryIcon(category: string): LucideIcon {
+ switch (category) {
+ case 'Uncategorized/General':
+ return Banknote
+ case 'Uncategorized/Payment':
+ return Banknote
+ case 'Entertainment/Entertainment':
+ return FerrisWheel
+ case 'Entertainment/Games':
+ return Dices
+ case 'Entertainment/Movies':
+ return Clapperboard
+ case 'Entertainment/Music':
+ return Music
+ case 'Entertainment/Sports':
+ return Dumbbell
+ case 'Food and Drink/Food and Drink':
+ return Utensils
+ case 'Food and Drink/Dining Out':
+ return Martini
+ case 'Food and Drink/Groceries':
+ return ShoppingCart
+ case 'Food and Drink/Liquor':
+ return Wine
+ case 'Home/Home':
+ return Home
+ case 'Home/Electronics':
+ return Plug
+ case 'Home/Furniture':
+ return Armchair
+ case 'Home/Household Supplies':
+ return Lamp
+ case 'Home/Maintenance':
+ return Wrench
+ case 'Home/Mortgage':
+ return Landmark
+ case 'Home/Pets':
+ return Cat
+ case 'Home/Rent':
+ return PiggyBank
+ case 'Home/Services':
+ return Wrench
+ case 'Life/Childcare':
+ return Baby
+ case 'Life/Clothing':
+ return Shirt
+ case 'Life/Education':
+ return LibraryBig
+ case 'Life/Gifts':
+ return Gift
+ case 'Life/Insurance':
+ return Landmark
+ case 'Life/Medical Expenses':
+ return Stethoscope
+ case 'Life/Taxes':
+ return Banknote
+ case 'Transportation/Transportation':
+ return Bus
+ case 'Transportation/Bicycle':
+ return Bike
+ case 'Transportation/Bus/Train':
+ return Train
+ case 'Transportation/Car':
+ return Car
+ case 'Transportation/Gas/Fuel':
+ return Fuel
+ case 'Transportation/Hotel':
+ return Hotel
+ case 'Transportation/Parking':
+ return ParkingMeter
+ case 'Transportation/Plane':
+ return Plane
+ case 'Transportation/Taxi':
+ return CarTaxiFront
+ case 'Utilities/Utilities':
+ return Banknote
+ case 'Utilities/Cleaning':
+ return Eraser
+ case 'Utilities/Electricity':
+ return PlugZap
+ case 'Utilities/Heat/Gas':
+ return ThermometerSun
+ case 'Utilities/Trash':
+ return Trash
+ case 'Utilities/TV/Phone/Internet':
+ return Phone
+ case 'Utilities/Water':
+ return CupSoda
+ default:
+ return Banknote
+ }
+}
diff --git a/src/app/groups/[groupId]/expenses/expense-list.tsx b/src/app/groups/[groupId]/expenses/expense-list.tsx
index 3fae873..9217123 100644
--- a/src/app/groups/[groupId]/expenses/expense-list.tsx
+++ b/src/app/groups/[groupId]/expenses/expense-list.tsx
@@ -1,4 +1,5 @@
'use client'
+import { CategoryIcon } from '@/app/groups/[groupId]/expenses/category-icon'
import { Button } from '@/components/ui/button'
import { getGroupExpenses } from '@/lib/api'
import { cn } from '@/lib/utils'
@@ -55,6 +56,10 @@ export function ExpenseList({
router.push(`/groups/${groupId}/expenses/${expense.id}/edit`)
}}
>
+
{expense.title}
diff --git a/src/components/expense-form.tsx b/src/components/expense-form.tsx
index d00211a..c1652ca 100644
--- a/src/components/expense-form.tsx
+++ b/src/components/expense-form.tsx
@@ -1,4 +1,5 @@
'use client'
+import { CategoryIcon } from '@/app/groups/[groupId]/expenses/category-icon'
import { AsyncButton } from '@/components/async-button'
import { SubmitButton } from '@/components/submit-button'
import { Button } from '@/components/ui/button'
@@ -239,12 +240,18 @@ export function ExpenseForm({
{Object.keys(categoriesByGroup).map((group) => (
{group}
- {categoriesByGroup[group].map(({ id, name }) => (
+ {categoriesByGroup[group].map((category) => (
- {name}
+
+
+ {category.name}
+
))}