summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/pages/admin/broadcast_messages/broadcast_message.js
blob: b68ce5d32d86f38600afdd055d1f1ae6d902476a (plain)
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
import _ from 'underscore';
import axios from '~/lib/utils/axios_utils';
import flash from '~/flash';
import { __ } from '~/locale';

export default function initBroadcastMessagesForm() {
  $('input#broadcast_message_color').on('input', function onMessageColorInput() {
    const previewColor = $(this).val();
    $('div.broadcast-message-preview').css('background-color', previewColor);
  });

  $('input#broadcast_message_font').on('input', function onMessageFontInput() {
    const previewColor = $(this).val();
    $('div.broadcast-message-preview').css('color', previewColor);
  });

  const previewPath = $('textarea#broadcast_message_message').data('previewPath');

  $('textarea#broadcast_message_message').on('input', _.debounce(function onMessageInput() {
    const message = $(this).val();
    if (message === '') {
      $('.js-broadcast-message-preview').text('Your message here');
    } else {
      axios.post(previewPath, {
        broadcast_message: {
          message,
        },
      })
      .then(({ data }) => {
        $('.js-broadcast-message-preview').html(data.message);
      })
      .catch(() => flash(__('An error occurred while rendering preview broadcast message')));
    }
  }, 250));
}