Skip to content

Commit ed28a34

Browse files
committed
⬆️(dependencies) bump blocknote to 0.44.2
We bump the blocknote dependencies to version 0.44.2 to incorporate the latest features and bug fixes. It seems to fix an issue with Titap, when the text was selected and the user clicked on the Go Back button of the browser, the application was crashing. "[tiptap error]: The editor view is not available. Cannot access view['dom']. The editor may not be mounted yet."
1 parent 35be4be commit ed28a34

File tree

9 files changed

+148
-97
lines changed

9 files changed

+148
-97
lines changed

src/frontend/apps/impress/package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
},
2020
"dependencies": {
2121
"@ag-media/react-pdf-table": "2.0.3",
22-
"@blocknote/code-block": "0.42.3",
23-
"@blocknote/core": "0.42.3",
24-
"@blocknote/mantine": "0.42.3",
25-
"@blocknote/react": "0.42.3",
26-
"@blocknote/xl-docx-exporter": "0.42.3",
27-
"@blocknote/xl-multi-column": "0.42.3",
28-
"@blocknote/xl-odt-exporter": "0.42.3",
29-
"@blocknote/xl-pdf-exporter": "0.42.3",
22+
"@blocknote/code-block": "0.44.2",
23+
"@blocknote/core": "0.44.2",
24+
"@blocknote/mantine": "0.44.2",
25+
"@blocknote/react": "0.44.2",
26+
"@blocknote/xl-docx-exporter": "0.44.2",
27+
"@blocknote/xl-multi-column": "0.44.2",
28+
"@blocknote/xl-odt-exporter": "0.44.2",
29+
"@blocknote/xl-pdf-exporter": "0.44.2",
3030
"@dnd-kit/core": "6.3.1",
3131
"@dnd-kit/modifiers": "9.0.0",
3232
"@emoji-mart/data": "1.2.1",

src/frontend/apps/impress/src/features/docs/doc-editor/components/BlockNoteEditor.tsx

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
defaultInlineContentSpecs,
77
withPageBreak,
88
} from '@blocknote/core';
9+
import { CommentsExtension } from '@blocknote/core/comments';
910
import '@blocknote/core/fonts/inter.css';
1011
import * as locales from '@blocknote/core/locales';
1112
import { BlockNoteView } from '@blocknote/mantine';
@@ -101,7 +102,11 @@ export const BlockNoteEditor = ({ doc, provider }: BlockNoteEditorProps) => {
101102
const cursorName = collabName || t('Anonymous');
102103
const showCursorLabels: 'always' | 'activity' | (string & {}) = 'activity';
103104

104-
const threadStore = useComments(doc.id, canSeeComment, user);
105+
const { resolveUsers, threadStore } = useComments(
106+
doc.id,
107+
canSeeComment,
108+
user,
109+
);
105110

106111
const currentUserAvatarUrl = useMemo(() => {
107112
if (canSeeComment) {
@@ -162,22 +167,7 @@ export const BlockNoteEditor = ({ doc, provider }: BlockNoteEditorProps) => {
162167
multi_column:
163168
multiColumnLocales?.[lang as keyof typeof multiColumnLocales],
164169
},
165-
resolveUsers: async (userIds) => {
166-
return Promise.resolve(
167-
userIds.map((encodedURIUserId) => {
168-
const fullName = decodeURIComponent(encodedURIUserId);
169-
170-
return {
171-
id: encodedURIUserId,
172-
username: fullName || t('Anonymous'),
173-
avatarUrl: avatarUrlFromName(
174-
fullName,
175-
themeTokens?.font?.families?.base,
176-
),
177-
};
178-
}),
179-
);
180-
},
170+
extensions: [CommentsExtension({ threadStore, resolveUsers })],
181171
tables: {
182172
splitCells: true,
183173
cellBackgroundColor: true,
@@ -187,7 +177,7 @@ export const BlockNoteEditor = ({ doc, provider }: BlockNoteEditorProps) => {
187177
uploadFile,
188178
schema: blockNoteSchema,
189179
},
190-
[cursorName, lang, provider, uploadFile, threadStore],
180+
[cursorName, lang, provider, uploadFile, threadStore, resolveUsers],
191181
);
192182

193183
useHeadings(editor);

src/frontend/apps/impress/src/features/docs/doc-editor/components/BlockNoteSuggestionMenu.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { combineByGroup, filterSuggestionItems } from '@blocknote/core';
1+
import { combineByGroup } from '@blocknote/core';
2+
import { filterSuggestionItems } from '@blocknote/core/extensions';
23
import {
34
DefaultReactSuggestionItem,
45
SuggestionMenuController,

src/frontend/apps/impress/src/features/docs/doc-editor/components/comments/CommentToolbarButton.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
* https://github.com/TypeCellOS/BlockNote/blob/main/packages/react/src/components/FormattingToolbar/DefaultButtons/AddCommentButton.tsx
44
*/
55

6+
import { CommentsExtension } from '@blocknote/core/comments';
7+
import { FormattingToolbarExtension } from '@blocknote/core/extensions';
68
import {
79
useBlockNoteEditor,
810
useComponentsContext,
11+
useExtension,
912
useSelectedBlocks,
1013
} from '@blocknote/react';
1114
import { useMemo } from 'react';
@@ -29,6 +32,10 @@ export const CommentToolbarButton = () => {
2932
const { t } = useTranslation();
3033
const { spacingsTokens, colorsTokens } = useCunninghamTheme();
3134
const { isDesktop } = useResponsiveStore();
35+
const comments = useExtension('comments') as unknown as ReturnType<
36+
ReturnType<typeof CommentsExtension>
37+
>;
38+
const { store } = useExtension(FormattingToolbarExtension);
3239

3340
const editor = useBlockNoteEditor<
3441
DocsBlockSchema,
@@ -53,6 +60,7 @@ export const CommentToolbarButton = () => {
5360
};
5461

5562
if (
63+
!comments ||
5664
!isDesktop ||
5765
!show ||
5866
!editor.isEditable ||
@@ -67,8 +75,8 @@ export const CommentToolbarButton = () => {
6775
<Components.Generic.Toolbar.Button
6876
className="bn-button"
6977
onClick={() => {
70-
editor.comments?.startPendingComment();
71-
editor.formattingToolbar.closeMenu();
78+
comments.startPendingComment();
79+
store.setState(false);
7280
focusOnInputThread();
7381
}}
7482
aria-haspopup="dialog"

src/frontend/apps/impress/src/features/docs/doc-editor/components/comments/useComments.ts

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
import { useEffect, useMemo } from 'react';
1+
import { useCallback, useEffect, useMemo } from 'react';
2+
import { useTranslation } from 'react-i18next';
23

3-
import { User } from '@/features/auth';
4+
import { useCunninghamTheme } from '@/cunningham';
5+
import { User, avatarUrlFromName } from '@/features/auth';
46
import { Doc, useProviderStore } from '@/features/docs/doc-management';
57

68
import { DocsThreadStore } from './DocsThreadStore';
@@ -12,6 +14,9 @@ export function useComments(
1214
user: User | null | undefined,
1315
) {
1416
const { provider } = useProviderStore();
17+
const { t } = useTranslation();
18+
const { themeTokens } = useCunninghamTheme();
19+
1520
const threadStore = useMemo(() => {
1621
return new DocsThreadStore(
1722
docId,
@@ -29,5 +34,25 @@ export function useComments(
2934
};
3035
}, [threadStore]);
3136

32-
return threadStore;
37+
const resolveUsers = useCallback(
38+
async (userIds: string[]) => {
39+
return Promise.resolve(
40+
userIds.map((encodedURIUserId) => {
41+
const fullName = decodeURIComponent(encodedURIUserId);
42+
43+
return {
44+
id: encodedURIUserId,
45+
username: fullName || t('Anonymous'),
46+
avatarUrl: avatarUrlFromName(
47+
fullName,
48+
themeTokens?.font?.families?.base,
49+
),
50+
};
51+
}),
52+
);
53+
},
54+
[t, themeTokens?.font?.families?.base],
55+
);
56+
57+
return { threadStore, resolveUsers };
3358
}

src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-blocks/CalloutBlock.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import {
55
InlineContentSchema,
66
StyleSchema,
77
defaultProps,
8-
insertOrUpdateBlock,
98
} from '@blocknote/core';
9+
import { insertOrUpdateBlockForSlashMenu } from '@blocknote/core/extensions';
1010
import { BlockTypeSelectItem, createReactBlockSpec } from '@blocknote/react';
1111
import { TFunction } from 'i18next';
1212
import React, { useEffect, useState } from 'react';
@@ -156,7 +156,7 @@ export const getCalloutReactSlashMenuItems = (
156156
key: 'callout',
157157
title: t('Callout'),
158158
onItemClick: () => {
159-
insertOrUpdateBlock(editor, {
159+
insertOrUpdateBlockForSlashMenu(editor, {
160160
type: 'callout',
161161
});
162162
},

src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-blocks/PdfBlock.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import {
44
BlockNoteEditor,
55
InlineContentSchema,
66
StyleSchema,
7-
insertOrUpdateBlock,
87
} from '@blocknote/core';
8+
import { insertOrUpdateBlockForSlashMenu } from '@blocknote/core/extensions';
99
import * as locales from '@blocknote/core/locales';
1010
import {
1111
AddFileButton,
@@ -139,7 +139,7 @@ export const getPdfReactSlashMenuItems = (
139139
{
140140
title: t('PDF'),
141141
onItemClick: () => {
142-
insertOrUpdateBlock(editor, { type: 'pdf' });
142+
insertOrUpdateBlockForSlashMenu(editor, { type: 'pdf' });
143143
},
144144
aliases: [t('pdf'), t('document'), t('embed'), t('file')],
145145
group,

src/frontend/servers/y-provider/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"node": ">=22"
1717
},
1818
"dependencies": {
19-
"@blocknote/server-util": "0.42.3",
19+
"@blocknote/server-util": "0.44.2",
2020
"@hocuspocus/server": "3.4.0",
2121
"@sentry/node": "10.26.0",
2222
"@sentry/profiling-node": "10.26.0",
@@ -30,7 +30,7 @@
3030
"yjs": "*"
3131
},
3232
"devDependencies": {
33-
"@blocknote/core": "0.42.3",
33+
"@blocknote/core": "0.44.2",
3434
"@hocuspocus/provider": "3.4.0",
3535
"@types/cors": "2.8.19",
3636
"@types/express": "5.0.5",

0 commit comments

Comments
 (0)