Fixed minor issues with the Archetypes

This commit is contained in:
2026-02-22 19:38:57 +02:00
parent ba89102f71
commit 9437307e0f
4 changed files with 61 additions and 23 deletions

View File

@@ -459,12 +459,12 @@ export default function MelodyDetail() {
const binaryFilename = `${binaryPid}.bsm`;
// Derive a display name: for firebase URLs extract the filename portion
let displayName = binaryFilename;
let downloadName = binaryFilename;
if (!files.binary_url && melody.url) {
try {
const urlPath = decodeURIComponent(new URL(melody.url).pathname);
const parts = urlPath.split("/");
displayName = parts[parts.length - 1] || binaryFilename;
downloadName = parts[parts.length - 1] || binaryFilename;
} catch { /* keep binaryFilename */ }
}
@@ -484,7 +484,7 @@ export default function MelodyDetail() {
const objectUrl = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = objectUrl;
a.download = displayName;
a.download = downloadName;
a.click();
URL.revokeObjectURL(objectUrl);
} catch (err) {
@@ -493,18 +493,37 @@ export default function MelodyDetail() {
};
return (
<span className="inline-flex items-center gap-2">
<a
href={binaryUrl}
onClick={handleDownload}
className="underline"
style={{ color: "var(--accent)" }}
>
{displayName}
</a>
{!files.binary_url && melody.url && (
<span className="text-xs px-1.5 py-0.5 rounded" style={{ backgroundColor: "var(--bg-card-hover)", color: "var(--text-muted)" }}>
via URL
<span className="inline-flex flex-col gap-0.5">
<span className="inline-flex items-center gap-2">
{builtMelody?.name ? (
<strong style={{ color: "var(--text-heading)" }}>{builtMelody.name}</strong>
) : (
<a
href={binaryUrl}
onClick={handleDownload}
className="underline"
style={{ color: "var(--accent)" }}
>
{downloadName}
</a>
)}
{!files.binary_url && melody.url && (
<span className="text-xs px-1.5 py-0.5 rounded" style={{ backgroundColor: "var(--bg-card-hover)", color: "var(--text-muted)" }}>
via URL
</span>
)}
</span>
{builtMelody?.name && (
<span className="text-xs" style={{ color: "var(--text-muted)" }}>
file:{" "}
<a
href={binaryUrl}
onClick={handleDownload}
className="underline font-mono"
style={{ color: "var(--accent)" }}
>
{downloadName}
</a>
</span>
)}
</span>