- Created demo emails with various states (inbox, sent, drafts, trash, etc.) in `emails.ts`. - Added demo file nodes representing directories and files in `files.ts`. - Implemented demo Sieve capabilities and scripts in `filters.ts`. - Defined demo identities for users in `identities.ts`. - Established demo mailboxes with permissions and counts in `mailboxes.ts`. - Created a demo vacation response in `vacation.ts`. - Introduced a comprehensive JMAP client interface in `client-interface.ts` to standardize interactions with the JMAP API.
95 lines
2.2 KiB
TypeScript
95 lines
2.2 KiB
TypeScript
import type { FileNode } from '@/lib/jmap/types';
|
|
import { demoDate } from '../demo-utils';
|
|
|
|
export function createDemoFileNodes(): FileNode[] {
|
|
return [
|
|
// Root-level directories
|
|
{
|
|
id: 'demo-file-documents',
|
|
parentId: null,
|
|
name: 'Documents',
|
|
type: 'd',
|
|
blobId: null,
|
|
size: 0,
|
|
created: demoDate(-30),
|
|
updated: demoDate(-2),
|
|
},
|
|
{
|
|
id: 'demo-file-photos',
|
|
parentId: null,
|
|
name: 'Photos',
|
|
type: 'd',
|
|
blobId: null,
|
|
size: 0,
|
|
created: demoDate(-30),
|
|
updated: demoDate(-5),
|
|
},
|
|
|
|
// Documents contents
|
|
{
|
|
id: 'demo-file-meeting-notes',
|
|
parentId: 'demo-file-documents',
|
|
name: 'meeting-notes.md',
|
|
type: 'text/markdown',
|
|
blobId: 'demo-blob-file-1',
|
|
size: 2150,
|
|
created: demoDate(-7),
|
|
updated: demoDate(-2),
|
|
},
|
|
{
|
|
id: 'demo-file-quarterly-report',
|
|
parentId: 'demo-file-documents',
|
|
name: 'quarterly-report.pdf',
|
|
type: 'application/pdf',
|
|
blobId: 'demo-blob-file-2',
|
|
size: 148480,
|
|
created: demoDate(-14),
|
|
updated: demoDate(-14),
|
|
},
|
|
{
|
|
id: 'demo-file-todo',
|
|
parentId: 'demo-file-documents',
|
|
name: 'todo.txt',
|
|
type: 'text/plain',
|
|
blobId: 'demo-blob-file-3',
|
|
size: 410,
|
|
created: demoDate(-3),
|
|
updated: demoDate(-1),
|
|
},
|
|
|
|
// Photos contents
|
|
{
|
|
id: 'demo-file-vacation',
|
|
parentId: 'demo-file-photos',
|
|
name: 'vacation.jpg',
|
|
type: 'image/jpeg',
|
|
blobId: 'demo-blob-file-4',
|
|
size: 1258291,
|
|
created: demoDate(-10),
|
|
updated: demoDate(-10),
|
|
},
|
|
{
|
|
id: 'demo-file-team-photo',
|
|
parentId: 'demo-file-photos',
|
|
name: 'team-photo.png',
|
|
type: 'image/png',
|
|
blobId: 'demo-blob-file-5',
|
|
size: 911360,
|
|
created: demoDate(-21),
|
|
updated: demoDate(-21),
|
|
},
|
|
|
|
// Root-level file
|
|
{
|
|
id: 'demo-file-budget',
|
|
parentId: null,
|
|
name: 'budget.xlsx',
|
|
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
blobId: 'demo-blob-file-6',
|
|
size: 68608,
|
|
created: demoDate(-5),
|
|
updated: demoDate(-1),
|
|
},
|
|
];
|
|
}
|