import { Button } from "@/components/ui/button"; import { Card, CardHeader } from "@/components/ui/card"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog" import { SiGitlab } from "@icons-pack/react-simple-icons"; import { useTranslation } from "@/utils/translation"; import { useEffect, useState } from "react"; import Image from "next/image"; import Link from "next/link"; import Markdown from "react-markdown"; import communityData from "@/data/community"; const ProjectDialog = ({ name, page, url, repo }) => { const { t } = useTranslation(); return ( {name} {t("community.url")}: {url} {t("community.repo")}: {repo} {page} ) } export default function Community() { const { t, lang } = useTranslation(); const [apps, setApps] = useState(communityData.apps); const [q, setQ] = useState(''); useEffect(() => { const qq = q.trim().toLowerCase() setApps(communityData.apps.filter(app => ( app.name[lang].toLowerCase().includes(qq) || app.desc[lang].toLowerCase().includes(qq) || app.cat[lang].toLowerCase().includes(qq) ))) }, [q]) return ( {t("community.title")} setQ(e.target.value)} /> {communityData.categories.map(cat => ( cat[lang] == q ? setQ('')}>{cat[lang]} : setQ(cat[lang])}>{cat[lang]} ))} { apps.length ? apps.map(app => ( {app.name[lang]} {app.desc[lang]} {app.cat[lang]} )) : ( {t("community.no_result")} ) } ) }
{app.desc[lang]}
{app.cat[lang]}