diff --git a/src/app.postcss b/src/app.postcss index f5df0bf3..8f63096c 100644 --- a/src/app.postcss +++ b/src/app.postcss @@ -1,4 +1,3 @@ -@import '@fortawesome/fontawesome-free/css/all.min.css'; @import '@fontsource-variable/recursive/crsv.css'; @tailwind base; diff --git a/src/lib/components/FontAwesome.svelte b/src/lib/components/FontAwesome.svelte new file mode 100644 index 00000000..5b4dd0fe --- /dev/null +++ b/src/lib/components/FontAwesome.svelte @@ -0,0 +1,54 @@ + + + + + +{#await lazyLoadFontAwesomeCSS then FontAwesomeCSS} + +{/await} diff --git a/src/lib/components/FontAwesomeCSS.svelte b/src/lib/components/FontAwesomeCSS.svelte new file mode 100644 index 00000000..36232d07 --- /dev/null +++ b/src/lib/components/FontAwesomeCSS.svelte @@ -0,0 +1,14 @@ + + diff --git a/src/lib/components/View.svelte b/src/lib/components/View.svelte index e0702f64..02ac0ebc 100644 --- a/src/lib/components/View.svelte +++ b/src/lib/components/View.svelte @@ -5,6 +5,7 @@ import { PanZoomState } from '$/util/panZoom'; import { inputStateStore, stateStore, updateCodeStore } from '$/util/state'; import { logEvent, saveStatistics } from '$/util/stats'; + import FontAwesome, { mayContainFontAwesome } from '$lib/components/FontAwesome.svelte'; import uniqueID from 'lodash-es/uniqueId'; import type { MermaidConfig } from 'mermaid'; import { mode } from 'mode-watcher'; @@ -23,6 +24,7 @@ let error = $state(false); let panZoom = true; let manualUpdate = true; + let waitForFontAwesomeToLoad: FontAwesome['waitForFontAwesomeToLoad'] | undefined = $state(); // Set up panZoom state observer to update the store when pan/zoom changes const setupPanZoomObserver = () => { @@ -65,6 +67,11 @@ config = state.mermaid; rough = state.rough; panZoom = state.panZoom ?? true; + + if (mayContainFontAwesome(code)) { + await waitForFontAwesomeToLoad?.(); + } + const scroll = view?.parentElement?.scrollTop; delete container.dataset.processed; const viewID = uniqueID('graph-'); @@ -136,6 +143,8 @@ }); + +