mojmajstor/lib/constants.ts
echo ce7e400720 feat: Phase 2 - home screen, categories, explore, AdCard
- Add seedCategories mutation (idempotent) and getBySlug query
- Add ad queries: list, getByCategory, getById, search, getByHandyman
- Home screen: search bar, CategoryGrid, recent ads list with real-time
  Convex queries and search-by-keyword
- Explore screen: category filter via search param, filtered ad list,
  full category grid when unfiltered
- AdCard component: title, category badge, location, rating stars,
  price range, navigation to ad detail
- CategoryGrid component: 3-column emoji grid linking to filtered explore
- Add CATEGORY_EMOJI map and getCategoryName() helper in constants

All UI text in Macedonian. TypeScript clean, Convex functions deployed.
2026-05-29 18:24:01 +02:00

35 lines
1.6 KiB
TypeScript

export const CATEGORIES = [
{ slug: "majstor-za-se", name: "Мајстор за сѐ", icon: "construct-outline", sortOrder: 0 },
{ slug: "vodoinstalater", name: "Водоинсталатер", icon: "water-outline", sortOrder: 1 },
{ slug: "elektrichar", name: "Електричар", icon: "flash-outline", sortOrder: 2 },
{ slug: "teskar", name: "Тескар", icon: "hammer-outline", sortOrder: 3 },
{ slug: "farbar", name: "Фарбар", icon: "brush-outline", sortOrder: 4 },
{ slug: "keramichar", name: "Керамичар", icon: "grid-outline", sortOrder: 5 },
{ slug: "zidar", name: "Зидар", icon: "business-outline", sortOrder: 6 },
{ slug: "gradezhnik", name: "Градежник", icon: "build-outline", sortOrder: 7 },
{ slug: "stolar", name: "Столар", icon: "cube-outline", sortOrder: 8 },
{ slug: "moler", name: "Молер", icon: "color-palette-outline", sortOrder: 9 },
{ slug: "klima-montazher", name: "Клима монтажер", icon: "snow-outline", sortOrder: 10 },
{ slug: "drugo", name: "Друго", icon: "ellipsis-horizontal-outline", sortOrder: 11 },
] as const;
export type CategorySlug = (typeof CATEGORIES)[number]["slug"];
export const CATEGORY_EMOJI: Record<string, string> = {
"majstor-za-se": "🔧",
"vodoinstalater": "🚿",
"elektrichar": "⚡",
"teskar": "🔨",
"farbar": "🖌️",
"keramichar": "🧱",
"zidar": "🏗️",
"gradezhnik": "🏢",
"stolar": "🪵",
"moler": "🎨",
"klima-montazher": "❄️",
"drugo": "📋",
};
export function getCategoryName(slug: string): string {
return CATEGORIES.find((c) => c.slug === slug)?.name ?? slug;
}