courrier multi account restore compose
This commit is contained in:
parent
793e6c738b
commit
df1570395d
@ -164,7 +164,6 @@ export default function CourrierPage() {
|
||||
|
||||
// Email accounts for the sidebar
|
||||
const [accounts, setAccounts] = useState<Account[]>([
|
||||
{ id: 'all-accounts', name: 'All', email: '', color: 'bg-gray-500', folders: [] },
|
||||
{ id: 'loading-account', name: 'Loading...', email: '', color: 'bg-blue-500', folders: [] }
|
||||
]);
|
||||
const [selectedAccount, setSelectedAccount] = useState<Account | null>(null);
|
||||
@ -222,7 +221,7 @@ export default function CourrierPage() {
|
||||
|
||||
// Initialize counts for all accounts and folders
|
||||
accounts.forEach(account => {
|
||||
if (account.id !== 'all-accounts' && account.id !== 'loading-account') {
|
||||
if (account.id !== 'loading-account') {
|
||||
const folderCounts = new Map<string, number>();
|
||||
account.folders.forEach(folder => {
|
||||
folderCounts.set(folder, 0);
|
||||
@ -247,7 +246,7 @@ export default function CourrierPage() {
|
||||
});
|
||||
|
||||
// Update the unread count for the selected account and folder
|
||||
if (selectedAccount && selectedAccount.id !== 'all-accounts') {
|
||||
if (selectedAccount && selectedAccount.id !== 'loading-account') {
|
||||
const folderCounts = accountFolderUnreadCounts.get(selectedAccount.id);
|
||||
if (folderCounts) {
|
||||
setUnreadCount(folderCounts.get(currentFolder) || 0);
|
||||
@ -255,7 +254,7 @@ export default function CourrierPage() {
|
||||
setUnreadCount(0);
|
||||
}
|
||||
} else {
|
||||
// For 'all-accounts', sum up all unread counts for the current folder
|
||||
// For 'loading-account', sum up all unread counts for the current folder
|
||||
let totalUnread = 0;
|
||||
accountFolderUnreadCounts.forEach((folderCounts: Map<string, number>) => {
|
||||
totalUnread += folderCounts.get(currentFolder) || 0;
|
||||
@ -280,7 +279,6 @@ export default function CourrierPage() {
|
||||
if (!accounts || accounts.length === 0) {
|
||||
console.warn('Accounts array is empty, restoring defaults');
|
||||
setAccounts([
|
||||
{ id: 'all-accounts', name: 'All', email: '', color: 'bg-gray-500', folders: mailboxes },
|
||||
{ id: 'loading-account', name: 'Loading...', email: '', color: 'bg-blue-500', folders: mailboxes }
|
||||
]);
|
||||
}
|
||||
@ -363,7 +361,7 @@ export default function CourrierPage() {
|
||||
console.log('Session initialized, prefetch status:', data.prefetchStarted ? 'running' : 'not started');
|
||||
setPrefetchStarted(Boolean(data.prefetchStarted));
|
||||
|
||||
let updatedAccounts: Account[] = [{ id: 'all-accounts', name: 'All', email: '', color: 'bg-gray-500', folders: [] }];
|
||||
let updatedAccounts: Account[] = [];
|
||||
|
||||
// Check if we have multiple accounts returned
|
||||
if (data.allAccounts && Array.isArray(data.allAccounts) && data.allAccounts.length > 0) {
|
||||
@ -595,7 +593,7 @@ export default function CourrierPage() {
|
||||
|
||||
// Update handleMailboxChange to properly handle per-account folders
|
||||
const handleMailboxChange = (folder: string, accountId?: string) => {
|
||||
if (accountId && accountId !== 'all-accounts') {
|
||||
if (accountId && accountId !== 'loading-account') {
|
||||
const account = accounts.find(a => a.id === accountId);
|
||||
|
||||
if (!account) {
|
||||
@ -728,7 +726,7 @@ export default function CourrierPage() {
|
||||
const handleAccountSelect = (account: Account) => {
|
||||
setSelectedAccount(account);
|
||||
setShowFolders(true);
|
||||
if (account.id !== 'all-accounts') {
|
||||
if (account.id !== 'loading-account') {
|
||||
setExpandedAccounts(prev => ({
|
||||
...prev,
|
||||
[account.id]: true
|
||||
@ -1049,7 +1047,7 @@ export default function CourrierPage() {
|
||||
<div className={`w-3 h-3 rounded-full ${account.color?.startsWith('#') ? 'bg-blue-500' : account.color || 'bg-blue-500'} mr-2`}></div>
|
||||
<span className="truncate text-gray-700 flex-1">{account.name}</span>
|
||||
{/* More options button */}
|
||||
{account.id !== 'all-accounts' && (
|
||||
{account.id !== 'loading-account' && (
|
||||
<DropdownMenu>
|
||||
<DropdownMenuTrigger asChild>
|
||||
<button type="button" className="ml-1 h-5 w-5 p-0 text-gray-400 hover:text-gray-600 flex items-center justify-center" onClick={e => e.stopPropagation()}>
|
||||
@ -1062,7 +1060,7 @@ export default function CourrierPage() {
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
)}
|
||||
{account.id !== 'all-accounts' && (
|
||||
{account.id !== 'loading-account' && (
|
||||
<button
|
||||
type="button"
|
||||
className="ml-1 text-gray-400 hover:text-gray-600 cursor-pointer flex items-center justify-center h-5 w-5"
|
||||
@ -1077,7 +1075,7 @@ export default function CourrierPage() {
|
||||
{(() => {
|
||||
const isExpanded = expandedAccounts[account.id];
|
||||
const hasFolders = account.folders && account.folders.length > 0;
|
||||
return isExpanded && account.id !== 'all-accounts' && hasFolders && (
|
||||
return isExpanded && account.id !== 'loading-account' && hasFolders && (
|
||||
<div className="pl-4">
|
||||
{account.folders.map((folder) => renderFolderButton(folder, account.id))}
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user