build fix
This commit is contained in:
parent
fdddb44c4d
commit
a7f64bdabd
@ -1,7 +1,61 @@
|
|||||||
/**
|
import { useState } from 'react';
|
||||||
|
|
||||||
|
export type MailFolder = string;
|
||||||
|
|
||||||
|
export interface Email {
|
||||||
|
id: string;
|
||||||
|
accountId?: string;
|
||||||
|
folder?: string;
|
||||||
|
subject: string;
|
||||||
|
from: string;
|
||||||
|
to: string;
|
||||||
|
date: string;
|
||||||
|
flags: {
|
||||||
|
seen: boolean;
|
||||||
|
flagged: boolean;
|
||||||
|
answered: boolean;
|
||||||
|
draft: boolean;
|
||||||
|
};
|
||||||
|
body?: string;
|
||||||
|
bodyHtml?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EmailData {
|
||||||
|
to: string;
|
||||||
|
cc?: string;
|
||||||
|
bcc?: string;
|
||||||
|
subject: string;
|
||||||
|
body: string;
|
||||||
|
attachments?: Array<{
|
||||||
|
name: string;
|
||||||
|
content: string;
|
||||||
|
type: string;
|
||||||
|
}>;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hook for managing email operations
|
||||||
|
export const useCourrier = () => {
|
||||||
|
// State for email data
|
||||||
|
const [emails, setEmails] = useState<Email[]>([]);
|
||||||
|
const [selectedEmail, setSelectedEmail] = useState<Email | null>(null);
|
||||||
|
const [selectedEmailIds, setSelectedEmailIds] = useState<string[]>([]);
|
||||||
|
const [currentFolder, setCurrentFolder] = useState<MailFolder>('INBOX');
|
||||||
|
const [mailboxes, setMailboxes] = useState<string[]>([]);
|
||||||
|
|
||||||
|
// State for UI
|
||||||
|
const [isLoading, setIsLoading] = useState(false);
|
||||||
|
const [isSending, setIsSending] = useState(false);
|
||||||
|
const [isDeleting, setIsDeleting] = useState(false);
|
||||||
|
const [error, setError] = useState<string | null>(null);
|
||||||
|
const [searchQuery, setSearchQuery] = useState('');
|
||||||
|
const [page, setPage] = useState(1);
|
||||||
|
const [perPage, setPerPage] = useState(20);
|
||||||
|
const [totalPages, setTotalPages] = useState(0);
|
||||||
|
|
||||||
|
/**
|
||||||
* Change the current folder and load emails from that folder
|
* Change the current folder and load emails from that folder
|
||||||
*/
|
*/
|
||||||
const changeFolder = async (folder: string, accountId?: string) => {
|
const changeFolder = async (folder: string, accountId?: string) => {
|
||||||
console.log(`Changing folder to ${folder} for account ${accountId || 'default'}`);
|
console.log(`Changing folder to ${folder} for account ${accountId || 'default'}`);
|
||||||
try {
|
try {
|
||||||
// Reset selected email
|
// Reset selected email
|
||||||
@ -32,17 +86,17 @@ const changeFolder = async (folder: string, accountId?: string) => {
|
|||||||
} finally {
|
} finally {
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load emails for the current folder
|
* Load emails for the current folder
|
||||||
*/
|
*/
|
||||||
const loadEmails = async (
|
const loadEmails = async (
|
||||||
folderOverride?: string,
|
folderOverride?: string,
|
||||||
pageOverride?: number,
|
pageOverride?: number,
|
||||||
perPageOverride?: number,
|
perPageOverride?: number,
|
||||||
accountIdOverride?: string
|
accountIdOverride?: string
|
||||||
) => {
|
) => {
|
||||||
const folderToUse = folderOverride || currentFolder;
|
const folderToUse = folderOverride || currentFolder;
|
||||||
|
|
||||||
// Enhanced folder and account handling
|
// Enhanced folder and account handling
|
||||||
@ -133,4 +187,41 @@ const loadEmails = async (
|
|||||||
} finally {
|
} finally {
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
// State
|
||||||
|
emails,
|
||||||
|
selectedEmail,
|
||||||
|
selectedEmailIds,
|
||||||
|
currentFolder,
|
||||||
|
mailboxes,
|
||||||
|
isLoading,
|
||||||
|
isSending,
|
||||||
|
isDeleting,
|
||||||
|
error,
|
||||||
|
searchQuery,
|
||||||
|
page,
|
||||||
|
perPage,
|
||||||
|
totalPages,
|
||||||
|
|
||||||
|
// Actions
|
||||||
|
setEmails,
|
||||||
|
setSelectedEmail,
|
||||||
|
setSelectedEmailIds,
|
||||||
|
setCurrentFolder,
|
||||||
|
setMailboxes,
|
||||||
|
setIsLoading,
|
||||||
|
setIsSending,
|
||||||
|
setIsDeleting,
|
||||||
|
setError,
|
||||||
|
setSearchQuery,
|
||||||
|
setPage,
|
||||||
|
setPerPage,
|
||||||
|
setTotalPages,
|
||||||
|
|
||||||
|
// Methods
|
||||||
|
changeFolder,
|
||||||
|
loadEmails
|
||||||
|
};
|
||||||
};
|
};
|
||||||
Loading…
Reference in New Issue
Block a user