From 983bc65f32f729628ce98e21aeadc04a8c5256ba Mon Sep 17 00:00:00 2001 From: Yousef Date: Thu, 18 Jul 2024 22:36:19 +0200 Subject: [PATCH] fix: emojimart import (#950) * fix emojimart import * fix --- .../SuggestionMenu/getDefaultEmojiPickerItems.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/core/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.ts b/packages/core/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.ts index fbd6ee7cf..e92e0cc26 100644 --- a/packages/core/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.ts +++ b/packages/core/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.ts @@ -1,5 +1,5 @@ import type { Emoji, EmojiMartData } from "@emoji-mart/data"; -import { SearchIndex, init } from "emoji-mart"; + import { checkDefaultInlineContentTypeInSchema } from "../../blocks/defaultBlockTypeGuards"; import { BlockNoteEditor } from "../../editor/BlockNoteEditor"; import { BlockSchema, InlineContentSchema, StyleSchema } from "../../schema"; @@ -11,6 +11,8 @@ let data: }> | undefined; +let emojiMart: typeof import("emoji-mart") | undefined; + export async function getDefaultEmojiPickerItems< BSchema extends BlockSchema, I extends InlineContentSchema, @@ -27,8 +29,11 @@ export async function getDefaultEmojiPickerItems< // use a dynamic import to encourage bundle-splitting // and a smaller initial client bundle size data = import("@emoji-mart/data", { assert: { type: "json" } }) as any; + + // load dynamically because emoji-mart doesn't specify type: module and breaks in nodejs + emojiMart = await import("emoji-mart"); const emojiMartData = (await data)!.default; - await init({ data: emojiMartData }); + await emojiMart.init({ data: emojiMartData }); } const emojiMartData = (await data)!.default; @@ -36,7 +41,7 @@ export async function getDefaultEmojiPickerItems< const emojisToShow = query.trim() === "" ? Object.values(emojiMartData.emojis) - : ((await SearchIndex.search(query)) as Emoji[]); + : ((await emojiMart!.SearchIndex.search(query)) as Emoji[]); return emojisToShow.map((emoji) => ({ id: emoji.skins[0].native,