|
| 1 | +import Image from 'next/image'; |
| 2 | +import Link from 'next/link'; |
| 3 | +import { addIcon, Icon } from '@iconify/react'; |
| 4 | +import ReleaseCard, { type ReleaseProps } from './parts/ReleaseCard'; |
| 5 | + |
| 6 | +addIcon('ac:tebex', { |
| 7 | + body: '<path fill="currentColor" d="M4.607 5.082C5.373 3.83 6.76 3.467 6.76 3.467S4.113 2.773 4.113 0c0 2.773-2.648 3.467-2.648 3.467s1.387.362 2.153 1.615H0v4.802l.823-1.487h1.644v8.288L5.757 20V9.852c-.839-.39-2.044-1.38-2.476-2.136.737.224 1.726.52 2.496.682h2.448V5.082H4.607Z"/>', |
| 8 | + width: 9, |
| 9 | + height: 20, |
| 10 | +}); |
| 11 | + |
| 12 | +addIcon('ac:acscripts', { |
| 13 | + body: '', |
| 14 | + width: 24, |
| 15 | + height: 24, |
| 16 | +}); |
| 17 | + |
| 18 | +const data: ReleaseProps[] = [ |
| 19 | + { |
| 20 | + name: 'AC Scoreboard', |
| 21 | + description: 'The ultimate scoreboard solution for your server', |
| 22 | + repository: 'https://github.com/acscripts/ac_scoreboard', |
| 23 | + serverCount: 320, |
| 24 | + youtubeVideoId: 'D_S4OmYOKJA', |
| 25 | + }, |
| 26 | + { |
| 27 | + name: 'AC Radio', |
| 28 | + description: 'Simple and framework-standalone radio UI for pma-voice', |
| 29 | + repository: 'https://github.com/acscripts/ac_radio', |
| 30 | + serverCount: 1200, |
| 31 | + youtubeVideoId: '9zxbDJMhVSw', |
| 32 | + }, |
| 33 | + { |
| 34 | + name: 'AC Documents', |
| 35 | + description: 'Create and view custom documents in-game', |
| 36 | + tebex: 'https://store.acscripts.dev/package/5384551', |
| 37 | + serverCount: 80, |
| 38 | + youtubeVideoId: 'rnU7ggQdhF4', |
| 39 | + }, |
| 40 | +]; |
| 41 | + |
| 42 | +const Introduction: React.FC = () => { |
| 43 | + return ( |
| 44 | + <div className="my-4 flex flex-col gap-4"> |
| 45 | + <div className="flex flex-wrap items-center justify-between gap-x-8 gap-y-4"> |
| 46 | + <div className="flex items-center gap-2 select-none"> |
| 47 | + <Image src="/logo.svg" alt="logo" width={64} height={64} /> |
| 48 | + <h1 className="!text-5xl !font-medium">AC Scripts</h1> |
| 49 | + </div> |
| 50 | + |
| 51 | + <div className="flex gap-4"> |
| 52 | + <Link |
| 53 | + href="https://github.com/acscripts" |
| 54 | + target="_blank" |
| 55 | + className="flex w-fit items-center gap-1 rounded-md bg-[#333333] p-2" |
| 56 | + > |
| 57 | + <Icon icon="mdi:github" className="h-6 w-6" /> |
| 58 | + <p className="!text-md !font-medium">GitHub</p> |
| 59 | + </Link> |
| 60 | + |
| 61 | + <Link |
| 62 | + href="https://discord.acscripts.dev" |
| 63 | + target="_blank" |
| 64 | + className="flex w-fit items-center gap-1 rounded-md bg-[#5865f2] p-2" |
| 65 | + > |
| 66 | + <Icon icon="ic:baseline-discord" className="h-6 w-6" /> |
| 67 | + <p className="!text-md !font-medium">Discord</p> |
| 68 | + </Link> |
| 69 | + |
| 70 | + <Link |
| 71 | + href="https://store.acscripts.dev" |
| 72 | + target="_blank" |
| 73 | + className="flex w-fit items-center gap-1 rounded-md bg-[#41c4c3] p-2 !text-black" |
| 74 | + > |
| 75 | + <Icon icon="ac:tebex" className="h-6 w-6" /> |
| 76 | + <p className="!text-md !font-medium">Tebex</p> |
| 77 | + </Link> |
| 78 | + </div> |
| 79 | + </div> |
| 80 | + |
| 81 | + <div className="grid w-full grid-cols-1 justify-between gap-2 lg:grid-cols-2 xl:grid-cols-3"> |
| 82 | + {data.map((data, index) => ( |
| 83 | + <ReleaseCard key={index} {...data} /> |
| 84 | + ))} |
| 85 | + </div> |
| 86 | + </div> |
| 87 | + ); |
| 88 | +}; |
| 89 | + |
| 90 | +export default Introduction; |
0 commit comments