Skip to content
This repository has been archived by the owner on Jun 26, 2020. It is now read-only.

Commit

Permalink
Rename the proposed method to getViewImgFromWidget() and update the d…
Browse files Browse the repository at this point in the history
…ocs.
  • Loading branch information
jodator committed Feb 26, 2020
1 parent b943626 commit 82f1f01
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 15 deletions.
8 changes: 4 additions & 4 deletions src/image/converters.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
*/

import first from '@ckeditor/ckeditor5-utils/src/first';
import { getImgViewFromFigure } from './utils';
import { getViewImgFromWidget } from './utils';

/**
* Returns a function that converts the image view representation:
Expand Down Expand Up @@ -36,7 +36,7 @@ export function viewFigureToModel() {
}

// Find an image element inside the figure element.
const viewImage = getImgViewFromFigure( data.viewItem );
const viewImage = getViewImgFromWidget( data.viewItem );

// Do not convert if image element is absent, is missing src attribute or was already converted.
if ( !viewImage || !viewImage.hasAttribute( 'src' ) || !conversionApi.consumable.test( viewImage, { name: true } ) ) {
Expand Down Expand Up @@ -82,7 +82,7 @@ export function srcsetAttributeConverter() {

const writer = conversionApi.writer;
const figure = conversionApi.mapper.toViewElement( data.item );
const img = getImgViewFromFigure( figure );
const img = getViewImgFromWidget( figure );

if ( data.attributeNewValue === null ) {
const srcset = data.attributeOldValue;
Expand Down Expand Up @@ -123,7 +123,7 @@ export function modelToViewAttributeConverter( attributeKey ) {

const viewWriter = conversionApi.writer;
const figure = conversionApi.mapper.toViewElement( data.item );
const img = getImgViewFromFigure( figure );
const img = getViewImgFromWidget( figure );

if ( data.attributeNewValue !== null ) {
viewWriter.setAttribute( data.attributeKey, data.attributeNewValue, img );
Expand Down
11 changes: 5 additions & 6 deletions src/image/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export function toImageWidget( viewElement, writer, label ) {
return toWidget( viewElement, writer, { label: labelCreator } );

function labelCreator() {
const imgElement = getImgViewFromFigure( viewElement );
const imgElement = getViewImgFromWidget( viewElement );
const altText = imgElement.getAttribute( 'alt' );

return altText ? `${ altText } ${ label }` : label;
Expand Down Expand Up @@ -108,16 +108,15 @@ export function isImageAllowed( model ) {
}

/**
* Get img view element from the figure view.
* Get view `<img>` element from the view widget (`<figure>`).
*
* Using figureView.getChild(0) - is unsafe,
* because there are can be "figcaption" or smth else.
* This approach provide ability to extend plugin logic with other custom plugins.
* Assuming that image is always a first child of a widget (ie. `figureView.getChild( 0 )`) is unsafe as other features might
* inject their own elements to the widget.
*
* @param {module:engine/view/element~Element} figureView
* @returns {module:engine/view/element~Element}
*/
export function getImgViewFromFigure( figureView ) {
export function getViewImgFromWidget( figureView ) {
return Array.from( figureView.getChildren() ).find( viewChild => viewChild.is( 'img' ) );
}

Expand Down
4 changes: 2 additions & 2 deletions src/imageupload/imageuploadediting.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import env from '@ckeditor/ckeditor5-utils/src/env';
import ImageUploadCommand from '../../src/imageupload/imageuploadcommand';
import { fetchLocalImage, isLocalImage } from '../../src/imageupload/utils';
import { createImageTypeRegExp } from './utils';
import { getImgViewFromFigure } from '../image/utils';
import { getViewImgFromWidget } from '../image/utils';

/**
* The editing part of the image upload feature. It registers the `'imageUpload'` command.
Expand Down Expand Up @@ -218,7 +218,7 @@ export default class ImageUploadEditing extends Plugin {
/* istanbul ignore next */
if ( env.isSafari ) {
const viewFigure = editor.editing.mapper.toViewElement( imageElement );
const viewImg = getImgViewFromFigure( viewFigure );
const viewImg = getViewImgFromWidget( viewFigure );

editor.editing.view.once( 'render', () => {
// Early returns just to be safe. There might be some code ran
Expand Down
6 changes: 3 additions & 3 deletions src/imageupload/imageuploadprogress.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
import FileRepository from '@ckeditor/ckeditor5-upload/src/filerepository';
import uploadingPlaceholder from '../../theme/icons/image_placeholder.svg';
import env from '@ckeditor/ckeditor5-utils/src/env';
import { getImgViewFromFigure } from '../image/utils';
import { getViewImgFromWidget } from '../image/utils';

import '../../theme/imageuploadprogress.css';
import '../../theme/imageuploadicon.css';
Expand Down Expand Up @@ -144,7 +144,7 @@ function _showPlaceholder( placeholder, viewFigure, writer ) {
writer.addClass( 'ck-image-upload-placeholder', viewFigure );
}

const viewImg = getImgViewFromFigure( viewFigure );
const viewImg = getViewImgFromWidget( viewFigure );

if ( viewImg.getAttribute( 'src' ) !== placeholder ) {
writer.setAttribute( 'src', placeholder, viewImg );
Expand Down Expand Up @@ -271,7 +271,7 @@ function _removeUIElement( viewFigure, writer, uniqueProperty ) {
// @param {module:upload/filerepository~FileLoader} loader
function _displayLocalImage( viewFigure, writer, loader ) {
if ( loader.data ) {
const viewImg = getImgViewFromFigure( viewFigure );
const viewImg = getViewImgFromWidget( viewFigure );

writer.setAttribute( 'src', loader.data, viewImg );
}
Expand Down

0 comments on commit 82f1f01

Please sign in to comment.