diff --git a/apps/admin/src/components/Sidebar.tsx b/apps/admin/src/components/Sidebar.tsx index 72ab07a..4ed9e12 100644 --- a/apps/admin/src/components/Sidebar.tsx +++ b/apps/admin/src/components/Sidebar.tsx @@ -36,8 +36,6 @@ import { FileJson, FolderArchive, Map, - Calendar, - Clock, Target, } from 'lucide-react' diff --git a/apps/admin/src/pages/analytics/RepeatCustomerDetailPage.tsx b/apps/admin/src/pages/analytics/RepeatCustomerDetailPage.tsx index be37e5d..122c6c2 100644 --- a/apps/admin/src/pages/analytics/RepeatCustomerDetailPage.tsx +++ b/apps/admin/src/pages/analytics/RepeatCustomerDetailPage.tsx @@ -7,13 +7,9 @@ import { Calendar, MapPin, RefreshCw, - Clock, DollarSign, - Tag, Truck, Store, - ChevronRight, - UserCheck, ExternalLink, } from 'lucide-react'; import { API_BASE } from '@homaroma/types'; diff --git a/apps/admin/src/pages/analytics/RepeatCustomersActionPlanPage.tsx b/apps/admin/src/pages/analytics/RepeatCustomersActionPlanPage.tsx index 1a8db49..145b7cf 100644 --- a/apps/admin/src/pages/analytics/RepeatCustomersActionPlanPage.tsx +++ b/apps/admin/src/pages/analytics/RepeatCustomersActionPlanPage.tsx @@ -2,8 +2,6 @@ import { useState, useEffect, useCallback, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; import { Target, - Sparkles, - AlertCircle, AlertTriangle, CheckCircle2, Users, @@ -15,12 +13,10 @@ import { ChevronLeft, ChevronRight, ExternalLink, - MessageSquare, Gift, Flame, Crown, Tag, - Clock, Zap, } from 'lucide-react'; import { useTranslation } from 'react-i18next'; @@ -534,7 +530,8 @@ export default function RepeatCustomersActionPlanPage() { const rows = filteredCustomers.map((c) => { const action = getActionRecommendation(c); - const crmStatus = crmStatusMap[c.id] || 'pending'; + const mapKey = `${c.primaryChannel}:${c.identifier?.toLowerCase()}`; + const crmStatus = crmImportedMap[mapKey]?.status || localCrmStatusMap[c.id] || 'pending'; return [ `"${c.identifier || ''}"`, `"${c.displayName || ''}"`, diff --git a/apps/admin/src/pages/crm/MarketplaceCrmPage.tsx b/apps/admin/src/pages/crm/MarketplaceCrmPage.tsx index c677f26..118b075 100644 --- a/apps/admin/src/pages/crm/MarketplaceCrmPage.tsx +++ b/apps/admin/src/pages/crm/MarketplaceCrmPage.tsx @@ -1,18 +1,12 @@ -import { useState, useEffect, useCallback, useMemo } from 'react'; +import { useState, useEffect, useCallback } from 'react'; import { useNavigate } from 'react-router-dom'; import { Users, Search, RefreshCw, - PhoneCall, MessageSquare, CheckCircle2, Clock, - AlertCircle, - Tag, - Gift, - Flame, - Crown, ChevronLeft, ChevronRight, ExternalLink, @@ -21,7 +15,6 @@ import { X, History, TrendingUp, - DollarSign, Sparkles, } from 'lucide-react'; import { useTranslation } from 'react-i18next'; @@ -76,11 +69,11 @@ export default function MarketplaceCrmPage() { const [channel, setChannel] = useState('all'); const [statusFilter, setStatusFilter] = useState('all'); - const [strategyFilter, setStrategyFilter] = useState('all'); + const [strategyFilter] = useState('all'); const [search, setSearch] = useState(''); const [debouncedSearch, setDebouncedSearch] = useState(''); const [page, setPage] = useState(1); - const [limit, setLimit] = useState(20); + const [limit] = useState(20); const [loading, setLoading] = useState(true); const [customers, setCustomers] = useState([]); @@ -284,40 +277,6 @@ export default function MarketplaceCrmPage() { return Lazada; }; - const getStatusBadge = (status: string) => { - switch (status) { - case 'converted': - return ( - - - ซื้อซ้ำสำเร็จ - - ); - case 'contacted': - return ( - - - ส่งโปรแล้ว - - ); - case 'unresponsive': - return ( - - - ไม่สนใจ/ไม่ตอบ - - ); - case 'pending': - default: - return ( - - - รอดำเนินการ - - ); - } - }; - const getStrategyBadge = (type: string) => { switch (type) { case 'due_restock': diff --git a/apps/admin/src/pages/crm/MarketplaceCustomerDetailPage.tsx b/apps/admin/src/pages/crm/MarketplaceCustomerDetailPage.tsx index d4d02e1..ed56fcc 100644 --- a/apps/admin/src/pages/crm/MarketplaceCustomerDetailPage.tsx +++ b/apps/admin/src/pages/crm/MarketplaceCustomerDetailPage.tsx @@ -1,33 +1,20 @@ import { useEffect, useState, useCallback } from 'react'; -import { useParams, useNavigate, useSearchParams } from 'react-router-dom'; +import { useParams, useNavigate } from 'react-router-dom'; import { ArrowLeft, - Users, ShoppingBag, - Clock, - Calendar, - DollarSign, - Tag, - CheckCircle2, AlertCircle, - MessageSquare, History, - PhoneCall, Save, ExternalLink, - ChevronRight, - Flame, - Crown, - Gift, Zap, MapPin, RefreshCw, Copy, Check, - Package, } from 'lucide-react'; import { API_BASE } from '@homaroma/types'; -import { fmtBaht, fmtNum } from '../../utils/thaiGeoUtils'; +import { fmtBaht } from '../../utils/thaiGeoUtils'; interface OrderItem { name: string; @@ -51,7 +38,6 @@ interface OrderHistory { export default function MarketplaceCustomerDetailPage() { const { id } = useParams<{ id: string }>(); - const [searchParams] = useSearchParams(); const navigate = useNavigate(); const [loading, setLoading] = useState(true);