fix: stabilize tldraw whiteboard assets
This commit is contained in:
@@ -416,6 +416,7 @@
|
||||
|
||||
.editor__blocknote-container .tldraw-whiteboard .tl-container {
|
||||
--color-background: var(--card);
|
||||
--tl-layer-menu-click-capture: 25;
|
||||
--tl-layer-panels: 30;
|
||||
--tl-layer-menus: 40;
|
||||
--tl-layer-toasts: 50;
|
||||
|
||||
@@ -17,6 +17,23 @@ const tldrawMock = vi.hoisted(() => ({
|
||||
Tldraw: vi.fn(),
|
||||
}))
|
||||
|
||||
const assetImportMock = vi.hoisted(() => ({
|
||||
getAssetUrlsByImport: vi.fn((formatAssetUrl: (assetUrl?: string) => string) => ({
|
||||
embedIcons: {},
|
||||
fonts: {
|
||||
tldraw_draw: formatAssetUrl('/assets/Shantell_Sans-Informal_Regular.woff2'),
|
||||
},
|
||||
icons: {
|
||||
'tool-pencil': `${formatAssetUrl('/assets/0_merged.svg')}#tool-pencil`,
|
||||
},
|
||||
translations: {
|
||||
en: formatAssetUrl(undefined),
|
||||
},
|
||||
})),
|
||||
}))
|
||||
|
||||
vi.mock('@tldraw/assets/imports.vite', () => assetImportMock)
|
||||
|
||||
vi.mock('tldraw', async () => {
|
||||
const { createElement } = await import('react')
|
||||
|
||||
@@ -65,7 +82,7 @@ function expectNoCdnUrls(urls: Record<string, string>) {
|
||||
function expectBundledTldrawAssetUrls(assetUrls: MockAssetUrls) {
|
||||
expect(assetUrls.fonts.tldraw_draw).toContain('Shantell_Sans-Informal_Regular.woff2')
|
||||
expect(assetUrls.icons['tool-pencil']).toContain('0_merged.svg#tool-pencil')
|
||||
expect(assetUrls.translations.en).toContain('en.json')
|
||||
expect(assetUrls.translations.en).toBe('data:application/json;base64,e30K')
|
||||
expectNoCdnUrls(assetUrls.fonts)
|
||||
expectNoCdnUrls(assetUrls.icons)
|
||||
expectNoCdnUrls(assetUrls.translations)
|
||||
@@ -85,6 +102,7 @@ describe('TldrawWhiteboard', () => {
|
||||
)
|
||||
|
||||
expect(screen.getByTestId('mock-tldraw')).toHaveAttribute('data-draw-font-url')
|
||||
expect(assetImportMock.getAssetUrlsByImport).toHaveBeenCalledWith(expect.any(Function))
|
||||
expectBundledTldrawAssetUrls(renderedTldrawAssetUrls())
|
||||
})
|
||||
})
|
||||
|
||||
@@ -12,7 +12,13 @@ import {
|
||||
} from 'tldraw'
|
||||
import 'tldraw/tldraw.css'
|
||||
|
||||
const tldrawAssetUrls = getAssetUrlsByImport()
|
||||
const EMPTY_TLDRAW_TRANSLATION_URL = 'data:application/json;base64,e30K'
|
||||
|
||||
function resolveTldrawAssetUrl(assetUrl: string | undefined): string {
|
||||
return assetUrl ?? EMPTY_TLDRAW_TRANSLATION_URL
|
||||
}
|
||||
|
||||
const tldrawAssetUrls = getAssetUrlsByImport(resolveTldrawAssetUrl)
|
||||
|
||||
interface TldrawWhiteboardProps {
|
||||
boardId: string
|
||||
|
||||
Reference in New Issue
Block a user