Files
homepage/src/lib/utils/categories.ts
Alexander Bocken c5f6373ff6 Add complete settlement system with visual distinction
- Add settlement category with handshake emoji (🤝)
- Create settlement page for recording debt payments with user → user flow
- Implement settlement detection and visual styling across all views
- Add conditional "Settle Debts" button (hidden when balance is 0)
- Style settlement payments distinctly in recent activity with large profile pictures
- Add settlement flow styling in payments overview with green theme
- Update backend validation and Mongoose schema for settlement category
- Fix settlement receiver detection with proper user flow logic

🤝 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-09 19:25:05 +02:00

53 lines
1.1 KiB
TypeScript

export const PAYMENT_CATEGORIES = {
groceries: {
name: 'Groceries',
emoji: '🛒'
},
shopping: {
name: 'Shopping',
emoji: '🛍️'
},
travel: {
name: 'Travel',
emoji: '🚆'
},
restaurant: {
name: 'Restaurant',
emoji: '🍽️'
},
utilities: {
name: 'Utilities',
emoji: '⚡'
},
fun: {
name: 'Fun',
emoji: '🎉'
},
settlement: {
name: 'Settlement',
emoji: '🤝'
}
} as const;
export type PaymentCategory = keyof typeof PAYMENT_CATEGORIES;
export function getCategoryInfo(category: PaymentCategory) {
return PAYMENT_CATEGORIES[category] || PAYMENT_CATEGORIES.groceries;
}
export function getCategoryEmoji(category: PaymentCategory) {
return getCategoryInfo(category).emoji;
}
export function getCategoryName(category: PaymentCategory) {
return getCategoryInfo(category).name;
}
export function getCategoryOptions() {
return Object.entries(PAYMENT_CATEGORIES).map(([key, value]) => ({
value: key as PaymentCategory,
label: `${value.emoji} ${value.name}`,
emoji: value.emoji,
name: value.name
}));
}