diff --git a/apps/web/public/static/047ebf2c9a5c7c9d8521c2ea5e6140ff7732ef9e28a9f944e9bf3ca4.png b/apps/web/public/static/047ebf2c9a5c7c9d8521c2ea5e6140ff7732ef9e28a9f944e9bf3ca4.png new file mode 100644 index 0000000000..2b3ae6ba06 Binary files /dev/null and b/apps/web/public/static/047ebf2c9a5c7c9d8521c2ea5e6140ff7732ef9e28a9f944e9bf3ca4.png differ diff --git a/apps/web/public/static/1326bc48553a572c6756d9ee1b30a0dfdda26222fc2d2c872b14e609.gif b/apps/web/public/static/1326bc48553a572c6756d9ee1b30a0dfdda26222fc2d2c872b14e609.gif new file mode 100644 index 0000000000..ce145d9dcb Binary files /dev/null and b/apps/web/public/static/1326bc48553a572c6756d9ee1b30a0dfdda26222fc2d2c872b14e609.gif differ diff --git a/apps/web/public/static/27f983d0765289c19d10ee0b51c00c3c7665236a1a82406370d46e0a.gif b/apps/web/public/static/27f983d0765289c19d10ee0b51c00c3c7665236a1a82406370d46e0a.gif new file mode 100644 index 0000000000..58c3463e47 Binary files /dev/null and b/apps/web/public/static/27f983d0765289c19d10ee0b51c00c3c7665236a1a82406370d46e0a.gif differ diff --git a/apps/web/public/static/28516717d63e469cd98729ff46be6595711898bab3dc43302319a987.gif b/apps/web/public/static/28516717d63e469cd98729ff46be6595711898bab3dc43302319a987.gif new file mode 100644 index 0000000000..b8ef8ee12b Binary files /dev/null and b/apps/web/public/static/28516717d63e469cd98729ff46be6595711898bab3dc43302319a987.gif differ diff --git a/apps/web/public/static/6aa785ee927547ce9dd9d7b43e01eac948337fe57571443e87bc3a60.png b/apps/web/public/static/6aa785ee927547ce9dd9d7b43e01eac948337fe57571443e87bc3a60.png new file mode 100644 index 0000000000..018ea73da4 Binary files /dev/null and b/apps/web/public/static/6aa785ee927547ce9dd9d7b43e01eac948337fe57571443e87bc3a60.png differ diff --git a/apps/web/public/static/9288be57321c8772d04e05dbb69a22742372b3534442607a2d6a9998.gif b/apps/web/public/static/9288be57321c8772d04e05dbb69a22742372b3534442607a2d6a9998.gif new file mode 100644 index 0000000000..a421847567 Binary files /dev/null and b/apps/web/public/static/9288be57321c8772d04e05dbb69a22742372b3534442607a2d6a9998.gif differ diff --git a/apps/web/public/static/c820edeeba50006b531883903f5bb0b96bf523c9a6b3ce5868f03db5.gif b/apps/web/public/static/c820edeeba50006b531883903f5bb0b96bf523c9a6b3ce5868f03db5.gif new file mode 100644 index 0000000000..c4104b55e7 Binary files /dev/null and b/apps/web/public/static/c820edeeba50006b531883903f5bb0b96bf523c9a6b3ce5868f03db5.gif differ diff --git a/apps/web/public/static/e93536e1be97e3b5206d43bf0793fdef24e60044d174f0abdefebe08.gif b/apps/web/public/static/e93536e1be97e3b5206d43bf0793fdef24e60044d174f0abdefebe08.gif new file mode 100644 index 0000000000..1b02d6f468 Binary files /dev/null and b/apps/web/public/static/e93536e1be97e3b5206d43bf0793fdef24e60044d174f0abdefebe08.gif differ diff --git a/packages/templates/preloading.json b/packages/templates/preloading.json index ff0a52d0c2..4038c45099 100644 --- a/packages/templates/preloading.json +++ b/packages/templates/preloading.json @@ -6316,7 +6316,7 @@ "sys:flavour": "affine:image", "sys:children": [], "prop:type": "image", - "prop:sourceId": "https://cdn.affine.pro/27f983d0765289c19d10ee0b51c00c3c7665236a1a82406370d46e0a.gif", + "prop:sourceId": "/static/27f983d0765289c19d10ee0b51c00c3c7665236a1a82406370d46e0a.gif", "prop:caption": "", "prop:width": 0, "prop:height": 0 @@ -6326,7 +6326,7 @@ "sys:flavour": "affine:image", "sys:children": [], "prop:type": "image", - "prop:sourceId": "https://cdn.affine.pro/1326bc48553a572c6756d9ee1b30a0dfdda26222fc2d2c872b14e609.gif", + "prop:sourceId": "/static/1326bc48553a572c6756d9ee1b30a0dfdda26222fc2d2c872b14e609.gif", "prop:caption": "", "prop:width": 0, "prop:height": 0 @@ -6336,7 +6336,7 @@ "sys:flavour": "affine:image", "sys:children": [], "prop:type": "image", - "prop:sourceId": "https://cdn.affine.pro/28516717d63e469cd98729ff46be6595711898bab3dc43302319a987.gif", + "prop:sourceId": "/static/28516717d63e469cd98729ff46be6595711898bab3dc43302319a987.gif", "prop:caption": "", "prop:width": 0, "prop:height": 0 @@ -6346,7 +6346,7 @@ "sys:flavour": "affine:image", "sys:children": [], "prop:type": "image", - "prop:sourceId": "https://cdn.affine.pro/9288be57321c8772d04e05dbb69a22742372b3534442607a2d6a9998.gif", + "prop:sourceId": "/static/9288be57321c8772d04e05dbb69a22742372b3534442607a2d6a9998.gif", "prop:caption": "", "prop:width": 0, "prop:height": 0 @@ -6356,7 +6356,7 @@ "sys:flavour": "affine:image", "sys:children": [], "prop:type": "image", - "prop:sourceId": "https://cdn.affine.pro/c820edeeba50006b531883903f5bb0b96bf523c9a6b3ce5868f03db5.gif", + "prop:sourceId": "/static/c820edeeba50006b531883903f5bb0b96bf523c9a6b3ce5868f03db5.gif", "prop:caption": "", "prop:width": 0, "prop:height": 0 @@ -6366,7 +6366,7 @@ "sys:flavour": "affine:image", "sys:children": [], "prop:type": "image", - "prop:sourceId": "https://cdn.affine.pro/e93536e1be97e3b5206d43bf0793fdef24e60044d174f0abdefebe08.gif", + "prop:sourceId": "/static/e93536e1be97e3b5206d43bf0793fdef24e60044d174f0abdefebe08.gif", "prop:caption": "", "prop:width": 0, "prop:height": 0 @@ -6376,7 +6376,7 @@ "sys:flavour": "affine:image", "sys:children": [], "prop:type": "image", - "prop:sourceId": "https://cdn.affine.pro/047ebf2c9a5c7c9d8521c2ea5e6140ff7732ef9e28a9f944e9bf3ca4.png", + "prop:sourceId": "/static/047ebf2c9a5c7c9d8521c2ea5e6140ff7732ef9e28a9f944e9bf3ca4.png", "prop:caption": "", "prop:width": 0, "prop:height": 0 @@ -6386,7 +6386,7 @@ "sys:flavour": "affine:image", "sys:children": [], "prop:type": "image", - "prop:sourceId": "https://cdn.affine.pro/6aa785ee927547ce9dd9d7b43e01eac948337fe57571443e87bc3a60.png", + "prop:sourceId": "/static/6aa785ee927547ce9dd9d7b43e01eac948337fe57571443e87bc3a60.png", "prop:caption": "", "prop:width": 0, "prop:height": 0 diff --git a/packages/workspace/src/blob/local-static-storage.ts b/packages/workspace/src/blob/local-static-storage.ts new file mode 100644 index 0000000000..3fbebb8da6 --- /dev/null +++ b/packages/workspace/src/blob/local-static-storage.ts @@ -0,0 +1,26 @@ +import type { BlobStorage } from '@blocksuite/store'; + +export const createStaticStorage = (): BlobStorage => { + return { + crud: { + get: async (key: string) => { + if (key.startsWith('/static/')) { + const response = await fetch(key); + return response.blob(); + } + return null; + }, + set: async (key: string) => { + // ignore + return key; + }, + delete: async () => { + // ignore + }, + list: async () => { + // ignore + return []; + }, + }, + }; +}; diff --git a/packages/workspace/src/utils.ts b/packages/workspace/src/utils.ts index df190bb5a9..7c3cd01fde 100644 --- a/packages/workspace/src/utils.ts +++ b/packages/workspace/src/utils.ts @@ -15,6 +15,7 @@ import { createIndexeddbStorage, Workspace } from '@blocksuite/store'; import { rootStore } from '@toeverything/plugin-infra/manager'; import { rootWorkspacesMetadataAtom } from './atom'; +import { createStaticStorage } from './blob/local-static-storage'; import { createSQLiteStorage } from './blob/sqlite-blob-storage'; export function cleanupWorkspace(flavour: WorkspaceFlavour) { @@ -98,6 +99,7 @@ export function createEmptyBlockSuiteWorkspace( } providerCreators.push(...createLocalProviders()); } + blobStorages.push(createStaticStorage); const workspace = new Workspace({ id,