Skip to content

Commit b0d597c

Browse files
fixes
1 parent 19a78d3 commit b0d597c

2 files changed

Lines changed: 22 additions & 10 deletions

File tree

version 2/src/pages/mailbox/index.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ interface EmailSummary {
1818
sender: string;
1919
subject: string;
2020
preview: string;
21-
created_at: string;
21+
received_at: string;
2222
is_read?: boolean;
2323
}
2424

2525
interface EmailDetail extends EmailSummary {
26-
text?: string;
27-
html?: string;
26+
content?: string;
27+
html_content?: string;
2828
to_addrs: string;
2929
download?: string;
3030
}
@@ -193,7 +193,7 @@ export default function Mailbox() {
193193
<div className="flex justify-between items-start mb-1">
194194
<span className="truncate w-2/3">{email.sender}</span>
195195
<span className="text-xs text-muted-foreground whitespace-nowrap">
196-
{formatDistanceToNow(new Date(email.created_at), { addSuffix: true })}
196+
{formatDistanceToNow(new Date(email.received_at), { addSuffix: true })}
197197
</span>
198198
</div>
199199
<div className="text-sm truncate mb-1">{email.subject}</div>
@@ -241,7 +241,7 @@ export default function Mailbox() {
241241
To: <span className="text-foreground select-text">{selectedEmail.to_addrs}</span>
242242
</div>
243243
<div className="text-xs text-muted-foreground">
244-
{new Date(selectedEmail.created_at).toLocaleString()}
244+
{new Date(selectedEmail.received_at).toLocaleString()}
245245
</div>
246246
</div>
247247
<div className="flex items-center gap-2">
@@ -262,10 +262,10 @@ export default function Mailbox() {
262262
</CardHeader>
263263
<CardContent className="flex-1 p-0 overflow-hidden relative">
264264
<div className="h-full w-full bg-white text-black p-4 overflow-auto select-text">
265-
{selectedEmail.html ? (
266-
<div dangerouslySetInnerHTML={{ __html: selectedEmail.html }} className="prose max-w-none" />
265+
{selectedEmail.html_content ? (
266+
<div dangerouslySetInnerHTML={{ __html: selectedEmail.html_content }} className="prose max-w-none" />
267267
) : (
268-
<pre className="whitespace-pre-wrap font-sans">{selectedEmail.text}</pre>
268+
<pre className="whitespace-pre-wrap font-sans">{selectedEmail.content}</pre>
269269
)}
270270
</div>
271271
</CardContent>

version 2/worker/src/assets/manager.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,17 +130,29 @@ export class AssetManager {
130130

131131
async handleIllegalPath(request, env, JWT_TOKEN) {
132132
const url = new URL(request.url);
133+
const pathname = url.pathname;
134+
135+
// SPA routes that should serve index.html
136+
const spaRoutes = ['/dashboard', '/mailbox', '/login', '/send'];
137+
const isSpaRoute = spaRoutes.some(route => pathname === route || pathname.startsWith(route + '/'));
138+
139+
if (isSpaRoute) {
140+
// Serve index.html for SPA routes
141+
const indexRequest = new Request(new URL('/', url).toString(), request);
142+
return env.ASSETS.fetch(indexRequest);
143+
}
144+
133145
const payload = await resolveAuthPayload(request, JWT_TOKEN);
134146

135147
if (payload !== false) {
136148
if (payload.role === 'mailbox') {
137-
return Response.redirect(new URL('/html/mailbox.html', url).toString(), 302);
149+
return Response.redirect(new URL('/mailbox', url).toString(), 302);
138150
} else {
139151
return Response.redirect(new URL('/', url).toString(), 302);
140152
}
141153
}
142154

143-
return Response.redirect(new URL('/templates/loading.html', url).toString(), 302);
155+
return Response.redirect(new URL('/login', url).toString(), 302);
144156
}
145157

146158
async checkProtectedPathAuth(request, JWT_TOKEN, url) {

0 commit comments

Comments
 (0)