Skip to content

Commit eadad1c

Browse files
feat: add goodcodes icons
1 parent 66f91c9 commit eadad1c

File tree

3 files changed

+45
-1
lines changed

3 files changed

+45
-1
lines changed

src/pages/library/components/game-entry.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Link } from 'waku/router/client'
44
import { encodeRFC3986URIComponent } from '@/utils/misc.ts'
55
import { getRomGoodcodes } from '@/utils/rom.ts'
66
import { useRomCover } from '../hooks/use-rom-cover.ts'
7+
import { GameTitle } from './game-title.tsx'
78

89
export function GameEntry({ rom, width }) {
910
const goodcodes = getRomGoodcodes(rom)
@@ -39,7 +40,7 @@ export function GameEntry({ rom, width }) {
3940
) : null}
4041
</div>
4142

42-
<div className='mt-2 line-clamp-2 text-center text-sm font-semibold'>{goodcodes.rom} {goodcodes.codes.languages}</div>
43+
<GameTitle rom={rom} />
4344
</Link>
4445
</div>
4546
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { uniq } from 'es-toolkit'
2+
import { getRomGoodcodes } from '@/utils/rom.ts'
3+
import { DistrictIcon } from './district-icon.tsx'
4+
5+
export function GameTitle({ rom }) {
6+
const goodcodes = getRomGoodcodes(rom)
7+
8+
const { countries, revision, version = {} } = goodcodes.codes
9+
const districts: string[] = uniq(countries?.map(({ code }) => code))
10+
11+
return (
12+
<div className='mt-2 line-clamp-2 text-center text-sm font-semibold'>
13+
{districts?.map((district) => (
14+
<DistrictIcon district={district} key={district} />
15+
))}
16+
17+
{goodcodes.rom}
18+
19+
{revision !== undefined && (
20+
<span className='ml-2 inline-block rounded bg-gray-300 px-1'>
21+
<span className='icon-[octicon--versions-16] size-4 align-middle' />
22+
{revision > 1 && (
23+
<span className='ml-2 h-4 align-middle font-["Noto_Mono",ui-monospace,monospace]'>{revision}</span>
24+
)}
25+
</span>
26+
)}
27+
28+
{version.alpha ? (
29+
<span className='ml-2 inline-block rounded bg-gray-300 px-1'>
30+
<span className='icon-[mdi--alpha] size-4 align-middle' />
31+
</span>
32+
) : version.beta ? (
33+
<span className='ml-2 inline-block rounded bg-gray-300 px-1'>
34+
<span className='icon-[mdi--beta] size-4 align-middle' />
35+
</span>
36+
) : version.prototype ? (
37+
<span className='ml-2 inline-block rounded bg-gray-300 px-1'>
38+
<span className='icon-[mdi--flask] size-4 align-middle' />
39+
</span>
40+
) : null}
41+
</div>
42+
)
43+
}

0 commit comments

Comments
 (0)