diff --git a/web/public/site.webmanifest b/web/public/site.webmanifest index d8091890..3c963dc8 100644 --- a/web/public/site.webmanifest +++ b/web/public/site.webmanifest @@ -1 +1,26 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#FA5252","background_color":"#1B1B1D","display":"standalone"} \ No newline at end of file +{ + "name": "Dashboard Icons", + "short_name": "DashIcons", + "description": "A collection of curated icons for services, applications and tools, designed specifically for dashboards and app directories.", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" + } + ], + "theme_color": "#FA5252", + "background_color": "#1B1B1D", + "start_url": "/", + "display": "standalone", + "orientation": "portrait", + "scope": "/", + "categories": ["tools", "utilities", "productivity"] +} diff --git a/web/src/app/icons/[icon]/page.tsx b/web/src/app/icons/[icon]/page.tsx index e1e5021b..bfb11e16 100644 --- a/web/src/app/icons/[icon]/page.tsx +++ b/web/src/app/icons/[icon]/page.tsx @@ -1,6 +1,6 @@ import { IconDetails } from "@/components/icon-details" import { BASE_URL } from "@/constants" -import { getAllIcons, getAuthorData } from "@/lib/api" +import { getAllIcons, getAuthorData, getTotalIcons } from "@/lib/api" import type { Metadata, ResolvingMetadata } from "next" import { notFound } from "next/navigation" @@ -36,7 +36,10 @@ export async function generateMetadata({ params, searchParams }: Props, parent: const iconImageUrl = `${BASE_URL}/png/${icon}.png` const pageUrl = `${BASE_URL}/icons/${icon}` - const formattedIconName = icon.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ') + const formattedIconName = icon + .split("-") + .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) + .join(" ") return { title: `${formattedIconName} Icon | Dashboard Icons`, @@ -101,9 +104,65 @@ export default async function IconPage({ params }: { params: Promise<{ icon: str notFound() } - // Pass originalIconData directly, assuming IconDetails can handle it - const iconData = originalIconData + // Fetch total icons + const { totalIcons } = await getTotalIcons() + // Format icon name + const formattedIconName = icon + .split("-") + .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) + .join(" ") const authorData = await getAuthorData(originalIconData.update.author.id) - return + + return ( +
+ {/* Background glow effect */} +