import { post } from '@rails/request.js';

import I18n from 'retrospring/i18n';
import { updateDeleteButton } from './delete';
import { showErrorNotification } from 'utilities/notifications';

export function generateQuestionHandler(): void {
  post('/ajax/generate_question')
    .then(async response => {
      const data = await response.json;

      if (!data.success) return false;

      document.querySelector('#entries').insertAdjacentHTML('afterbegin', data.render);
      updateDeleteButton();
    })
    .catch(err => {
      console.log(err);
      showErrorNotification(I18n.translate('frontend.error.message'));      
    });
}
import Rails from '@rails/ujs';

import I18n from 'retrospring/i18n';
import { updateDeleteButton } from './delete';
import { showErrorNotification } from 'utilities/notifications';

export function generateQuestionHandler(): void {
  Rails.ajax({
    url: '/ajax/generate_question',
    type: 'POST',
    dataType: 'json',
    success: (data) => {
      if (!data.success) return false;

      document.querySelector('#entries').insertAdjacentHTML('afterbegin', data.render);
      updateDeleteButton();
    },
    error: (data, status, xhr) => {
      console.log(data, status, xhr);
      showErrorNotification(I18n.translate('frontend.error.message'));
    }
  });
}
--- 
+++ 
@@ -1,23 +1,21 @@
-import Rails from '@rails/ujs';
+import { post } from '@rails/request.js';
 
 import I18n from 'retrospring/i18n';
 import { updateDeleteButton } from './delete';
 import { showErrorNotification } from 'utilities/notifications';
 
 export function generateQuestionHandler(): void {
-  Rails.ajax({
-    url: '/ajax/generate_question',
-    type: 'POST',
-    dataType: 'json',
-    success: (data) => {
+  post('/ajax/generate_question')
+    .then(async response => {
+      const data = await response.json;
+
       if (!data.success) return false;
 
       document.querySelector('#entries').insertAdjacentHTML('afterbegin', data.render);
       updateDeleteButton();
-    },
-    error: (data, status, xhr) => {
-      console.log(data, status, xhr);
-      showErrorNotification(I18n.translate('frontend.error.message'));
-    }
-  });
+    })
+    .catch(err => {
+      console.log(err);
+      showErrorNotification(I18n.translate('frontend.error.message'));      
+    });
 }
Refactor question generating to use request.js
