about summary refs log tree commit diff
path: root/app/javascript/flavours/glitch/utils/content_warning.js
blob: 91d452baace8f9a520a9cf1e9d48663935f0160d (plain) (blame)
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
import { expandSpoilers } from 'flavours/glitch/initial_state';

function _autoUnfoldCW(spoiler_text, skip_unfold_regex) {
  if (!expandSpoilers)
    return false;

  if (!skip_unfold_regex)
    return true;

  let regex = null;

  try {
    regex = new RegExp(skip_unfold_regex.trim(), 'i');
  } catch (e) {
    // Bad regex, skip filters
    return true;
  }

  return !regex.test(spoiler_text);
}

export function autoHideCW(settings, spoiler_text) {
  return !_autoUnfoldCW(spoiler_text, settings.getIn(['content_warnings', 'filter']));
}

export function autoUnfoldCW(settings, status) {
  if (!status)
    return false;

  return _autoUnfoldCW(status.get('spoiler_text'), settings.getIn(['content_warnings', 'filter']));
}