Fix consulting order detail to show slots and QR code
Fixed isConsultingOrder detection: - Now checks consultingSlots.length > 0 instead of only checking order_items - Consulting orders don't have order_items, only consulting_slots Always fetch consulting slots: - Removed conditional check that only fetched slots for consulting products - Now always queries consulting_slots table for any order - This ensures consulting booking info displays correctly 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -68,8 +68,8 @@ export default function OrderDetail() {
|
|||||||
? new Date(order.qr_expires_at) < new Date()
|
? new Date(order.qr_expires_at) < new Date()
|
||||||
: false;
|
: false;
|
||||||
|
|
||||||
// Check if this is a consulting order
|
// Check if this is a consulting order (has consulting_slots OR order_items with consulting type)
|
||||||
const isConsultingOrder = order?.order_items?.some(
|
const isConsultingOrder = consultingSlots.length > 0 || order?.order_items?.some(
|
||||||
(item: OrderItem) => item.products.type === "consulting"
|
(item: OrderItem) => item.products.type === "consulting"
|
||||||
) || false;
|
) || false;
|
||||||
|
|
||||||
@@ -123,23 +123,17 @@ export default function OrderDetail() {
|
|||||||
} else {
|
} else {
|
||||||
setOrder(data);
|
setOrder(data);
|
||||||
|
|
||||||
// Fetch consulting slots if this is a consulting order
|
// Always fetch consulting slots for this order (consulting orders don't have order_items)
|
||||||
const hasConsultingProduct = data.order_items.some(
|
|
||||||
(item: OrderItem) => item.products.type === "consulting"
|
|
||||||
);
|
|
||||||
|
|
||||||
if (hasConsultingProduct) {
|
|
||||||
const { data: slots } = await supabase
|
const { data: slots } = await supabase
|
||||||
.from("consulting_slots")
|
.from("consulting_slots")
|
||||||
.select("*")
|
.select("*")
|
||||||
.eq("order_id", id)
|
.eq("order_id", id)
|
||||||
.order("date", { ascending: true });
|
.order("date", { ascending: true });
|
||||||
|
|
||||||
if (slots) {
|
if (slots && slots.length > 0) {
|
||||||
setConsultingSlots(slots as ConsultingSlot[]);
|
setConsultingSlots(slots as ConsultingSlot[]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user