@@ -6,47 +6,94 @@ import {
66} from '@blocknote/xl-ai' ;
77import '@blocknote/xl-ai/style.css' ;
88import { useTranslation } from 'react-i18next' ;
9- import { css } from 'styled-components' ;
9+ import { createGlobalStyle , css } from 'styled-components' ;
1010
11- import { Box , Text } from '@/components' ;
11+ import { Box , Icon , Text } from '@/components' ;
1212import { useCunninghamTheme } from '@/cunningham' ;
1313
1414import IconAI from '../../assets/IconAI.svg' ;
15+ import IconWandStar from '../../assets/wand_stars.svg' ;
1516import {
1617 DocsBlockNoteEditor ,
1718 DocsBlockSchema ,
1819 DocsInlineContentSchema ,
1920 DocsStyleSchema ,
2021} from '../../types' ;
2122
23+ const AIMenuStyle = createGlobalStyle `
24+ # ai-suggestion-menu .bn-suggestion-menu-item-small .bn-mt-suggestion-menu-item-section [data-position = left ] svg {
25+ height : 18px ;
26+ width : 18px ;
27+ }
28+ ` ;
29+
2230export function AIMenu ( ) {
2331 return (
24- < AIMenuDefault
25- items = { ( editor : DocsBlockNoteEditor , aiResponseStatus ) => {
26- if ( aiResponseStatus === 'user-input' ) {
27- if ( editor . getSelection ( ) ) {
28- const aiMenuItems = getDefaultAIMenuItems (
29- editor ,
30- aiResponseStatus ,
31- ) . filter ( ( item ) => [ 'simplify' ] . indexOf ( item . key ) === - 1 ) ;
32+ < >
33+ < AIMenuStyle />
34+ < AIMenuDefault
35+ items = { ( editor : DocsBlockNoteEditor , aiResponseStatus ) => {
36+ if ( aiResponseStatus === 'user-input' ) {
37+ let aiMenuItems = getDefaultAIMenuItems ( editor , aiResponseStatus ) ;
3238
33- return aiMenuItems ;
34- } else {
35- const aiMenuItems = getDefaultAIMenuItems (
36- editor ,
37- aiResponseStatus ,
38- ) . filter (
39- ( item ) =>
40- [ 'action_items' , 'write_anything' ] . indexOf ( item . key ) === - 1 ,
41- ) ;
39+ if ( editor . getSelection ( ) ) {
40+ aiMenuItems = aiMenuItems . filter (
41+ ( item ) => [ 'simplify' ] . indexOf ( item . key ) === - 1 ,
42+ ) ;
43+
44+ aiMenuItems = aiMenuItems . map ( ( item ) => {
45+ if ( item . key === 'improve_writing' ) {
46+ return {
47+ ...item ,
48+ icon : < IconWandStar /> ,
49+ } ;
50+ } else if ( item . key === 'translate' ) {
51+ return {
52+ ...item ,
53+ icon : (
54+ < Icon
55+ iconName = "translate"
56+ $color = "inherit"
57+ $size = "18px"
58+ />
59+ ) ,
60+ } ;
61+ }
62+
63+ return item ;
64+ } ) ;
65+ } else {
66+ aiMenuItems = aiMenuItems . filter (
67+ ( item ) =>
68+ [ 'action_items' , 'write_anything' ] . indexOf ( item . key ) === - 1 ,
69+ ) ;
70+ }
4271
4372 return aiMenuItems ;
73+ } else if ( aiResponseStatus === 'user-reviewing' ) {
74+ return getDefaultAIMenuItems ( editor , aiResponseStatus ) . map (
75+ ( item ) => {
76+ if ( item . key === 'accept' ) {
77+ return {
78+ ...item ,
79+ icon : (
80+ < Icon
81+ iconName = "check_circle"
82+ $color = "inherit"
83+ $size = "18px"
84+ />
85+ ) ,
86+ } ;
87+ }
88+ return item ;
89+ } ,
90+ ) ;
4491 }
45- }
4692
47- return getDefaultAIMenuItems ( editor , aiResponseStatus ) ;
48- } }
49- />
93+ return getDefaultAIMenuItems ( editor , aiResponseStatus ) ;
94+ } }
95+ />
96+ </ >
5097 ) ;
5198}
5299
0 commit comments