diff --git a/packages/ckeditor5-media-embed/src/mediaembedui.js b/packages/ckeditor5-media-embed/src/mediaembedui.js index ec46f403a44..20ab04d064c 100644 --- a/packages/ckeditor5-media-embed/src/mediaembedui.js +++ b/packages/ckeditor5-media-embed/src/mediaembedui.js @@ -41,19 +41,15 @@ export default class MediaEmbedUI extends Plugin { const command = editor.commands.get( 'mediaEmbed' ); const registry = editor.plugins.get( MediaEmbedEditing ).registry; - /** - * The form view displayed inside the drop-down. - * - * @member {module:media-embed/ui/mediaformview~MediaFormView} - */ - this.form = new MediaFormView( getFormValidators( editor.t, registry ), editor.locale ); - // Setup `imageUpload` button. editor.ui.componentFactory.add( 'mediaEmbed', locale => { const dropdown = createDropdown( locale ); - this._setUpDropdown( dropdown, this.form, command, editor ); - this._setUpForm( this.form, dropdown, command ); + // Prepare custom view for dropdown's panel. + const mediaForm = new MediaFormView( getFormValidators( editor.t, registry ), editor.locale ); + + this._setUpDropdown( dropdown, mediaForm, command, editor ); + this._setUpForm( mediaForm, dropdown, command ); return dropdown; } ); diff --git a/packages/ckeditor5-media-embed/tests/mediaembedui.js b/packages/ckeditor5-media-embed/tests/mediaembedui.js index e09beb0b59a..323bef67dbb 100644 --- a/packages/ckeditor5-media-embed/tests/mediaembedui.js +++ b/packages/ckeditor5-media-embed/tests/mediaembedui.js @@ -53,6 +53,12 @@ describe( 'MediaEmbedUI', () => { expect( dropdown ).to.be.instanceOf( DropdownView ); } ); + it( 'should allow creating two instances', () => { + expect( function createSecondInstance() { + editor.ui.componentFactory.create( 'mediaEmbed' ); + } ).not.to.throw(); + } ); + describe( 'dropdown', () => { it( 'should bind #isEnabled to the command', () => { const command = editor.commands.get( 'mediaEmbed' );