mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-12 04:15:25 +00:00
feat: Dynamically load jspdf and html2canvas-pro to improve first-screen loading speed
This commit is contained in:
parent
980019bb50
commit
df433f852f
4 changed files with 20 additions and 12 deletions
|
|
@ -6,9 +6,6 @@
|
||||||
import fileSaver from 'file-saver';
|
import fileSaver from 'file-saver';
|
||||||
const { saveAs } = fileSaver;
|
const { saveAs } = fileSaver;
|
||||||
|
|
||||||
import jsPDF from 'jspdf';
|
|
||||||
import html2canvas from 'html2canvas-pro';
|
|
||||||
|
|
||||||
import { downloadChatAsPDF } from '$lib/apis/utils';
|
import { downloadChatAsPDF } from '$lib/apis/utils';
|
||||||
import { copyToClipboard, createMessagesList } from '$lib/utils';
|
import { copyToClipboard, createMessagesList } from '$lib/utils';
|
||||||
|
|
||||||
|
|
@ -75,6 +72,11 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
const downloadPdf = async () => {
|
const downloadPdf = async () => {
|
||||||
|
const [{ default: jsPDF }, { default: html2canvas }] = await Promise.all([
|
||||||
|
import('jspdf'),
|
||||||
|
import('html2canvas-pro')
|
||||||
|
]);
|
||||||
|
|
||||||
if ($settings?.stylizedPdfExport ?? true) {
|
if ($settings?.stylizedPdfExport ?? true) {
|
||||||
showFullMessages = true;
|
showFullMessages = true;
|
||||||
await tick();
|
await tick();
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,6 @@
|
||||||
import fileSaver from 'file-saver';
|
import fileSaver from 'file-saver';
|
||||||
const { saveAs } = fileSaver;
|
const { saveAs } = fileSaver;
|
||||||
|
|
||||||
import jsPDF from 'jspdf';
|
|
||||||
import html2canvas from 'html2canvas-pro';
|
|
||||||
|
|
||||||
const dispatch = createEventDispatcher();
|
const dispatch = createEventDispatcher();
|
||||||
|
|
||||||
import Dropdown from '$lib/components/common/Dropdown.svelte';
|
import Dropdown from '$lib/components/common/Dropdown.svelte';
|
||||||
|
|
@ -91,6 +88,11 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const [{ default: jsPDF }, { default: html2canvas }] = await Promise.all([
|
||||||
|
import('jspdf'),
|
||||||
|
import('html2canvas-pro')
|
||||||
|
]);
|
||||||
|
|
||||||
if ($settings?.stylizedPdfExport ?? true) {
|
if ($settings?.stylizedPdfExport ?? true) {
|
||||||
showFullMessages = true;
|
showFullMessages = true;
|
||||||
await tick();
|
await tick();
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,6 @@
|
||||||
import fileSaver from 'file-saver';
|
import fileSaver from 'file-saver';
|
||||||
const { saveAs } = fileSaver;
|
const { saveAs } = fileSaver;
|
||||||
|
|
||||||
import jsPDF from 'jspdf';
|
|
||||||
import html2canvas from 'html2canvas-pro';
|
|
||||||
|
|
||||||
const i18n = getContext('i18n');
|
const i18n = getContext('i18n');
|
||||||
|
|
||||||
import { marked } from 'marked';
|
import { marked } from 'marked';
|
||||||
|
|
@ -575,6 +572,11 @@ ${content}
|
||||||
|
|
||||||
const downloadPdf = async (note) => {
|
const downloadPdf = async (note) => {
|
||||||
try {
|
try {
|
||||||
|
const [{ default: jsPDF }, { default: html2canvas }] = await Promise.all([
|
||||||
|
import('jspdf'),
|
||||||
|
import('html2canvas-pro')
|
||||||
|
]);
|
||||||
|
|
||||||
// Define a fixed virtual screen size
|
// Define a fixed virtual screen size
|
||||||
const virtualWidth = 1024; // Fixed width (adjust as needed)
|
const virtualWidth = 1024; // Fixed width (adjust as needed)
|
||||||
const virtualHeight = 1400; // Fixed height (adjust as needed)
|
const virtualHeight = 1400; // Fixed height (adjust as needed)
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,6 @@
|
||||||
|
|
||||||
const { saveAs } = fileSaver;
|
const { saveAs } = fileSaver;
|
||||||
|
|
||||||
import jsPDF from 'jspdf';
|
|
||||||
import html2canvas from 'html2canvas-pro';
|
|
||||||
|
|
||||||
import dayjs from '$lib/dayjs';
|
import dayjs from '$lib/dayjs';
|
||||||
import duration from 'dayjs/plugin/duration';
|
import duration from 'dayjs/plugin/duration';
|
||||||
import relativeTime from 'dayjs/plugin/relativeTime';
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
||||||
|
|
@ -137,6 +134,11 @@
|
||||||
|
|
||||||
const downloadPdf = async (note) => {
|
const downloadPdf = async (note) => {
|
||||||
try {
|
try {
|
||||||
|
const [{ default: jsPDF }, { default: html2canvas }] = await Promise.all([
|
||||||
|
import('jspdf'),
|
||||||
|
import('html2canvas-pro')
|
||||||
|
]);
|
||||||
|
|
||||||
// Define a fixed virtual screen size
|
// Define a fixed virtual screen size
|
||||||
const virtualWidth = 1024; // Fixed width (adjust as needed)
|
const virtualWidth = 1024; // Fixed width (adjust as needed)
|
||||||
const virtualHeight = 1400; // Fixed height (adjust as needed)
|
const virtualHeight = 1400; // Fixed height (adjust as needed)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue