CCCPaste

05. Fill dropdown

import { html, render } from 'https://unpkg.com/lit-html?module';
function addItem() {
    let menu = document.getElementById("menu");

    function optionTemplate(o) {
        return html``
    }

    function renderOptions(arr) {
        let options = arr.map(o => optionTemplate(o));
        render(options, menu)
    }

    //    load existing

    function loadExisting() {
        let requestOptions = {
            method: 'GET',
            redirect: 'follow'
        };

        fetch("http://localhost:3030/jsonstore/advanced/dropdown", requestOptions)
            .then(response => response.json())
            .then(result => renderOptions(Object.values(result)))
            .catch(error => console.log('error', error));
    }

    loadExisting();


    let form = document.querySelector("form");
    form.addEventListener("submit", function (e) {
        e.preventDefault();
        let itemName = document.getElementById("itemText").value;
        submitItem(itemName);
    })

    function submitItem(itemName) {
        let body = { text: itemName }

        let myHeaders = new Headers();
        myHeaders.append("Content-Type", "application/json");

        let raw = JSON.stringify(body);

        let requestOptions = {
            method: 'POST',
            headers: myHeaders,
            body: raw,
            redirect: 'follow'
        };

        fetch("http://localhost:3030/jsonstore/advanced/dropdown", requestOptions)
            .then(response => response.json())
            .then(result => loadExisting())
            .catch(error => console.log('error', error));

        document.getElementById("itemText").value = "";
    }
}

addItem();