Files
GNX-mailEnterprise/frontend/node_modules/.cache/babel-loader/67495e40d1f9ab793bb36ff4c330ee7df05c083a6324ff6515a6749a1b859100.json
Iliyan Angelov c67067a2a4 Mail
2025-09-14 23:24:25 +03:00

1 line
44 KiB
JSON

{"ast":null,"code":"var _jsxFileName = \"/home/gnx/Desktop/gnx-mail/frontend/src/pages/Dashboard.js\",\n _s = $RefreshSig$();\nimport React from 'react';\nimport { useQuery } from 'react-query';\nimport { Mail, Inbox, Send, Star, Archive, Trash2, Plus, TrendingUp, Users, Clock } from 'lucide-react';\nimport { api, endpoints } from '../services/api';\nimport LoadingSpinner from '../components/LoadingSpinner';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst Dashboard = () => {\n _s();\n const {\n data: emailStats,\n isLoading: emailStatsLoading\n } = useQuery('emailStats', () => api.get(endpoints.emailStats).then(res => res.data));\n const {\n data: contactStats,\n isLoading: contactStatsLoading\n } = useQuery('contactStats', () => api.get(endpoints.contactStats).then(res => res.data));\n const {\n data: recentEmails,\n isLoading: recentEmailsLoading\n } = useQuery('recentEmails', () => api.get(`${endpoints.emails}?limit=5`).then(res => res.data.results));\n const stats = [{\n name: 'Total Emails',\n value: (emailStats === null || emailStats === void 0 ? void 0 : emailStats.total_emails) || 0,\n icon: Mail,\n color: 'bg-blue-500',\n change: '+12%',\n changeType: 'positive'\n }, {\n name: 'Unread Emails',\n value: (emailStats === null || emailStats === void 0 ? void 0 : emailStats.unread_emails) || 0,\n icon: Inbox,\n color: 'bg-red-500',\n change: '+3',\n changeType: 'negative'\n }, {\n name: 'Sent Emails',\n value: (emailStats === null || emailStats === void 0 ? void 0 : emailStats.sent_emails) || 0,\n icon: Send,\n color: 'bg-green-500',\n change: '+8%',\n changeType: 'positive'\n }, {\n name: 'Contacts',\n value: (contactStats === null || contactStats === void 0 ? void 0 : contactStats.total_contacts) || 0,\n icon: Users,\n color: 'bg-purple-500',\n change: '+2',\n changeType: 'positive'\n }];\n const quickActions = [{\n name: 'Compose Email',\n description: 'Write a new email',\n icon: Plus,\n href: '/compose',\n color: 'bg-primary-600 hover:bg-primary-700'\n }, {\n name: 'View Inbox',\n description: 'Check your messages',\n icon: Inbox,\n href: '/inbox',\n color: 'bg-blue-600 hover:bg-blue-700'\n }, {\n name: 'Manage Contacts',\n description: 'Organize your contacts',\n icon: Users,\n href: '/contacts',\n color: 'bg-green-600 hover:bg-green-700'\n }, {\n name: 'Settings',\n description: 'Configure your account',\n icon: Star,\n href: '/settings',\n color: 'bg-purple-600 hover:bg-purple-700'\n }];\n if (emailStatsLoading || contactStatsLoading) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center justify-center h-64\",\n children: /*#__PURE__*/_jsxDEV(LoadingSpinner, {\n size: \"lg\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-6\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"md:flex md:items-center md:justify-between\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-1 min-w-0\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"text-2xl font-bold leading-7 text-gray-900 sm:text-3xl sm:truncate\",\n children: \"Dashboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"mt-1 text-sm text-gray-500\",\n children: \"Welcome back! Here's what's happening with your email.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-4\",\n children: stats.map(stat => {\n const Icon = stat.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-body\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-shrink-0\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: `p-3 rounded-md ${stat.color}`,\n children: /*#__PURE__*/_jsxDEV(Icon, {\n className: \"h-6 w-6 text-white\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"ml-5 w-0 flex-1\",\n children: /*#__PURE__*/_jsxDEV(\"dl\", {\n children: [/*#__PURE__*/_jsxDEV(\"dt\", {\n className: \"text-sm font-medium text-gray-500 truncate\",\n children: stat.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 23\n }, this), /*#__PURE__*/_jsxDEV(\"dd\", {\n className: \"flex items-baseline\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-2xl font-semibold text-gray-900\",\n children: stat.value\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 25\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: `ml-2 flex items-baseline text-sm font-semibold ${stat.changeType === 'positive' ? 'text-green-600' : 'text-red-600'}`,\n children: [/*#__PURE__*/_jsxDEV(TrendingUp, {\n className: \"self-center flex-shrink-0 h-4 w-4\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 27\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"sr-only\",\n children: [stat.changeType === 'positive' ? 'Increased' : 'Decreased', \" by\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 27\n }, this), stat.change]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 23\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, stat.name, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"grid grid-cols-1 gap-6 lg:grid-cols-2\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-header\",\n children: /*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"Quick Actions\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-body\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"grid grid-cols-1 gap-4 sm:grid-cols-2\",\n children: quickActions.map(action => {\n const Icon = action.icon;\n return /*#__PURE__*/_jsxDEV(\"a\", {\n href: action.href,\n className: `relative rounded-lg border border-gray-300 bg-white px-6 py-5 shadow-sm flex items-center space-x-3 hover:shadow-md transition-shadow duration-200 ${action.color}`,\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-shrink-0\",\n children: /*#__PURE__*/_jsxDEV(Icon, {\n className: \"h-6 w-6 text-white\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-1 min-w-0\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n className: \"absolute inset-0\",\n \"aria-hidden\": \"true\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 23\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm font-medium text-white\",\n children: action.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 23\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm text-white opacity-90\",\n children: action.description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 23\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 21\n }, this)]\n }, action.name, true, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 19\n }, this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-header\",\n children: /*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"Recent Emails\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-body\",\n children: recentEmailsLoading ? /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center justify-center h-32\",\n children: /*#__PURE__*/_jsxDEV(LoadingSpinner, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 15\n }, this) : recentEmails && recentEmails.length > 0 ? /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-4\",\n children: recentEmails.map(email => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-start space-x-3\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-shrink-0\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-8 w-8 rounded-full bg-gray-300 flex items-center justify-center\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-sm font-medium text-gray-700\",\n children: email.from_email.charAt(0).toUpperCase()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-1 min-w-0\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm font-medium text-gray-900 truncate\",\n children: email.from_email\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 23\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm text-gray-500 truncate\",\n children: email.subject\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center mt-1 text-xs text-gray-400\",\n children: [/*#__PURE__*/_jsxDEV(Clock, {\n className: \"h-3 w-3 mr-1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 25\n }, this), new Date(email.created_at).toLocaleDateString()]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 23\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 21\n }, this), !email.is_read && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-shrink-0\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-2 w-2 rounded-full bg-blue-500\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 23\n }, this)]\n }, email.id, true, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 15\n }, this) : /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-center py-6\",\n children: [/*#__PURE__*/_jsxDEV(Mail, {\n className: \"mx-auto h-12 w-12 text-gray-400\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"mt-2 text-sm font-medium text-gray-900\",\n children: \"No emails\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"mt-1 text-sm text-gray-500\",\n children: \"You don't have any emails yet.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 7\n }, this), (emailStats === null || emailStats === void 0 ? void 0 : emailStats.folder_stats) && emailStats.folder_stats.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-header\",\n children: /*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"Folder Statistics\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-body\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3\",\n children: emailStats.folder_stats.map(folder => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center justify-between p-4 bg-gray-50 rounded-lg\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm font-medium text-gray-900\",\n children: folder.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm text-gray-500\",\n children: [folder.unread_count, \" unread of \", folder.email_count, \" total\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 21\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-right\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-lg font-semibold text-gray-900\",\n children: folder.email_count\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-sm text-gray-500\",\n children: \"emails\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 21\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 19\n }, this)]\n }, folder.name, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n};\n_s(Dashboard, \"pCjC1cA6DtPJ14HqM7L0vpUR9bo=\", false, function () {\n return [useQuery, useQuery, useQuery];\n});\n_c = Dashboard;\nexport default Dashboard;\nvar _c;\n$RefreshReg$(_c, \"Dashboard\");","map":{"version":3,"names":["React","useQuery","Mail","Inbox","Send","Star","Archive","Trash2","Plus","TrendingUp","Users","Clock","api","endpoints","LoadingSpinner","jsxDEV","_jsxDEV","Dashboard","_s","data","emailStats","isLoading","emailStatsLoading","get","then","res","contactStats","contactStatsLoading","recentEmails","recentEmailsLoading","emails","results","stats","name","value","total_emails","icon","color","change","changeType","unread_emails","sent_emails","total_contacts","quickActions","description","href","className","children","size","fileName","_jsxFileName","lineNumber","columnNumber","map","stat","Icon","action","length","email","from_email","charAt","toUpperCase","subject","Date","created_at","toLocaleDateString","is_read","id","folder_stats","folder","unread_count","email_count","_c","$RefreshReg$"],"sources":["/home/gnx/Desktop/gnx-mail/frontend/src/pages/Dashboard.js"],"sourcesContent":["import React from 'react';\nimport { useQuery } from 'react-query';\nimport { \n Mail, \n Inbox, \n Send, \n Star, \n Archive, \n Trash2, \n Plus,\n TrendingUp,\n Users,\n Clock\n} from 'lucide-react';\nimport { api, endpoints } from '../services/api';\nimport LoadingSpinner from '../components/LoadingSpinner';\n\nconst Dashboard = () => {\n const { data: emailStats, isLoading: emailStatsLoading } = useQuery(\n 'emailStats',\n () => api.get(endpoints.emailStats).then(res => res.data)\n );\n\n const { data: contactStats, isLoading: contactStatsLoading } = useQuery(\n 'contactStats',\n () => api.get(endpoints.contactStats).then(res => res.data)\n );\n\n const { data: recentEmails, isLoading: recentEmailsLoading } = useQuery(\n 'recentEmails',\n () => api.get(`${endpoints.emails}?limit=5`).then(res => res.data.results)\n );\n\n const stats = [\n {\n name: 'Total Emails',\n value: emailStats?.total_emails || 0,\n icon: Mail,\n color: 'bg-blue-500',\n change: '+12%',\n changeType: 'positive',\n },\n {\n name: 'Unread Emails',\n value: emailStats?.unread_emails || 0,\n icon: Inbox,\n color: 'bg-red-500',\n change: '+3',\n changeType: 'negative',\n },\n {\n name: 'Sent Emails',\n value: emailStats?.sent_emails || 0,\n icon: Send,\n color: 'bg-green-500',\n change: '+8%',\n changeType: 'positive',\n },\n {\n name: 'Contacts',\n value: contactStats?.total_contacts || 0,\n icon: Users,\n color: 'bg-purple-500',\n change: '+2',\n changeType: 'positive',\n },\n ];\n\n const quickActions = [\n {\n name: 'Compose Email',\n description: 'Write a new email',\n icon: Plus,\n href: '/compose',\n color: 'bg-primary-600 hover:bg-primary-700',\n },\n {\n name: 'View Inbox',\n description: 'Check your messages',\n icon: Inbox,\n href: '/inbox',\n color: 'bg-blue-600 hover:bg-blue-700',\n },\n {\n name: 'Manage Contacts',\n description: 'Organize your contacts',\n icon: Users,\n href: '/contacts',\n color: 'bg-green-600 hover:bg-green-700',\n },\n {\n name: 'Settings',\n description: 'Configure your account',\n icon: Star,\n href: '/settings',\n color: 'bg-purple-600 hover:bg-purple-700',\n },\n ];\n\n if (emailStatsLoading || contactStatsLoading) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <LoadingSpinner size=\"lg\" />\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6\">\n {/* Header */}\n <div className=\"md:flex md:items-center md:justify-between\">\n <div className=\"flex-1 min-w-0\">\n <h2 className=\"text-2xl font-bold leading-7 text-gray-900 sm:text-3xl sm:truncate\">\n Dashboard\n </h2>\n <p className=\"mt-1 text-sm text-gray-500\">\n Welcome back! Here's what's happening with your email.\n </p>\n </div>\n </div>\n\n {/* Stats */}\n <div className=\"grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-4\">\n {stats.map((stat) => {\n const Icon = stat.icon;\n return (\n <div key={stat.name} className=\"card\">\n <div className=\"card-body\">\n <div className=\"flex items-center\">\n <div className=\"flex-shrink-0\">\n <div className={`p-3 rounded-md ${stat.color}`}>\n <Icon className=\"h-6 w-6 text-white\" />\n </div>\n </div>\n <div className=\"ml-5 w-0 flex-1\">\n <dl>\n <dt className=\"text-sm font-medium text-gray-500 truncate\">\n {stat.name}\n </dt>\n <dd className=\"flex items-baseline\">\n <div className=\"text-2xl font-semibold text-gray-900\">\n {stat.value}\n </div>\n <div className={`ml-2 flex items-baseline text-sm font-semibold ${\n stat.changeType === 'positive' ? 'text-green-600' : 'text-red-600'\n }`}>\n <TrendingUp className=\"self-center flex-shrink-0 h-4 w-4\" />\n <span className=\"sr-only\">\n {stat.changeType === 'positive' ? 'Increased' : 'Decreased'} by\n </span>\n {stat.change}\n </div>\n </dd>\n </dl>\n </div>\n </div>\n </div>\n </div>\n );\n })}\n </div>\n\n <div className=\"grid grid-cols-1 gap-6 lg:grid-cols-2\">\n {/* Quick Actions */}\n <div className=\"card\">\n <div className=\"card-header\">\n <h3 className=\"text-lg font-medium text-gray-900\">Quick Actions</h3>\n </div>\n <div className=\"card-body\">\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2\">\n {quickActions.map((action) => {\n const Icon = action.icon;\n return (\n <a\n key={action.name}\n href={action.href}\n className={`relative rounded-lg border border-gray-300 bg-white px-6 py-5 shadow-sm flex items-center space-x-3 hover:shadow-md transition-shadow duration-200 ${action.color}`}\n >\n <div className=\"flex-shrink-0\">\n <Icon className=\"h-6 w-6 text-white\" />\n </div>\n <div className=\"flex-1 min-w-0\">\n <span className=\"absolute inset-0\" aria-hidden=\"true\" />\n <p className=\"text-sm font-medium text-white\">{action.name}</p>\n <p className=\"text-sm text-white opacity-90\">{action.description}</p>\n </div>\n </a>\n );\n })}\n </div>\n </div>\n </div>\n\n {/* Recent Emails */}\n <div className=\"card\">\n <div className=\"card-header\">\n <h3 className=\"text-lg font-medium text-gray-900\">Recent Emails</h3>\n </div>\n <div className=\"card-body\">\n {recentEmailsLoading ? (\n <div className=\"flex items-center justify-center h-32\">\n <LoadingSpinner />\n </div>\n ) : recentEmails && recentEmails.length > 0 ? (\n <div className=\"space-y-4\">\n {recentEmails.map((email) => (\n <div key={email.id} className=\"flex items-start space-x-3\">\n <div className=\"flex-shrink-0\">\n <div className=\"h-8 w-8 rounded-full bg-gray-300 flex items-center justify-center\">\n <span className=\"text-sm font-medium text-gray-700\">\n {email.from_email.charAt(0).toUpperCase()}\n </span>\n </div>\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-gray-900 truncate\">\n {email.from_email}\n </p>\n <p className=\"text-sm text-gray-500 truncate\">\n {email.subject}\n </p>\n <div className=\"flex items-center mt-1 text-xs text-gray-400\">\n <Clock className=\"h-3 w-3 mr-1\" />\n {new Date(email.created_at).toLocaleDateString()}\n </div>\n </div>\n {!email.is_read && (\n <div className=\"flex-shrink-0\">\n <div className=\"h-2 w-2 rounded-full bg-blue-500\"></div>\n </div>\n )}\n </div>\n ))}\n </div>\n ) : (\n <div className=\"text-center py-6\">\n <Mail className=\"mx-auto h-12 w-12 text-gray-400\" />\n <h3 className=\"mt-2 text-sm font-medium text-gray-900\">No emails</h3>\n <p className=\"mt-1 text-sm text-gray-500\">\n You don't have any emails yet.\n </p>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Folder Stats */}\n {emailStats?.folder_stats && emailStats.folder_stats.length > 0 && (\n <div className=\"card\">\n <div className=\"card-header\">\n <h3 className=\"text-lg font-medium text-gray-900\">Folder Statistics</h3>\n </div>\n <div className=\"card-body\">\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {emailStats.folder_stats.map((folder) => (\n <div key={folder.name} className=\"flex items-center justify-between p-4 bg-gray-50 rounded-lg\">\n <div>\n <p className=\"text-sm font-medium text-gray-900\">{folder.name}</p>\n <p className=\"text-sm text-gray-500\">\n {folder.unread_count} unread of {folder.email_count} total\n </p>\n </div>\n <div className=\"text-right\">\n <div className=\"text-lg font-semibold text-gray-900\">\n {folder.email_count}\n </div>\n <div className=\"text-sm text-gray-500\">emails</div>\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Dashboard;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}