Fix radio admin StatusCard icons showing as Unicode escapes.
Local Build and Deploy / deploy (push) Successful in 56s
Local Build and Deploy / deploy (push) Successful in 56s
Co-authored-by: Cursor <[email protected]>
This commit is contained in:
1 parent
7b6c02c07d
commit
ea07950374
11 files changed
+34
-34
No files matched your search
@@ -107,19 +107,19 @@ export default async function AdminRadioApiKeysPage() {
|
||||
<StatusCard
|
||||
label={t("apiKeysForm.totalKeys")}
|
||||
value={total}
|
||||
icon="\u{1F511}"
|
||||
icon="🔑"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("apiKeysForm.active")}
|
||||
value={activeCount}
|
||||
state={activeCount > 0 ? "ok" : "neutral"}
|
||||
icon="\u{2705}"
|
||||
icon="✅"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("apiKeysForm.inactive")}
|
||||
value={inactiveCount}
|
||||
state={inactiveCount > 0 ? "warn" : "neutral"}
|
||||
icon="\u{1F6AB}"
|
||||
icon="🚫"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -110,19 +110,19 @@ export default async function AdminRadioAutoDjPage() {
|
||||
<StatusCard
|
||||
label={t("autoDjForm.tracks")}
|
||||
value={tracks.length}
|
||||
icon="\u{1F3B5}"
|
||||
icon="🎵"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("autoDjForm.active")}
|
||||
value={activeCount}
|
||||
state={activeCount > 0 ? "ok" : "neutral"}
|
||||
icon="\u{25B6}\uFE0F"
|
||||
icon="▶️"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("autoDjForm.inactive")}
|
||||
value={inactiveCount}
|
||||
state={inactiveCount > 0 ? "warn" : "neutral"}
|
||||
icon="\u{23F8}\uFE0F"
|
||||
icon="⏸️"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -90,19 +90,19 @@ export default async function AdminRadioBannersPage() {
|
||||
<StatusCard
|
||||
label={t("banners.title")}
|
||||
value={banners.length}
|
||||
icon="\u{1F5BC}\uFE0F"
|
||||
icon="🖼️"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("banners.statusActive")}
|
||||
value={activeCount}
|
||||
state={activeCount > 0 ? "ok" : "neutral"}
|
||||
icon="\u{2705}"
|
||||
icon="✅"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("banners.statusHidden")}
|
||||
value={hiddenCount}
|
||||
state={hiddenCount > 0 ? "warn" : "neutral"}
|
||||
icon="\u{1F6AB}"
|
||||
icon="🚫"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -72,12 +72,12 @@ export default async function AdminRadioEmbedPage() {
|
||||
hasStream ? t("embedPage.configured") : t("embedPage.missing")
|
||||
}
|
||||
state={hasStream ? "ok" : "danger"}
|
||||
icon="\u{1F4BB}"
|
||||
icon="💻"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("embedPage.radioName")}
|
||||
value={radioName}
|
||||
icon="\u{1F399}\uFE0F"
|
||||
icon="🎙️"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("embedPage.nowPlayingApi")}
|
||||
@@ -85,7 +85,7 @@ export default async function AdminRadioEmbedPage() {
|
||||
nowPlayingApiUrl ? t("embedPage.set") : t("embedPage.notSet")
|
||||
}
|
||||
state={nowPlayingApiUrl ? "ok" : "neutral"}
|
||||
icon="\u{1F3B5}"
|
||||
icon="🎵"
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -109,23 +109,23 @@ export default async function AdminRadioHistoryPage() {
|
||||
<StatusCard
|
||||
label={t("historyPage.showsLogged")}
|
||||
value={history.length}
|
||||
icon="\u{1F399}\uFE0F"
|
||||
icon="🎙️"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("historyPage.onAirNow")}
|
||||
value={liveCount}
|
||||
state={liveCount > 0 ? "ok" : "neutral"}
|
||||
icon="\u{1F534}"
|
||||
icon="🔴"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("historyPage.uniqueDjs")}
|
||||
value={uniqueDjs}
|
||||
icon="\u{1F9D1}\u200D\u{1F3A4}"
|
||||
icon="🧑🎤"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("historyPage.peakListeners")}
|
||||
value={peakListeners}
|
||||
icon="\u{1F465}"
|
||||
icon="👥"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -68,7 +68,7 @@ export default async function AdminRadioModerationPage() {
|
||||
<StatusCard
|
||||
label={t("shouts")}
|
||||
value={shouts.length}
|
||||
icon="\u{1F4E3}"
|
||||
icon="📣"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -251,21 +251,21 @@ export default async function AdminRadioMonitoringPage() {
|
||||
!streamConfigured ? "neutral" : streamOnline ? "ok" : "danger"
|
||||
}
|
||||
hint={streamUrl ? shortUrl(streamUrl) : undefined}
|
||||
icon="\u{1F4E1}"
|
||||
icon="📡"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("monitoring.nowPlaying")}
|
||||
value={nowPlaying ?? "\u2014"}
|
||||
state={nowPlaying ? "ok" : "neutral"}
|
||||
hint={!nowPlayingUrl ? t("monitoring.noNowPlayingHint") : undefined}
|
||||
icon="\u{1F3B5}"
|
||||
icon="🎵"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("monitoring.listeners")}
|
||||
value={listeners ?? "\u2014"}
|
||||
state={listeners != null ? "ok" : "neutral"}
|
||||
hint={!listenersUrl ? t("monitoring.noListenersHint") : undefined}
|
||||
icon="\u{1F3A7}"
|
||||
icon="🎧"
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -127,24 +127,24 @@ export default async function AdminRadioPage() {
|
||||
<StatusCard
|
||||
label={t("shouts")}
|
||||
value={shouts.length}
|
||||
icon="\u{1F4E3}"
|
||||
icon="📣"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("pendingApplications")}
|
||||
value={pendingApps}
|
||||
state={pendingApps > 0 ? "warn" : "ok"}
|
||||
icon="\u{1F4DD}"
|
||||
icon="📝"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("schedules")}
|
||||
value={schedules.length}
|
||||
icon="\u{1F5D3}\uFE0F"
|
||||
icon="🗓️"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("activeSchedules")}
|
||||
value={activeSchedules}
|
||||
state={activeSchedules > 0 ? "ok" : "neutral"}
|
||||
icon="\u{1F399}\uFE0F"
|
||||
icon="🎙️"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -100,23 +100,23 @@ export default async function AdminRadioPointsPage({
|
||||
label={t("pointsForm.points")}
|
||||
value={enabled ? t("pointsForm.enabled") : t("pointsForm.disabled")}
|
||||
state={enabled ? "ok" : "danger"}
|
||||
icon="\u{1F3A7}"
|
||||
icon="🎧"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("pointsForm.perMinute")}
|
||||
value={perMinute}
|
||||
hint={t("pointsForm.paidIn", { currency: selectedCurrency })}
|
||||
icon="\u{23F1}\uFE0F"
|
||||
icon="⏱️"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("pointsForm.maxPerDay")}
|
||||
value={maxPerDay === "0" ? t("pointsForm.unlimited") : maxPerDay}
|
||||
icon="\u{1F4C8}"
|
||||
icon="📈"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("pointsForm.minListeners")}
|
||||
value={minListeners}
|
||||
icon="\u{1F465}"
|
||||
icon="👥"
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -78,13 +78,13 @@ export default async function AdminRadioRanksPage() {
|
||||
<StatusCard
|
||||
label={t("ranks")}
|
||||
value={ranks.length}
|
||||
icon="\u{1F396}\uFE0F"
|
||||
icon="🎖️"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("ranksForm.active")}
|
||||
value={activeCount}
|
||||
state={activeCount > 0 ? "ok" : "neutral"}
|
||||
icon="\u{2705}"
|
||||
icon="✅"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -435,24 +435,24 @@ export default async function AdminRadioSettingsPage() {
|
||||
: t("settingsForm.disabled")
|
||||
}
|
||||
state={radioEnabled ? "ok" : "danger"}
|
||||
icon="\u{1F4BB}"
|
||||
icon="💻"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("settingsForm.totalKeys")}
|
||||
value={totalKeys}
|
||||
icon="\u{1F511}"
|
||||
icon="🔑"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("settingsForm.configured")}
|
||||
value={`${configuredKeys}/${CURATED_KEYS.size}`}
|
||||
hint={t("settingsForm.curatedHint")}
|
||||
icon="\u{2699}\uFE0F"
|
||||
icon="⚙️"
|
||||
/>
|
||||
<StatusCard
|
||||
label={t("settingsForm.customKeys")}
|
||||
value={extra.length}
|
||||
state={extra.length > 0 ? "warn" : "neutral"}
|
||||
icon="\u{2795}"
|
||||
icon="➕"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
Reference in new issue
Block a user