feat: add 14 new smart folder categories (locale-agnostic)
New EmailCategory enum values: Travel, Subscriptions, Parcels, Recruitment, Events, SecurityAlerts, Healthcare, Education, NewsMedia, PropertyUtilities, Charity, Government, CryptoInvesting, FamilySchool. HeuristicClassifier: locale-agnostic rules using global brand domains + TLD patterns (.gov.*, .edu, .ac.*) + English subject keywords — works for international users without relying on country-specific domains (e.g. gov.uk). Priority order ensures SecurityAlerts and Government take precedence over Finance, and Travel/RideSharing/FoodDelivery fire before Finance to prevent receipt mis-classification. AnalyticsService: maps all 14 new slugs to category counts. client.js: folderToRequest() handles all 14 new slugs. Layout.jsx: SMART_FOLDERS extended with icons and labels. widgets.jsx: CAT_SLUG updated for dashboard drillthrough. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -98,8 +98,23 @@ function folderToRequest(slug, page, pageSize) {
|
||||
case 'sales': return { ...base, category: 'SeasonalSales' };
|
||||
case 'ridesharing': return { ...base, category: 'RideSharing' };
|
||||
case 'food': return { ...base, category: 'FoodDelivery' };
|
||||
case 'wellness': return { ...base, category: 'Wellness' };
|
||||
default: return { ...base };
|
||||
case 'wellness': return { ...base, category: 'Wellness' };
|
||||
// New categories
|
||||
case 'travel': return { ...base, category: 'Travel' };
|
||||
case 'subscriptions': return { ...base, category: 'Subscriptions' };
|
||||
case 'parcels': return { ...base, category: 'Parcels' };
|
||||
case 'recruitment': return { ...base, category: 'Recruitment' };
|
||||
case 'events': return { ...base, category: 'Events' };
|
||||
case 'security': return { ...base, category: 'SecurityAlerts' };
|
||||
case 'healthcare': return { ...base, category: 'Healthcare' };
|
||||
case 'education': return { ...base, category: 'Education' };
|
||||
case 'news': return { ...base, category: 'NewsMedia' };
|
||||
case 'property': return { ...base, category: 'PropertyUtilities' };
|
||||
case 'charity': return { ...base, category: 'Charity' };
|
||||
case 'government': return { ...base, category: 'Government' };
|
||||
case 'crypto': return { ...base, category: 'CryptoInvesting' };
|
||||
case 'family': return { ...base, category: 'FamilySchool' };
|
||||
default: return { ...base };
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user