import { Controller } from '@hotwired/stimulus'; import { FetchRequest } from '@rails/request.js'; export default class extends Controller { static targets = ['preview', 'loading', 'frame']; async handle(event) { let { url, payload, formId, urlMethod, responseKind } = event.params; let originalForm = document.getElementById(formId); if (!originalForm) { console.error(`Form with ID ${formId} not found.`); return; } let formData = new FormData(originalForm); // payload 값 추가 for (let key in payload) { formData.append(key, payload[key]); } formData.delete('_method'); const httpMethod = urlMethod?.toLowerCase() || 'post'; const kind = responseKind || 'turbo-stream'; // 기본값은 'html' new FetchRequest(httpMethod, url, { body: formData, responseKind: kind, }).perform(); } }

AltStyle によって変換されたページ (->オリジナル) /