cleaned up product details page. added a link on builder to the selected product details page

This commit is contained in:
2025-12-22 17:31:04 -05:00
parent 061d737c6c
commit c01aabb003
2 changed files with 202 additions and 104 deletions
+31 -7
View File
@@ -735,7 +735,9 @@ export default function GunbuilderPage() {
const payload = JSON.stringify(build);
const encoded = window.btoa(payload);
const origin = window.location?.origin ?? "";
const url = `${origin}/builder/build?build=${encodeURIComponent(encoded)}`;
const url = `${origin}/builder/build?build=${encodeURIComponent(
encoded
)}`;
setShareUrl(url);
} catch {
setShareUrl("");
@@ -1024,7 +1026,9 @@ export default function GunbuilderPage() {
}}
disabled={selectedParts.length === 0}
className={`w-full sm:w-auto rounded-md border border-zinc-700 bg-zinc-900/50 px-3 py-2 text-sm font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 transition-colors ${
selectedParts.length === 0 ? "opacity-40 cursor-not-allowed" : ""
selectedParts.length === 0
? "opacity-40 cursor-not-allowed"
: ""
}`}
>
Clear Build
@@ -1212,8 +1216,9 @@ export default function GunbuilderPage() {
const selectedPartId = build[category.id];
const selectedPart = selectedPartId
? categoryParts.find((p) => p.id === selectedPartId) ??
parts.find((p) => p.id === selectedPartId)
? categoryParts.find(
(p) => p.id === selectedPartId
) ?? parts.find((p) => p.id === selectedPartId)
: undefined;
const hasParts = categoryParts.length > 0;
@@ -1232,7 +1237,24 @@ export default function GunbuilderPage() {
{selectedPart ? (
<>
<div className="text-[0.7rem] text-zinc-500 line-clamp-1">
{selectedPart.name}
<Link
href={`/parts/p/${encodeURIComponent(
platform
)}/${encodeURIComponent(
category.id
)}/${encodeURIComponent(
`${
selectedPart.id
}-${selectedPart.name
.toLowerCase()
.replace(/[^a-z0-9]+/g, "-")
.replace(/(^-|-$)/g, "")}`
)}`}
className="block text-[0.7rem] text-zinc-500 line-clamp-1 transition-colors hover:text-amber-300 hover:underline underline-offset-2"
title="View part details"
>
{selectedPart.name}
</Link>{" "}
</div>
{/* Overlap chips help explain conflicts / dependencies */}
@@ -1317,7 +1339,9 @@ export default function GunbuilderPage() {
</>
) : hasParts ? (
<Link
href={`/parts/p/${encodeURIComponent(platform)}/${encodeURIComponent(category.id)}`}
href={`/parts/p/${encodeURIComponent(
platform
)}/${encodeURIComponent(category.id)}`}
className="inline-flex items-center gap-1.5 whitespace-nowrap rounded-md border border-zinc-700 bg-zinc-900/70 px-3 py-1.5 text-xs font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 transition-colors"
>
<svg
@@ -1357,4 +1381,4 @@ export default function GunbuilderPage() {
</div>
</main>
);
}
}