feat: initialize warpbox.dev project structure and backend

Initialize the repository with the core Go backend architecture and a frontend mockup for warpbox.dev, a self-hosted file-sharing application.

- Set up Go backend modules for configuration, HTTP server, middleware, handlers, and templates.
- Add local development scripts, environment templates, and basic project configuration.
- Include a React-based frontend mockup under the docs directory.
This commit is contained in:
2026-05-25 15:36:49 +03:00
parent 84e5aee87c
commit 9b8ef16474
129 changed files with 19863 additions and 0 deletions

42
backend/static/js/app.js Normal file
View File

@@ -0,0 +1,42 @@
(function () {
const dropZone = document.querySelector(".drop-zone");
const fileInput = document.querySelector("#file-input");
if (!dropZone || !fileInput) {
return;
}
["dragenter", "dragover"].forEach((eventName) => {
dropZone.addEventListener(eventName, (event) => {
event.preventDefault();
dropZone.classList.add("is-dragging");
});
});
["dragleave", "drop"].forEach((eventName) => {
dropZone.addEventListener(eventName, (event) => {
event.preventDefault();
dropZone.classList.remove("is-dragging");
});
});
dropZone.addEventListener("drop", (event) => {
if (event.dataTransfer && event.dataTransfer.files.length > 0) {
fileInput.files = event.dataTransfer.files;
updateDropLabel(event.dataTransfer.files.length);
}
});
fileInput.addEventListener("change", () => {
updateDropLabel(fileInput.files.length);
});
function updateDropLabel(count) {
const title = dropZone.querySelector(".drop-title");
if (!title) {
return;
}
title.textContent = count === 1 ? "1 file selected" : `${count} files selected`;
}
})();