#!/bin/zsh
echo "🎨 Applying UI polish across the app..."
BASE="src/app"
COMP="src/app/components"
mkdir -p "$COMP"
#############################################
# CategoryCard component
#############################################
cat > "$COMP/CategoryCard.js" << 'EOF'
export default function CategoryCard({ category }) {
return (
{category}
);
}
EOF
#############################################
# Patch ModelPage
#############################################
cat > "$BASE/model/[modelId]/page.js" << 'EOF'
import { getModel, getCompatibleParts } from "@/src/lib/ui/api";
import CategoryCard from "@/src/app/components/CategoryCard";
import PartCard from "@/src/app/components/PartCard";
export default async function ModelPage({ params }) {
const model = await getModel(params.modelId);
const parts = await getCompatibleParts(params.modelId);
if (!model) return Model not found
;
return (
{model.name}
{model.brand} • {model.scale}
Categories
{model.categories.map(cat => (
))}
Compatible Parts
{Array.isArray(parts) && parts.length ? (
parts.map(item =>
)
) : (
No compatible parts found.
)}
);
}
EOF
#############################################
# Patch PartPage
#############################################
cat > "$BASE/part/[partId]/page.js" << 'EOF'
import { getPart, getCompatibleModels } from "@/src/lib/ui/api";
import ModelCard from "@/src/app/components/ModelCard";
export default async function PartDetailPage({ params }) {
const part = await getPart(params.partId);
const models = await getCompatibleModels(params.partId);
if (!part) return Part not found
;
return (
{part.name}
Part ID: {part.id}
{part.universalFit && (
Universal Fit
)}
{part.upgrade && (
Upgrade Part
)}
Compatible Models
{Array.isArray(models) && models.length ? (
models.map(item =>
)
) : (
No compatible models found.
)}
);
}
EOF
#############################################
# Patch CategoryPage
#############################################
cat > "$BASE/category/[modelId]/[categoryName]/page.js" << 'EOF'
import { getModel, getCompatibleParts } from "@/src/lib/ui/api";
import PartCard from "@/src/app/components/PartCard";
export default async function CategoryPage({ params }) {
const model = await getModel(params.modelId);
const allParts = await getCompatibleParts(params.modelId);
if (!model) return Model not found
;
const parts = allParts.filter(
p => p.part.category === params.categoryName
);
return (
{params.categoryName} for {model.name}
← Back to model
{parts.length ? (
parts.map(p => (
))
) : (
No compatible parts in this category.
)}
);
}
EOF
echo "🎉 UI polish applied!"