Last active
June 9, 2025 14:34
-
-
Save AntonioErdeljac/742df57011c55c365841daca78f53c1f to your computer and use it in GitHub Desktop.
Funroad assets
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const categories = [ | |
{ | |
name: "All", | |
slug: "all", | |
}, | |
{ | |
name: "Business & Money", | |
color: "#FFB347", | |
slug: "business-money", | |
subcategories: [ | |
{ name: "Accounting", slug: "accounting" }, | |
{ | |
name: "Entrepreneurship", | |
slug: "entrepreneurship", | |
}, | |
{ name: "Gigs & Side Projects", slug: "gigs-side-projects" }, | |
{ name: "Investing", slug: "investing" }, | |
{ name: "Management & Leadership", slug: "management-leadership" }, | |
{ | |
name: "Marketing & Sales", | |
slug: "marketing-sales", | |
}, | |
{ name: "Networking, Careers & Jobs", slug: "networking-careers-jobs" }, | |
{ name: "Personal Finance", slug: "personal-finance" }, | |
{ name: "Real Estate", slug: "real-estate" }, | |
], | |
}, | |
{ | |
name: "Software Development", | |
color: "#7EC8E3", | |
slug: "software-development", | |
subcategories: [ | |
{ name: "Web Development", slug: "web-development" }, | |
{ name: "Mobile Development", slug: "mobile-development" }, | |
{ name: "Game Development", slug: "game-development" }, | |
{ name: "Programming Languages", slug: "programming-languages" }, | |
{ name: "DevOps", slug: "devops" }, | |
], | |
}, | |
{ | |
name: "Writing & Publishing", | |
color: "#D8B5FF", | |
slug: "writing-publishing", | |
subcategories: [ | |
{ name: "Fiction", slug: "fiction" }, | |
{ name: "Non-Fiction", slug: "non-fiction" }, | |
{ name: "Blogging", slug: "blogging" }, | |
{ name: "Copywriting", slug: "copywriting" }, | |
{ name: "Self-Publishing", slug: "self-publishing" }, | |
], | |
}, | |
{ | |
name: "Other", | |
slug: "other", | |
}, | |
{ | |
name: "Education", | |
color: "#FFE066", | |
slug: "education", | |
subcategories: [ | |
{ name: "Online Courses", slug: "online-courses" }, | |
{ name: "Tutoring", slug: "tutoring" }, | |
{ name: "Test Preparation", slug: "test-preparation" }, | |
{ name: "Language Learning", slug: "language-learning" }, | |
], | |
}, | |
{ | |
name: "Self Improvement", | |
color: "#96E6B3", | |
slug: "self-improvement", | |
subcategories: [ | |
{ name: "Productivity", slug: "productivity" }, | |
{ name: "Personal Development", slug: "personal-development" }, | |
{ name: "Mindfulness", slug: "mindfulness" }, | |
{ name: "Career Growth", slug: "career-growth" }, | |
], | |
}, | |
{ | |
name: "Fitness & Health", | |
color: "#FF9AA2", | |
slug: "fitness-health", | |
subcategories: [ | |
{ name: "Workout Plans", slug: "workout-plans" }, | |
{ name: "Nutrition", slug: "nutrition" }, | |
{ name: "Mental Health", slug: "mental-health" }, | |
{ name: "Yoga", slug: "yoga" }, | |
], | |
}, | |
{ | |
name: "Design", | |
color: "#B5B9FF", | |
slug: "design", | |
subcategories: [ | |
{ name: "UI/UX", slug: "ui-ux" }, | |
{ name: "Graphic Design", slug: "graphic-design" }, | |
{ name: "3D Modeling", slug: "3d-modeling" }, | |
{ name: "Typography", slug: "typography" }, | |
], | |
}, | |
{ | |
name: "Drawing & Painting", | |
color: "#FFCAB0", | |
slug: "drawing-painting", | |
subcategories: [ | |
{ name: "Watercolor", slug: "watercolor" }, | |
{ name: "Acrylic", slug: "acrylic" }, | |
{ name: "Oil", slug: "oil" }, | |
{ name: "Pastel", slug: "pastel" }, | |
{ name: "Charcoal", slug: "charcoal" }, | |
], | |
}, | |
{ | |
name: "Music", | |
color: "#FFD700", | |
slug: "music", | |
subcategories: [ | |
{ name: "Songwriting", slug: "songwriting" }, | |
{ name: "Music Production", slug: "music-production" }, | |
{ name: "Music Theory", slug: "music-theory" }, | |
{ name: "Music History", slug: "music-history" }, | |
], | |
}, | |
{ | |
name: "Photography", | |
color: "#FF6B6B", | |
slug: "photography", | |
subcategories: [ | |
{ name: "Portrait", slug: "portrait" }, | |
{ name: "Landscape", slug: "landscape" }, | |
{ name: "Street Photography", slug: "street-photography" }, | |
{ name: "Nature", slug: "nature" }, | |
{ name: "Macro", slug: "macro" }, | |
], | |
}, | |
] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "multitenant-ecommerce", | |
"version": "0.1.0", | |
"private": true, | |
"scripts": { | |
"dev": "next dev", | |
"build": "next build", | |
"start": "next start", | |
"lint": "next lint", | |
"generate:types": "payload generate:types", | |
"db:fresh": "payload migrate:fresh", | |
"db:seed": "bun run src/seed.ts" | |
}, | |
"dependencies": { | |
"@hookform/resolvers": "^5.0.1", | |
"@payloadcms/db-mongodb": "3.34.0", | |
"@payloadcms/next": "3.34.0", | |
"@payloadcms/payload-cloud": "3.34.0", | |
"@payloadcms/plugin-multi-tenant": "3.34.0", | |
"@payloadcms/richtext-lexical": "3.34.0", | |
"@payloadcms/storage-vercel-blob": "3.34.0", | |
"@radix-ui/react-accordion": "^1.2.3", | |
"@radix-ui/react-alert-dialog": "^1.1.6", | |
"@radix-ui/react-aspect-ratio": "^1.1.2", | |
"@radix-ui/react-avatar": "^1.1.3", | |
"@radix-ui/react-checkbox": "^1.1.4", | |
"@radix-ui/react-collapsible": "^1.1.3", | |
"@radix-ui/react-context-menu": "^2.2.6", | |
"@radix-ui/react-dialog": "^1.1.6", | |
"@radix-ui/react-dropdown-menu": "^2.1.6", | |
"@radix-ui/react-hover-card": "^1.1.6", | |
"@radix-ui/react-label": "^2.1.2", | |
"@radix-ui/react-menubar": "^1.1.6", | |
"@radix-ui/react-navigation-menu": "^1.2.5", | |
"@radix-ui/react-popover": "^1.1.6", | |
"@radix-ui/react-progress": "^1.1.2", | |
"@radix-ui/react-radio-group": "^1.2.3", | |
"@radix-ui/react-scroll-area": "^1.2.3", | |
"@radix-ui/react-select": "^2.1.6", | |
"@radix-ui/react-separator": "^1.1.2", | |
"@radix-ui/react-slider": "^1.2.3", | |
"@radix-ui/react-slot": "^1.1.2", | |
"@radix-ui/react-switch": "^1.1.3", | |
"@radix-ui/react-tabs": "^1.1.3", | |
"@radix-ui/react-toggle": "^1.1.2", | |
"@radix-ui/react-toggle-group": "^1.1.2", | |
"@radix-ui/react-tooltip": "^1.1.8", | |
"@tanstack/react-query": "5.72.1", | |
"@trpc/client": "11.0.3", | |
"@trpc/server": "11.0.3", | |
"@trpc/tanstack-react-query": "11.0.3", | |
"class-variance-authority": "^0.7.1", | |
"client-only": "0.0.1", | |
"clsx": "^2.1.1", | |
"cmdk": "^1.1.1", | |
"date-fns": "^4.1.0", | |
"embla-carousel-react": "^8.6.0", | |
"graphql": "^16.8.1", | |
"input-otp": "^1.4.2", | |
"lucide-react": "^0.487.0", | |
"next": "15.2.4", | |
"next-themes": "^0.4.6", | |
"nuqs": "^2.4.1", | |
"payload": "^3.33.0", | |
"react": "^19.0.0", | |
"react-day-picker": "8.10.1", | |
"react-dom": "^19.0.0", | |
"react-hook-form": "^7.55.0", | |
"react-resizable-panels": "^2.1.7", | |
"recharts": "^2.15.2", | |
"server-only": "0.0.1", | |
"sonner": "^2.0.3", | |
"stripe": "^18.0.0", | |
"superjson": "^2.2.2", | |
"tailwind-merge": "^3.1.0", | |
"tw-animate-css": "^1.2.5", | |
"vaul": "^1.1.2", | |
"zod": "3.24.2", | |
"zustand": "^5.0.3" | |
}, | |
"devDependencies": { | |
"typescript": "^5", | |
"@types/node": "^20", | |
"@types/react": "^19", | |
"@types/react-dom": "^19", | |
"@tailwindcss/postcss": "^4", | |
"tailwindcss": "^4", | |
"eslint": "^9", | |
"eslint-config-next": "15.2.4", | |
"@eslint/eslintrc": "^3" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
//product-list.tsx
const { data, isLoading, fetchNextPage, hasNextPage, isFetchingNextPage } =
useSuspenseInfiniteQuery(
trpc.products.getMany.infiniteQueryOptions(
{
...filters,
category,
limit: DEFAULT_LIMIT,
},
{
getNextPageParam: (lastPage) => {
return lastPage.docs.length > 0 ? lastPage.nextPage : undefined;
},
}
)
);