2025-04-16 16:18:20 +02:00
import { BASE_URL } from "@/constants"
import { getIconsArray } from "@/lib/api"
import type { Metadata } from "next"
import { IconSearch } from "./components/icon-search"
2025-04-16 22:51:23 +02:00
export async function generateMetadata ( ) : Promise < Metadata > {
const icons = await getIconsArray ( )
const totalIcons = icons . length
return {
2025-04-18 12:39:37 +02:00
title : "Browse Icons | Free Dashboard Icons" ,
2025-04-16 22:51:23 +02:00
description : ` Search and browse through our collection of ${ totalIcons } curated icons for services, applications and tools, designed specifically for dashboards and app directories. ` ,
keywords : [
"browse icons" ,
"dashboard icons" ,
"icon search" ,
"service icons" ,
"application icons" ,
"tool icons" ,
"web dashboard" ,
"app directory" ,
2025-04-16 16:18:20 +02:00
] ,
2025-04-16 22:51:23 +02:00
openGraph : {
2025-04-18 12:39:37 +02:00
title : "Browse Icons | Free Dashboard Icons" ,
2025-04-16 22:51:23 +02:00
description : ` Search and browse through our collection of ${ totalIcons } curated icons for services, applications and tools, designed specifically for dashboards and app directories. ` ,
type : "website" ,
url : ` ${ BASE_URL } /icons ` ,
images : [
{
2025-04-17 09:47:32 +02:00
url : "/og-image.png" ,
2025-04-16 22:51:23 +02:00
width : 1200 ,
height : 630 ,
alt : "Browse Dashboard Icons Collection" ,
type : "image/png" ,
} ,
] ,
} ,
twitter : {
card : "summary_large_image" ,
2025-04-18 12:39:37 +02:00
title : "Browse Icons | Free Dashboard Icons" ,
2025-04-16 22:51:23 +02:00
description : ` Search and browse through our collection of ${ totalIcons } curated icons for services, applications and tools, designed specifically for dashboards and app directories. ` ,
images : [ "/og-image-browse.png" ] ,
} ,
alternates : {
canonical : ` ${ BASE_URL } /icons ` ,
} ,
}
2025-04-16 16:18:20 +02:00
}
export const dynamic = "force-static"
export default async function IconsPage() {
const icons = await getIconsArray ( )
return (
2025-04-18 15:56:11 +02:00
< div className = "isolate overflow-hidden" >
2025-04-17 02:43:14 +02:00
< div className = "py-8" >
2025-04-18 18:25:10 +02:00
< div className = "space-y-4 mb-8 mx-auto max-w-6xl" >
2025-04-17 02:43:14 +02:00
< div className = "flex flex-col sm:flex-row sm:items-center justify-between gap-4" >
< div >
< h1 className = "text-3xl font-bold" > Browse icons < / h1 >
< p className = "text-muted-foreground" > Search through our collection of { icons . length } beautiful icons . < / p >
< / div >
2025-04-16 16:18:20 +02:00
< / div >
2025-04-17 02:43:14 +02:00
< IconSearch icons = { icons } / >
< / div >
2025-04-16 16:18:20 +02:00
< / div >
< / div >
)
}