From 89b31fc9c3470d16d6bf6e6f3e8ab71d78937ed1 Mon Sep 17 00:00:00 2001 From: dwindown Date: Wed, 19 Nov 2025 22:00:15 +0700 Subject: [PATCH] fix: Product form TypeScript and API errors Fixed Issues: 1. TypeScript error on .indeterminate property (line 332) - Cast checkbox element to any for indeterminate access 2. API error handling for categories/tags endpoints - Added is_wp_error() checks - Return empty array on error instead of 500 Next: Implement modern tabbed product form (Shopify-style) --- admin-spa/src/routes/Products/index.tsx | 6 +++++- includes/Api/ProductsController.php | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/admin-spa/src/routes/Products/index.tsx b/admin-spa/src/routes/Products/index.tsx index 5f92ea9..4a0f165 100644 --- a/admin-spa/src/routes/Products/index.tsx +++ b/admin-spa/src/routes/Products/index.tsx @@ -329,7 +329,11 @@ export default function Products() { el && (el.indeterminate = someSelected && !allSelected)} + ref={(el) => { + if (el) { + (el as any).indeterminate = someSelected && !allSelected; + } + }} onCheckedChange={toggleAll} aria-label={__('Select all')} /> diff --git a/includes/Api/ProductsController.php b/includes/Api/ProductsController.php index 7febdcb..8f06279 100644 --- a/includes/Api/ProductsController.php +++ b/includes/Api/ProductsController.php @@ -347,6 +347,10 @@ class ProductsController { 'hide_empty' => false, ]); + if (is_wp_error($terms)) { + return new WP_REST_Response([], 200); // Return empty array on error + } + $categories = []; foreach ($terms as $term) { $categories[] = [ @@ -370,6 +374,10 @@ class ProductsController { 'hide_empty' => false, ]); + if (is_wp_error($terms)) { + return new WP_REST_Response([], 200); // Return empty array on error + } + $tags = []; foreach ($terms as $term) { $tags[] = [