directs have good names and cannot leave server side

This commit is contained in:
simplonco
2023-01-12 11:25:14 +01:00
parent 8e99a764f7
commit 6be1f32fa8
8 changed files with 60 additions and 43 deletions

View File

@@ -48,7 +48,7 @@
{:then rooms}
{#each rooms as room}
<Button my_class="list" on_click={function() {go_to_room(room)}}>
{room.name}
{room.client_name}
</Button>
{/each}
{/await}

View File

@@ -1,7 +1,7 @@
<script>
import { layout, current_room_name } from './Store_chat';
import { get_room_users, user_leave_room } from './Request_rooms';
import { get_room_users, leave_room } from './Request_rooms';
import Button from './Element_button.svelte';
export let back = "";
@@ -13,10 +13,10 @@
console/log("in user_profile");
}
function leave_room()
function user_leave_room()
{
console.log("in leave_room");
user_leave_room();
leave_room();
layout.set("home");
}
@@ -41,7 +41,7 @@
<!-- panel_room_set -->
<div class="panel panel_room_set __border_top">
<Button on_click={leave_room}>
<Button on_click={user_leave_room}>
leave
</Button>
<p>room users :</p>

View File

@@ -1,4 +1,4 @@
import { msgs, user, layout, socket, current_room_name } from './Store_chat';
import { msgs, user, layout, socket, current_room_name, current_room_type } from './Store_chat';
import type { Room } from './Interface_chat';
export async function get_room_messages()
@@ -57,6 +57,21 @@ export async function join_room(room: Room)
return data.room;
}
function set_client_name_on_room(room: Room)
{
console.log("in set_client_name_on_room, for room:", room);
if (room.type === 'direct')
{
console.log("in direct room");
room.client_name = room.users[0];
if (room.client_name === user.username)
room.client_name = room.users[1];
}
else
room.client_name = room.name;
return room;
}
export async function change_room(room: Room)
{
console.log("in change_room");
@@ -71,14 +86,10 @@ export async function change_room(room: Room)
await get_room_messages();
let room_name = data.room.name;
if (room.type === 'direct')
{
room_name === room.users[0];
if (room_name === user.username)
room_name === room.users[1];
}
current_room_name.set(room_name);
set_client_name_on_room(room);
current_room_name.set(room.client_name);
current_room_type.set(room.type);
layout.set("room");
}
@@ -88,9 +99,10 @@ export async function get_my_rooms()
const response = await fetch('/api/v2/chat/myrooms');
const data = await response.json();
console.log("data.rooms:", data.rooms);
let rooms = data.rooms.map(room => set_client_name_on_room(room));
console.log("rooms:", rooms);
return data.rooms;
return rooms;
}
export async function get_all_rooms()
@@ -113,11 +125,11 @@ export async function get_room_users()
return data.users;
}
export async function user_leave_room()
export async function leave_room()
{
console.log("in leave_room");
const response = await fetch('/api/v2/chat/removeuser', {
const response = await fetch('/api/v2/chat/leave', {
method: 'DELETE',
});
}

View File

@@ -3,6 +3,7 @@ import { writable } from 'svelte/store';
export let msgs = writable([]);
export let layout = writable("close");
export let current_room_name = writable("");
export let current_room_type = writable("");
export let user;
export let socket;