Total Complexity | 11 |
Complexity/F | 1.38 |
Lines of Code | 39 |
Function Count | 8 |
Duplicated Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | onDomReady(() => { |
||
2 | |||
3 | const collapsedTextareas = document.querySelectorAll('textarea.collapsed'); |
||
4 | collapsedTextareas.forEach(textarea => { |
||
5 | // Expand collapsible text area after receiving focus. |
||
6 | textarea |
||
7 | .addEventListener('focus', () => textarea.classList.remove('collapsed')); |
||
8 | |||
9 | // Collapse text area on click on cancel button. |
||
10 | textarea.form.querySelector('button.cancel') |
||
11 | .addEventListener('click', () => textarea.classList.add('collapsed')); |
||
12 | }); |
||
13 | |||
14 | document.querySelectorAll('[data-action="posting-react"]').forEach(element => { |
||
15 | const indicator_class_name = 'button--reaction-active'; |
||
16 | element.addEventListener('click', event => { |
||
17 | if (element.classList.contains(indicator_class_name)) { |
||
18 | fetch(element.dataset.urlRemove, {method: 'DELETE'}) |
||
19 | .then(response => { |
||
20 | if (response.status == 204) { |
||
21 | element.dataset.count = parseInt(element.dataset.count) - 1; |
||
22 | element.classList.remove(indicator_class_name); |
||
23 | } |
||
24 | }); |
||
25 | } else { |
||
26 | fetch(element.dataset.urlAdd, {method: 'POST'}) |
||
27 | .then(response => { |
||
28 | if (response.status == 204) { |
||
29 | element.dataset.count = parseInt(element.dataset.count) + 1; |
||
30 | element.classList.add(indicator_class_name); |
||
31 | } |
||
32 | }); |
||
33 | } |
||
34 | |||
35 | event.preventDefault(); |
||
36 | }); |
||
37 | }); |
||
38 | |||
39 | }); |
||
40 |