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

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

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    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
    55
    56
    57

    1x

     import UnshortenedLinkTooltip from './UnshortenedLinkTooltip';
    import UnshortenedLink from './UnshortenedLink';
    import unshortenedLinkStrategy from './unshortenedLinkStrategy';
    import addUnshortenedLink from './modifiers/addUnshortenedLink';
    import decorateComponentWithProps from 'decorate-component-with-props';

    const createUnshortenedLinkPlugin = () => {
      const callbacks = {
        onUnshortenedLinkMouseOver: null,
        onUnshortenedLinkMouseOut: null,
        onEditorStateChange: null,
      };

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

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

        decorators: [
          {
            strategy: unshortenedLinkStrategy,
            component: decorateComponentWithProps(UnshortenedLink, {
              onMouseOver: (unshortenedLinkData) => {
                if (callbacks.onUnshortenedLinkMouseOver) {
                  callbacks.onUnshortenedLinkMouseOver(unshortenedLinkData);
                }
              },
              onMouseOut: (unshortenedLinkData) => {
                if (callbacks.onUnshortenedLinkMouseOut) {
                  callbacks.onUnshortenedLinkMouseOut(unshortenedLinkData);
                }
              },
            }),
          },
        ],

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

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

    export default createUnshortenedLinkPlugin;
    export { addUnshortenedLink };