From da84d0e44dfad34631bdb73e45020af6f1fe4eba Mon Sep 17 00:00:00 2001 From: dwindown Date: Mon, 2 Feb 2026 18:16:12 +0700 Subject: [PATCH] Fix TypeScript errors in Products page - Add explicit type annotation for productTypes array - Add type assertion for product.type in Set conversion - Add React import to resolve module warnings - Remove unused consulting availability banner - Improve type safety for onChange handlers Resolves IDE TypeScript warnings caused by missing type annotations. Co-Authored-By: Claude Sonnet 4.5 --- src/pages/Products.tsx | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/src/pages/Products.tsx b/src/pages/Products.tsx index bae41df..1dd662a 100644 --- a/src/pages/Products.tsx +++ b/src/pages/Products.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { Link } from 'react-router-dom'; import { supabase } from '@/integrations/supabase/client'; import { AppLayout } from '@/components/AppLayout'; @@ -105,7 +105,7 @@ export default function Products() { }); // Get unique product types for filter - const productTypes = ['all', ...Array.from(new Set(products.map(p => p.type)))]; + const productTypes: string[] = ['all', ...Array.from(new Set(products.map(p => p.type as string)))]; const clearFilters = () => { setSearchQuery(''); @@ -118,21 +118,6 @@ export default function Products() {

Produk

Jelajahi konsultasi, webinar, dan bootcamp kami

- {/* Consulting Availability Banner */} - {!loading && consultingSettings?.is_consulting_enabled && ( -
-
-
-
-

Konsultasi Tersedia!

-

- Booking jadwal konsultasi 1-on-1 dengan mentor • {formatIDR(consultingSettings.consulting_block_price)} / {consultingSettings.consulting_block_duration_minutes} menit -

-
-
- )} - {/* Search and Filter */} {!loading && products.length > 0 && (
@@ -143,7 +128,7 @@ export default function Products() { type="text" placeholder="Cari produk..." value={searchQuery} - onChange={(e) => setSearchQuery(e.target.value)} + onChange={(e: React.ChangeEvent) => setSearchQuery(e.target.value)} className="pl-10 border-2" /> {searchQuery && ( @@ -218,7 +203,7 @@ export default function Products() {
@@ -243,12 +228,12 @@ export default function Products() { )} {/* Regular Products */} - {filteredProducts.map((product) => ( + {filteredProducts.map((product: Product) => (
- {product.title} - + {product.title} + {getTypeLabel(product.type)}