Ship LNURL mint pages, indexing UI, and reviews rewrite.

Add lnurl list/detail routes, OG fixtures, i18n strings, and the write/
index client flows so the site surfaces the new mint type end to end.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
michilis
2026-08-22 03:44:43 +02:00
co-authored by Cursor
parent 2a9444942b
commit c74c7fc187
66 changed files with 7603 additions and 1241 deletions
+21 -3
View File
@@ -14,6 +14,7 @@
*/
import Base from '../../layouts/Base.astro';
import MintCard from '../../components/MintCard.astro';
import ReviewByUrl from '../../components/ReviewByUrl.astro';
import { fetchFedimints } from '../../lib/api';
import { localePath, useI18n, type Locale } from '../../i18n';
import { itemListNode } from '../../lib/schema';
@@ -66,8 +67,18 @@ const schema = [
<Base title={t('fedimints.title')} description={description} current="fedimints" schema={schema}>
<div class="page">
<div class="index-head">
<h1>{t('fedimints.heading')}</h1>
<p class="lede">{t('fedimints.lede')}</p>
<div class="index-head-text">
<h1>{t('fedimints.heading')}</h1>
<p class="lede">{t('fedimints.lede')}</p>
</div>
{/*
The way in for something this site has never seen. Every other route to writing
a review starts from a page that already exists, which is exactly the case a
reader with a brand new mint does not have.
*/}
<button class="btn primary index-head-action" type="button" data-review-url-open="fedimint">
{t('reviews.byUrl.open')}
</button>
</div>
<div class="controls" data-mint-controls>
@@ -142,10 +153,17 @@ const schema = [
)
}
</div>
{/* Two steps in one dialog: identify the mint, then the ordinary review form. */}
<ReviewByUrl type="fedimint" />
</Base>
<style>
.index-head { margin-bottom: 24px; }
/* Heading and lede on the left, the one primary action on the right, wrapping to
its own line before the lede has to give up any width. */
.index-head { margin-bottom: 24px; display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.index-head-text { flex: 1 1 320px; }
.index-head-action { flex-shrink: 0; }
.index-head h1 { font-family: var(--display); font-size: 32px; font-weight: 700; letter-spacing: -.02em; line-height: 1.1; }
.index-head .lede { max-width: 620px; font-size: 15.5px; margin-top: 10px; }