import React from 'react'; import AgeContainer from './partials/age.jsx'; import ContactPersonContainer from './partials/contactperson.jsx'; import PersonalDataContainer from './partials/personaldata.jsx'; import SolidarityRegistrationContainer from './partials/registration-solidarity.jsx'; import GroupSelectionContainer from './partials/registration-groupbased.jsx'; import ArrivalContainer from './partials/arrival.jsx'; import AddonsContainer from "./partials/addons.jsx"; import PhotopermissionsContainer from "./partials/photopermissions.jsx"; import AllergiesContainer from "./partials/allergies.jsx"; import SummaryContainer from "./partials/summary.jsx"; import { FinalValidator } from '../../../assets/javascripts/registration-validator.js' import { SelectedAddons } from '../../../assets/javascripts/registration-validator.js' import SuccessContainer from "./after-submit/success.jsx"; import ReactDOM from "react-dom/client"; import AlreadyExistsContainer from "./after-submit/alreadyexist.jsx"; import { __ } from '../../../assets/javascripts/library.js'; const { configuration, labels, participant_data, event_data, local_groups } = window.solea_data; function showStep(step) { var steps = [ 'step_1', // Age-Selector 'step_2', // Children only: Contact data 'step_3', // Personal data 'step_4', // Participation group 'step_5', // Arival & Departure 'step_6', // Addon information 'step_7', // Photo-Permissions 'step_8', // Allergies & Intolerances 'step_9' // Summary ]; for (var idx = 0; idx < steps.length; idx++) { var currentElement = steps[idx]; document.getElementById(currentElement).classList.add('container_hidden'); document.getElementById(currentElement).classList.remove('container_visible'); } document.getElementById('step_' + step).classList.remove('container_hidden'); document.getElementById('step_' + step).classList.add('container_visible'); document.getElementById('summary_loading').classList.remove('container_hidden'); document.getElementById('summary_loading').classList.add('container_visible'); document.getElementById('summary_content').classList.add('container_hidden'); document.getElementById('summary_content').classList.remove('container_visible'); if (step === 9) { var [ayear, amonth, aday] = document.getElementById('anreise').value.split('-'); var [dyear, dmonth, dday] = document.getElementById('abreise').value.split('-'); document.getElementById('summary_eventname').innerHTML= event_data.event_name; document.getElementById('summary_arrival').innerHTML=`${aday}.${amonth}.${ayear}`; document.getElementById('summary_departure').innerHTML=`${dday}.${dmonth}.${dyear}`; const response = fetch("/wp-json/solea/signup/preview_amount", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ anreise: document.getElementById('anreise').value, abreise: document.getElementById('abreise').value, event_id: event_data.id, participation_group: document.querySelector('input[name="participant_group"]:checked').value, selected_amount: document.querySelector('input[name="beitrag"]:checked').value, addons: SelectedAddons(), }), }) .then((res) => res.json()) .then((data) => { document.getElementById('payment_information_label').innerHTML = data.amount document.getElementById('summary_loading').classList.add('container_hidden'); document.getElementById('summary_loading').classList.remove('container_visible'); document.getElementById('summary_content').classList.add('container_visible'); document.getElementById('summary_content').classList.remove('container_hidden'); }); } } function ParticipantSignup() { let RegistrationMode; switch (event_data.registration_mode) { case 'solidarity': RegistrationMode = SolidarityRegistrationContainer; break; case 'groupbased': RegistrationMode = GroupSelectionContainer; break; } const handleSubmit = (e) => { e.preventDefault(); const form = e.target; const data = new FormData(form); if (!FinalValidator()) { return; } const formData = Object.fromEntries(data.entries()); const response = fetch("/wp-json/solea/signup/do-register", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ addons: SelectedAddons(), registration_data: formData }) }) .then((res) => res.json()) .then((data) => { const container = document.getElementById('solea_registration_form_frame'); const root = ReactDOM.createRoot(container); if (data.already_exists === true) { root.render(); } else { root.render(); } }); } return (

Wird geladen

showStep(8)} />  

); } export default ParticipantSignup;