77 CoreEventType ,
88 UiComponentType
99} from '@editorjs/core' ;
10+ import Style from './Blocks.module.pcss' ;
1011
1112/**
1213 * Editor's main UI renderer for HTML environment
@@ -20,10 +21,12 @@ export class BlocksUI implements EditorjsPlugin {
2021 */
2122 public static readonly type = UiComponentType . Blocks ;
2223
24+
2325 /**
24- * Editor holder element
26+ * Blocks holder element
2527 */
26- #holder: HTMLElement ;
28+ #blocksHolder: HTMLElement ;
29+
2730 /**
2831 * Elements of the blocks added to the editor
2932 */
@@ -39,8 +42,8 @@ export class BlocksUI implements EditorjsPlugin {
3942 * @param params - Plugin parameters
4043 */
4144 constructor ( params : EditorjsPluginParams ) {
42- this . #holder = params . config . holder ;
4345 this . #eventBus = params . eventBus ;
46+ this . #blocksHolder = this . #prepareBlocksHolder( params . config . holder ) ;
4447
4548 this . #eventBus. addEventListener ( `core:${ CoreEventType . BlockAdded } ` , ( event : BlockAddedCoreEvent < HTMLElement > ) => {
4649 const { ui, index } = event . detail ;
@@ -54,7 +57,7 @@ export class BlocksUI implements EditorjsPlugin {
5457 this . #removeBlock( index ) ;
5558 } ) ;
5659
57- this . #holder . addEventListener ( 'keydown' , ( e ) => {
60+ this . #blocksHolder . addEventListener ( 'keydown' , ( e ) => {
5861 if ( e . code !== 'KeyZ' ) {
5962 return ;
6063 }
@@ -72,24 +75,21 @@ export class BlocksUI implements EditorjsPlugin {
7275 this . #eventBus. dispatchEvent ( new Event ( 'core:undo' ) ) ;
7376 } ) ;
7477
75- this . #prepareBlocksHolder( ) ;
76- }
77-
78- /**
79- * Renders the editor UI
80- */
81- public render ( ) : void {
8278 }
8379
8480 /**
8581 * Prepares blocks holder element
8682 */
87- #prepareBlocksHolder( ) : void {
83+ #prepareBlocksHolder( editorHolder : HTMLElement ) : HTMLElement {
8884 const blocksHolder = document . createElement ( 'div' ) ;
8985
90- blocksHolder . classList . add ( 'ejs-blocks-holder' ) ;
86+ blocksHolder . classList . add ( Style [ 'blocks' ] ) ;
87+
88+ blocksHolder . contentEditable = 'false' ;
89+
90+ editorHolder . appendChild ( blocksHolder ) ;
9191
92- this . #holder . appendChild ( blocksHolder ) ;
92+ return blocksHolder ;
9393 }
9494
9595 /**
@@ -104,7 +104,7 @@ export class BlocksUI implements EditorjsPlugin {
104104 this . #blocks[ index ] . insertAdjacentElement ( 'beforebegin' , blockElement ) ;
105105 this . #blocks. splice ( index , 0 , blockElement ) ;
106106 } else {
107- this . #holder . appendChild ( blockElement ) ;
107+ this . #blocksHolder . appendChild ( blockElement ) ;
108108 this . #blocks. push ( blockElement ) ;
109109 }
110110 }
0 commit comments