From 4ec39d8618ae3abeadb1c8c878c74c25f9bbc52d Mon Sep 17 00:00:00 2001 From: Andymick Date: Sat, 18 Jul 2026 20:41:16 +0100 Subject: [PATCH] Fix: Remove function prop from client component Remove onSuccess callback from SyncRoyalMailButton since event handlers cannot be passed to client components from server components. The button already shows success/error messages, so the callback wasn't necessary. --- .claude/settings.local.json | 3 ++- src/app/admin/orders/[id]/page.tsx | 4 ---- src/components/SyncRoyalMailButton.tsx | 5 +---- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index dc90c12..8ab32a3 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -78,7 +78,8 @@ "Bash(git commit -m 'Improve: Cart clearing on success page with better state management *)", "Bash(git commit -m 'Feature: Add order tracking and shipping status updates *)", "Bash(git commit -m 'Feature: Royal Mail tracking integration \\(hybrid approach\\) *)", - "Bash(git commit -m 'Fix: Refresh page after updating order tracking details *)" + "Bash(git commit -m 'Fix: Refresh page after updating order tracking details *)", + "Bash(git commit -m 'Fix: Remove function prop from client component *)" ] } } diff --git a/src/app/admin/orders/[id]/page.tsx b/src/app/admin/orders/[id]/page.tsx index d0ec630..d377cd3 100644 --- a/src/app/admin/orders/[id]/page.tsx +++ b/src/app/admin/orders/[id]/page.tsx @@ -150,10 +150,6 @@ export default async function OrderDetailPage({ params }: { params: { id: string { - // In a real app, we'd refresh the page or update state - console.log('Tracking synced successfully'); - }} /> )} diff --git a/src/components/SyncRoyalMailButton.tsx b/src/components/SyncRoyalMailButton.tsx index d896a3c..9b977ef 100644 --- a/src/components/SyncRoyalMailButton.tsx +++ b/src/components/SyncRoyalMailButton.tsx @@ -5,10 +5,9 @@ import { useState } from 'react'; interface SyncRoyalMailButtonProps { orderId: string; trackingNumber?: string | null; - onSuccess?: () => void; } -export default function SyncRoyalMailButton({ orderId, trackingNumber, onSuccess }: SyncRoyalMailButtonProps) { +export default function SyncRoyalMailButton({ orderId, trackingNumber }: SyncRoyalMailButtonProps) { const [loading, setLoading] = useState(false); const [message, setMessage] = useState<{ type: 'success' | 'error'; text: string } | null>(null); @@ -37,8 +36,6 @@ export default function SyncRoyalMailButton({ orderId, trackingNumber, onSuccess type: 'success', text: `Tracking synced! Status: ${data.trackingData.status}`, }); - - onSuccess?.(); } catch (err) { setMessage({ type: 'error', text: 'Error syncing with Royal Mail' }); } finally {