# All files / composer/utils/draft-js-custom-plugins/short-link index.js

7.69% Statements 1/13
0% Branches 0/6
0% Functions 0/5
10% Lines 1/10

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54

    7x

     import ShortLink from './ShortLink';
    import ShortLinkTooltip from './ShortLinkTooltip';
    import shortLinkStrategy from './shortLinkStrategy';
    import addShortLink from './modifiers/addShortLink';
    import replaceLink from './modifiers/replaceLink';
    import decorateComponentWithProps from 'decorate-component-with-props';

    const createShortLinkPlugin = () => {
      const callbacks = {
        onShortLinkMouseOver: null,
        onShortLinkMouseOut: null,
        onEditorStateChange: null,
      };

      const store = {
        getEditorState: undefined,
        setEditorState: undefined,
      };

      return {
        ShortLinkTooltip: decorateComponentWithProps(ShortLinkTooltip, {
          callbacks,
          store,
        }),

        decorators: [
          {
            strategy: shortLinkStrategy,
            component: decorateComponentWithProps(ShortLink, {
              onMouseOver: (shortLinkData) => {
                if (callbacks.onShortLinkMouseOver) callbacks.onShortLinkMouseOver(shortLinkData);
              },
              onMouseOut: (shortLinkData) => {
                if (callbacks.onShortLinkMouseOut) callbacks.onShortLinkMouseOut(shortLinkData);
              },
            }),
          },
        ],

        initialize: ({ getEditorState, setEditorState }) => {
          store.getEditorState = getEditorState;
          store.setEditorState = setEditorState;
        },

        onChange: (editorState) => {
          if (callbacks.onEditorStateChange) callbacks.onEditorStateChange();
          return editorState;
        },
      };
    };

    export default createShortLinkPlugin;
    export { addShortLink, replaceLink };