|
41 | 41 | let maxFileLoadingAttempts = 10;
|
42 | 42 | let fileLoadingTimer: number | null = null;
|
43 | 43 |
|
44 |
| - // Check for PDF URL parameter reactively |
| 44 | + // Redirect from /?pdf=URL to /pdf/URL for better URL structure |
45 | 45 | $: if (browser && $page && $page.url) {
|
46 | 46 | const pdfUrl = $page.url.searchParams.get('pdf');
|
47 |
| - if (pdfUrl && !currentFile) { |
48 |
| - console.log('[PDF URL] Found PDF parameter:', pdfUrl); |
49 |
| - handlePdfUrlLoad(pdfUrl); |
| 47 | + if (pdfUrl) { |
| 48 | + console.log('[PDF URL] Redirecting to new URL structure:', pdfUrl); |
| 49 | + const encodedUrl = encodeURIComponent(pdfUrl); |
| 50 | + goto(`/pdf/${encodedUrl}`); |
50 | 51 | }
|
51 | 52 | }
|
52 | 53 |
|
|
67 | 68 | return;
|
68 | 69 | }
|
69 | 70 |
|
70 |
| - console.log('Setting currentFile and hiding welcome'); |
71 |
| - currentFile = file; |
72 |
| - showWelcome = false; |
73 |
| -
|
74 |
| - // Set current PDF for auto-save functionality |
75 |
| - setCurrentPDF(file.name, file.size); |
76 |
| - console.log('Updated state:', { currentFile: !!currentFile, showWelcome }); |
| 71 | + console.log('Storing file and navigating to pdf-upload route'); |
| 72 | + // Store file in sessionStorage temporarily |
| 73 | + const fileReader = new FileReader(); |
| 74 | + fileReader.onload = (e) => { |
| 75 | + const arrayBuffer = e.target?.result as ArrayBuffer; |
| 76 | + const fileData = { |
| 77 | + name: file.name, |
| 78 | + size: file.size, |
| 79 | + type: file.type, |
| 80 | + data: Array.from(new Uint8Array(arrayBuffer)) // Convert to array for JSON storage |
| 81 | + }; |
| 82 | + sessionStorage.setItem('tempPdfFile', JSON.stringify(fileData)); |
| 83 | + console.log('File stored in sessionStorage, navigating...'); |
| 84 | + goto('/pdf-upload'); |
| 85 | + }; |
| 86 | + fileReader.readAsArrayBuffer(file); |
77 | 87 | }
|
78 | 88 |
|
79 | 89 | function isValidPdfUrl(url: string): boolean {
|
|
644 | 654 | return;
|
645 | 655 | }
|
646 | 656 |
|
647 |
| - // Navigate to the same page with the PDF parameter |
648 |
| - goto(`/?pdf=${encodeURIComponent(trimmedUrl)}`); |
| 657 | + // Navigate to the new PDF route structure |
| 658 | + goto(`/pdf/${encodeURIComponent(trimmedUrl)}`); |
649 | 659 | }
|
650 | 660 |
|
651 | 661 | function handleUrlCancel() {
|
|
670 | 680 | const blankPdfFile = await createBlankPDF();
|
671 | 681 | console.log('Blank PDF created:', blankPdfFile.name, blankPdfFile.size, 'bytes');
|
672 | 682 |
|
673 |
| - // Load the blank PDF just like a regular file |
674 |
| - currentFile = blankPdfFile; |
675 |
| - showWelcome = false; |
676 |
| - |
677 |
| - // Set current PDF for auto-save functionality |
678 |
| - setCurrentPDF(blankPdfFile.name, blankPdfFile.size); |
679 |
| - console.log('Blank PDF loaded successfully!'); |
| 683 | + console.log('Storing blank PDF and navigating to pdf-upload route'); |
| 684 | + // Store file in sessionStorage temporarily |
| 685 | + const arrayBuffer = await blankPdfFile.arrayBuffer(); |
| 686 | + const fileData = { |
| 687 | + name: blankPdfFile.name, |
| 688 | + size: blankPdfFile.size, |
| 689 | + type: blankPdfFile.type, |
| 690 | + data: Array.from(new Uint8Array(arrayBuffer)) |
| 691 | + }; |
| 692 | + sessionStorage.setItem('tempPdfFile', JSON.stringify(fileData)); |
| 693 | + console.log('Blank PDF stored in sessionStorage, navigating...'); |
| 694 | + goto('/pdf-upload'); |
680 | 695 | } catch (error) {
|
681 | 696 | console.error('Failed to create blank PDF:', error);
|
682 | 697 | alert('Failed to create blank PDF. Please try again.');
|
|
0 commit comments