wip try to make chatrooms db remember users

This commit is contained in:
simplonco
2023-01-07 17:27:15 +01:00
parent 41dbee1cc0
commit d21c1d1e4e
11 changed files with 425 additions and 175 deletions

View File

@@ -14,6 +14,7 @@
// {
//
// await init_socket();
// init_socket();
// pbm: sometimes socket is still undefined here
socket.on('connect', function(){

View File

@@ -9,7 +9,7 @@
let room_type: string;
let room_password: string;
let response_data: string;
let response_status: number = 200;
let response_status: number = 0;
let response_message: string;
async function handleSubmit(evt)
@@ -26,20 +26,23 @@
};
console.log("formData:", formData);
//const response = await fetch(`http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}/api/v2/chat/join`, {
// send the new room
const response = await fetch('/api/v2/chat/join', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(formData),
});
// get response status and message
response_status = response.status;
response_data = await response.json();
console.log(response_data);
if (response_data.statusCode)
response_status = response_data.statusCode;
else
response_status = 200;
if (response_data.message)
response_message = response_data.message;
console.log("response:", response_data, "status:", response_status, "message:", response_message);
// go to room
if (response_status === 200 && response_message === "successfull room creation")
layout = "room";
}
</script>
@@ -64,7 +67,7 @@
<!-- panel_create -->
<div class="panel panel_create __border_top">
<form on:submit|preventDefault={handleSubmit}>
{#if response_status !== 200}
{#if response_status >= 300}
<Warning content={response_message}/>
{/if}
<!-- name: -->

View File

@@ -1,9 +1,29 @@
<script>
import { onMount } from 'svelte';
import Button from './Chat_button.svelte';
export let layout;
let rooms = [
{room_name: 'my room'},
{room_name: 'better room'},
{room_name: 'best room'},
{room_name: 'ho room'},
];
// ask for the rooms
onMount(() => {
console.log("onmount");
const get_rooms = fetch('/api/v2/chat/rooms')
.then(resp => resp.json())
.then(data =>
{
console.log(data);
//rooms = data;
});
});
</script>
<div class="grid_box">
@@ -30,10 +50,13 @@
<div class="__show_if_only_child">
<p class="__center">/ you have no chat room yet /</p>
</div>
{#each rooms as room}
<Button bind:layout new_layout="room" my_class="list">
{room.room_name}
</Button>
{/each}
<!-- placeholders
<Button bind:layout new_layout="room" my_class="list">
a room
</Button>
<Button bind:layout new_layout="room" my_class="list">
another room
</Button>

View File

@@ -29,7 +29,7 @@
text_area.focus();
}
function send_msg_if(evt)
function enter_send_msg(evt)
{
if (evt.shiftKey && evt.key === "Enter")
{
@@ -72,7 +72,7 @@
class="text_area"
bind:innerHTML={msg}
bind:this={text_area}
on:keypress={send_msg_if}
on:keypress={enter_send_msg}
contenteditable="true"
></div>
</div>

View File

@@ -3,6 +3,9 @@ import io from 'socket.io-client';
export let user;
export let socket;
export let temp = "foo";
export function change_temp(){temp = "bar";};
const address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;
export function init_socket()
@@ -19,7 +22,7 @@ export function init_socket()
{
username: user.username,
},
});
})
});
}