Update the styles a bit, and add the slides
This commit is contained in:
parent
8740802bc6
commit
4c500365fe
@ -1,10 +1,17 @@
|
|||||||
async function main() {
|
import { unlink } from 'node:fs/promises';
|
||||||
const results = await Bun.build({
|
|
||||||
|
const config = {
|
||||||
entrypoints: [ "./frontend/index.js" ],
|
entrypoints: [ "./frontend/index.js" ],
|
||||||
outdir: "./static/js/",
|
outdir: "./static/js/",
|
||||||
verbose: true
|
};
|
||||||
});
|
|
||||||
|
|
||||||
|
async function fileExists(path: string): Promise<bool> {
|
||||||
|
const file = Bun.file(path);
|
||||||
|
return file.exists();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
const results = await Bun.build({ ...config, verbose: true });
|
||||||
|
|
||||||
if (!results.success) {
|
if (!results.success) {
|
||||||
for (const message of results.logs) {
|
for (const message of results.logs) {
|
||||||
|
@ -22,13 +22,13 @@ function newMessageText(name, message) {
|
|||||||
|
|
||||||
const MessageBox = {
|
const MessageBox = {
|
||||||
view: function () {
|
view: function () {
|
||||||
return m(".messages", messages.map(function(message) {
|
return m(".messages", { id: "message-box" }, messages.reverse().map(function(message) {
|
||||||
return m(".message", newMessageText(message.chatter, message.message));
|
return m(".message", newMessageText(message.chatter, message.message));
|
||||||
}));
|
}), m("#anchor"));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
function clearMessageBox() {
|
function clearMessageInputBox() {
|
||||||
const messageBox = document.getElementById("message");
|
const messageBox = document.getElementById("message");
|
||||||
messageBox.value = "";
|
messageBox.value = "";
|
||||||
}
|
}
|
||||||
@ -44,7 +44,7 @@ function sendMessage(e) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
socket.send(JSON.stringify(message));
|
socket.send(JSON.stringify(message));
|
||||||
clearMessageBox();
|
clearMessageInputBox();
|
||||||
}
|
}
|
||||||
|
|
||||||
const MessageInput = {
|
const MessageInput = {
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
import m from 'mithril';
|
|
||||||
|
|
||||||
// login to the server
|
|
||||||
function login(e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
export const Login = {
|
|
||||||
return m("form", { action: "/login", method: "post", onsubmit: login }, [
|
|
||||||
m("label", { for: "username" }, "Username"),
|
|
||||||
m("input", { type: "text", name: "username" }),
|
|
||||||
m("input", { type: "submit", value: "Login" })
|
|
||||||
]);
|
|
||||||
};
|
|
@ -1,2 +0,0 @@
|
|||||||
const state = {};
|
|
||||||
|
|
@ -13,7 +13,7 @@ const app = new Hono();
|
|||||||
const { upgradeWebSocket, websocket } = createBunWebSocket<ServerWebSocket>();
|
const { upgradeWebSocket, websocket } = createBunWebSocket<ServerWebSocket>();
|
||||||
app.get("/chat-service", upgradeWebSocket((c) => {
|
app.get("/chat-service", upgradeWebSocket((c) => {
|
||||||
return {
|
return {
|
||||||
onOpen(_event, ws) {
|
onOpen(event, ws) {
|
||||||
chatRoom.addListener('message-added', function (e) {
|
chatRoom.addListener('message-added', function (e) {
|
||||||
ws.send(JSON.stringify({
|
ws.send(JSON.stringify({
|
||||||
message: e.message.message,
|
message: e.message.message,
|
||||||
|
@ -1,19 +1,51 @@
|
|||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
height: 100.001vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
div {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.messages {
|
||||||
|
padding: 1em;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column-reverse;
|
||||||
|
height: 95vh;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
.messages .message {
|
.messages .message {
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
border: 1px solid #aaa;
|
border: 1px solid #aaa;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chatter {
|
.chatter {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.chat-input {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0.5em;
|
||||||
|
background-color: #fff;
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
height: 5vh;
|
||||||
|
}
|
||||||
.chat-input > form {
|
.chat-input > form {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
.chat-input > form > input {
|
.chat-input > form > input,
|
||||||
|
.chat-input > form > submit {
|
||||||
padding: 0.7em;
|
padding: 0.7em;
|
||||||
|
margin-right: 0.4em;
|
||||||
}
|
}
|
||||||
.chat-input > form > input[name="chatter"] {
|
.chat-input > form > input[name="chatter"] {
|
||||||
width: 20%;
|
width: 20%;
|
||||||
|
@ -1731,7 +1731,7 @@ function newMessageText(name, message) {
|
|||||||
import_mithril.default("span.chatter-message", message)
|
import_mithril.default("span.chatter-message", message)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
function clearMessageBox() {
|
function clearMessageInputBox() {
|
||||||
const messageBox = document.getElementById("message");
|
const messageBox = document.getElementById("message");
|
||||||
messageBox.value = "";
|
messageBox.value = "";
|
||||||
}
|
}
|
||||||
@ -1743,7 +1743,7 @@ function sendMessage(e) {
|
|||||||
message[key] = value;
|
message[key] = value;
|
||||||
}
|
}
|
||||||
socket.send(JSON.stringify(message));
|
socket.send(JSON.stringify(message));
|
||||||
clearMessageBox();
|
clearMessageInputBox();
|
||||||
}
|
}
|
||||||
var messages = [];
|
var messages = [];
|
||||||
var socket = createWebSocket();
|
var socket = createWebSocket();
|
||||||
@ -1756,9 +1756,9 @@ socket.onmessage = function(event) {
|
|||||||
};
|
};
|
||||||
var MessageBox = {
|
var MessageBox = {
|
||||||
view: function() {
|
view: function() {
|
||||||
return import_mithril.default(".messages", messages.map(function(message) {
|
return import_mithril.default(".messages", { id: "message-box" }, messages.reverse().map(function(message) {
|
||||||
return import_mithril.default(".message", newMessageText(message.chatter, message.message));
|
return import_mithril.default(".message", newMessageText(message.chatter, message.message));
|
||||||
}));
|
}), import_mithril.default("#anchor"));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var MessageInput = {
|
var MessageInput = {
|
||||||
|
1
slide-deck
Submodule
1
slide-deck
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 8d7b03c886e1f611b1ed69a5f12a7143f83f42a8
|
Loading…
Reference in New Issue
Block a user