some code and stuff

This commit is contained in:
Smigz 2025-01-16 16:28:53 -05:00
parent 75b83e30ea
commit 17d664eaeb
19 changed files with 762 additions and 4 deletions

View file

@ -0,0 +1,58 @@
import { categoryPicker, storePicker } from "./selectComponent.js";
function formInput(props) {
const formItemDiv = document.createElement("div");
formItemDiv.classList.add("form-item");
const input = document.createElement("input");
input.name = props.name;
const label = document.createElement("label");
label.textContent = props.labelText;
formItemDiv.append(label, input);
return formItemDiv;
}
async function modal() {
const div = document.createElement("div");
div.classList.add("modal");
div.style = `
display: none;
positino: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 50vh;
overflow: auto;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0,0.4);
`;
const form = document.createElement("form");
form.method = "POST";
form.action = "/item";
const name = formInput({ labelText: "Name", name: "name" });
const price = formInput({ labelText: "Price", name: "price" });
const qty = formInput({ labelText: "QTY", name: "qty" });
const categories = await categoryPicker();
const stores = await storePicker();
const submitButton = document.createElement("button");
submitButton.type = "submit";
submitButton.classList.add("btn");
submitButton.textContent = "Add Item";
const closeButton = document.createElement("button");
closeButton.textContent = "Close";
closeButton.addEventListener("click", () => {
div.style.display = "none";
});
form.append(name, price, qty, categories, stores, submitButton, closeButton);
div.append(form);
return div;
}
export { modal };

View file

@ -0,0 +1,59 @@
async function getData(path) {
const categories = await fetch(`/${path}`);
return await categories.json();
}
function selectComponent(data, select) {
data.forEach((opt) => {
const option = document.createElement("option");
option.value = opt.name;
option.textContent = opt.name;
select.append(option);
});
}
async function categoryPicker() {
const selectQuery = document.querySelector(".categories-list-modal");
if (selectQuery) document.body.remove(selectQuery);
const categories = await getData("categories");
const formItemDiv = document.createElement("div");
formItemDiv.classList.add("form-item");
const formLabel = document.createElement("label");
formLabel.textContent = "Categories";
const select = document.createElement("select");
select.classList.add("categories-list-modal");
select.name = "category";
selectComponent(categories, select);
formItemDiv.append(formLabel, select);
return formItemDiv;
}
async function storePicker() {
const selectQuery = document.querySelector(".store-list-modal");
if (selectQuery) document.body.remove(selectQuery);
const stores = await getData("stores");
const formItemDiv = document.createElement("div");
formItemDiv.classList.add("form-item");
const formLabel = document.createElement("label");
formLabel.textContent = "stores";
const select = document.createElement("select");
select.classList.add("stores-list-modal");
select.name = "store";
selectComponent(stores, select);
formItemDiv.append(formLabel, select);
return formItemDiv;
}
export { categoryPicker, storePicker };