Fixed minor issues with the Archetypes
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user