<p>Hello, World!</p>
import { stimuliList } from './trials.js';

// Initialize jsPsych
const jsPsych = initJsPsych({
    override_safe_mode: true,
});

console.log('hallo');

// Function to create trials dynamically
const createTrials = (stimuli) => {
    return stimuli.map(item => {
        switch (item.type) {
            case "audio":
                return {
                    type: jsPsychAudioKeyboardResponse,
                    stimulus: 'stimuli/'+item.file,
                    choices: "NO_KEYS",
                    //trial_ends_after_audio: true
                    trial_duration: 3000
                };
            case "word":
                return {
                    type: jsPsychHtmlKeyboardResponse,
                    stimulus: `<div class="word">${item.text}</div>`,
                    choices: "NO_KEYS",
                    trial_duration: 3000
                };
            case "text":
                return {
                    type: jsPsychHtmlButtonResponse,
                    stimulus: `<div class="text">${item.text.replace(/\|/g, '<br>')}</div>`,
                    choices: ['click to continue'],
                    promt:"Click",
                    trial_duration: null
                };
            default:
                console.warn(`Unknown type: ${item.type}`);
                return null;
        }
    }).filter(trial => trial !== null); // Filter out any null trials
};

// Generate the trials from the stimuli list
const trials = createTrials(stimuliList);

// Inter-trial interval with fixation cross
const fixation = {
    type: jsPsychHtmlKeyboardResponse,
    stimulus: `<div style="font-size: 48px;">+</div>`,
    choices: "NO_KEYS",
    trial_duration: 1000
};

// Combine trials with fixation cross
const timeline = [];
trials.forEach(trial => {
    timeline.push(trial);
    timeline.push(fixation);
});

// Run the experiment
jsPsych.run(timeline);