Disable Submit for Approval button when admin is editing design

Added isAdminEditing prop to DesignCanvas. When true, the Submit for Approval
button is disabled (grayed out) since the admin should use the Send to Customer
for Review button instead. This is a safer approach than hiding the button.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Andymick
2026-07-18 18:27:00 +01:00
co-authored by Claude Haiku 4.5
parent 04f45c6e6b
commit a5f09e9f75
2 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -110,7 +110,7 @@ export default function EditDesignPage({ params }: { params: { id: string } }) {
</div> </div>
{/* Full Design Canvas */} {/* Full Design Canvas */}
<DesignCanvas product={design.product} /> <DesignCanvas product={design.product} isAdminEditing={true} />
</div> </div>
</div> </div>
); );
+3 -3
View File
@@ -487,7 +487,7 @@ function generateCurvePath(type: string, radius: number, reverse: boolean = fals
return path; return path;
} }
export default function DesignCanvas({ product }: { product: ProductDTO }) { export default function DesignCanvas({ product, isAdminEditing = false }: { product: ProductDTO; isAdminEditing?: boolean }) {
const [color, setColor] = useState(product.colors[0]); const [color, setColor] = useState(product.colors[0]);
const [size, setSize] = useState<string | null>(product.sizes[0] ?? null); const [size, setSize] = useState<string | null>(product.sizes[0] ?? null);
const [designWidthCm, setDesignWidthCm] = useState<number | null>(null); const [designWidthCm, setDesignWidthCm] = useState<number | null>(null);
@@ -1513,9 +1513,9 @@ export default function DesignCanvas({ product }: { product: ProductDTO }) {
) : ( ) : (
<button <button
onClick={handleSubmitForApproval} onClick={handleSubmitForApproval}
disabled={elementsFront.length === 0 && elementsBack.length === 0 || submittingForApproval || approvalStatus === 'PENDING'} disabled={isAdminEditing || elementsFront.length === 0 && elementsBack.length === 0 || submittingForApproval || approvalStatus === 'PENDING'}
className={`flex-1 px-6 py-3 text-sm font-medium transition-colors ${ className={`flex-1 px-6 py-3 text-sm font-medium transition-colors ${
elementsFront.length === 0 && elementsBack.length === 0 || submittingForApproval || approvalStatus === 'PENDING' isAdminEditing || elementsFront.length === 0 && elementsBack.length === 0 || submittingForApproval || approvalStatus === 'PENDING'
? 'bg-muted text-muted/50 cursor-not-allowed' ? 'bg-muted text-muted/50 cursor-not-allowed'
: 'bg-clay text-paper hover:bg-clay-dark' : 'bg-clay text-paper hover:bg-clay-dark'
}`} }`}