attachments preview overlay, docx/xlsx/odf rendering, composer drag-drop & undo-send UX
Frontend: - Full-screen attachment preview overlay (AttachmentPreview) for image/pdf/txt plus office docs: .docx via docx-preview (rendered live into the sandboxed iframe so header/footer VML images survive), .xlsx via xlsx-preview, and .odt/.ods/.odp/.odg via a JSZip+DOMParser ODF walker (officeConvert). - Type-aware attachment icons (green spreadsheet, blue document, red PDF, image/archive); new document/image/spreadsheet/print SVGs. - Composer: drag-drop attachments (body drop inserts images inline, else attaches); inserted images are selectable/resizable/deletable (RichTextEditor). - Undo-send: "Sending…" banner with live "N seconds to Undo" countdown. - Search result list: pin/archive/delete update correctly; grey-out only for search hits; scoped "Search in Trash/Spam". Backend: - Search: prefix (search-as-you-type) matching, email-address search, and address-first result ordering; Trash/Junk excluded with scoped folder search. - Attachments: RFC 6266 Content-Disposition for non-ASCII filenames; one-time inline image loading. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rcj3TpydMTzTSmU7kunzf8
This commit is contained in:
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
// xlsx-preview ships types in dist/index.d.ts but doesn't declare them in
|
||||
// package.json, so TS can't find them. Minimal ambient declaration for the API
|
||||
// we use: xlsx2Html(ArrayBuffer|Blob|File) -> Promise<HTML string>.
|
||||
declare module "xlsx-preview" {
|
||||
export function xlsx2Html(
|
||||
data: ArrayBuffer | Blob | File,
|
||||
options?: Record<string, unknown>,
|
||||
): Promise<string | ArrayBuffer | string[]>;
|
||||
const _default: { xlsx2Html: typeof xlsx2Html };
|
||||
export default _default;
|
||||
}
|
||||
Reference in New Issue
Block a user