fix redirect error

This commit is contained in:
nicwands
2026-06-01 11:49:10 -04:00
parent 6776a14757
commit a4cb4856d1
2 changed files with 67 additions and 56 deletions

View File

@@ -5,33 +5,41 @@ export const data = async (pageContext) => {
// Extract URL parameters safely
const { urlParsed } = pageContext
const searchParams = urlParsed?.search || {}
console.log('Preview route - pageContext keys:', Object.keys(pageContext))
console.log(
'Preview route - pageContext keys:',
Object.keys(pageContext),
)
console.log('Preview route - urlParsed:', urlParsed)
console.log('Preview route - searchParams:', searchParams)
const {
secret,
path = '/',
status = 'draft',
documentId,
uid
const {
secret,
path = '/',
status = 'draft',
documentId,
uid,
} = searchParams
// Validate preview secret
if (!secret || secret !== import.meta.env.VITE_PREVIEW_SECRET) {
console.log('Invalid secret:', secret, 'Expected:', import.meta.env.VITE_PREVIEW_SECRET)
console.log(
'Invalid secret:',
secret,
'Expected:',
import.meta.env.VITE_PREVIEW_SECRET,
)
throw redirect('/preview-unauthorized')
}
// Build the preview URL path (not full URL since we're redirecting within same origin)
const previewPath = path || '/'
const previewUrl = new URL(previewPath, 'http://localhost')
// Add preview parameters
previewUrl.searchParams.set('preview', 'true')
previewUrl.searchParams.set('status', status)
// Optional: include document metadata for advanced preview functionality
if (documentId) {
previewUrl.searchParams.set('documentId', documentId)
@@ -39,27 +47,26 @@ export const data = async (pageContext) => {
if (uid) {
previewUrl.searchParams.set('uid', uid)
}
const redirectUrl = previewUrl.pathname + previewUrl.search
console.log('Redirecting to:', redirectUrl)
// Use Vike's redirect
throw redirect(redirectUrl)
} catch (error) {
// If it's a redirect, let it pass through
if (error.redirectTo) {
if (error._isAbortError) {
throw error
}
console.error('Preview data error:', error)
// For debugging, let's not redirect on error, but show what went wrong
return {
redirectUrl: null,
error: error.message || 'Failed to process preview request',
pageContext: Object.keys(pageContext),
urlParsed: pageContext.urlParsed
urlParsed: pageContext.urlParsed,
}
}
}
}