list of room users

This commit is contained in:
hugogogo
2023-01-09 20:52:59 +01:00
parent 5184097765
commit eea631b18a
11 changed files with 587 additions and 234 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,11 +1,11 @@
<script>
import { layout, msgs, user } from './Store_chat';
import { change_room, get_room_messages, get_all_rooms } from './Request_rooms';
import { change_room, get_room_messages, get_my_rooms } from './Request_rooms';
import { onMount } from 'svelte';
import Button from './Element_button.svelte';
let rooms = get_all_rooms();
let rooms = get_my_rooms();
// go to clicked room
async function go_to_room(evt)
@@ -42,8 +42,7 @@
<p class="__center">/ you have no chat room yet /</p>
</div>
{#await rooms}
<!-- promise is pending -->
<p>rooms are loaded...</p>
<p>rooms are loading...</p>
{:then rooms}
{#each rooms as room}
<Button my_class="list" on_click={go_to_room}>

View File

@@ -1,23 +1,12 @@
<script>
import { layout, msgs, user, socket } from './Store_chat';
import { join_room, change_room, get_room_messages } from './Request_rooms';
import { join_room, change_room, get_room_messages, get_all_rooms } from './Request_rooms';
import Button from './Element_button.svelte';
export let back = "";
let rooms = [];
// ask api for the rooms
const get_rooms = fetch('/api/v2/chat/allrooms')
.then(resp => resp.json())
.then(data =>
{
console.log("data.rooms:", data.rooms);
for (let room of data.rooms)
console.log(room.name);
rooms = data.rooms;
});
let rooms = get_all_rooms();
// join the room
async function join_rooms(evt)
@@ -58,10 +47,9 @@
<div class="__show_if_only_child">
<p class="__center">/ there are no public rooms yet /</p>
</div>
{#await get_rooms}
<!-- promise is pending -->
<p>rooms are loaded...</p>
{:then}
{#await rooms}
<p>rooms are loading...</p>
{:then rooms}
{#each rooms as room}
<Button my_class="list" on_click={join_rooms}>
{room.name}

View File

@@ -1,6 +1,6 @@
<script>
import { layout, socket, msgs, add_msg, room_name } from './Store_chat';
import { layout, socket, msgs, add_msg, current_room_name } from './Store_chat';
import Button from './Element_button.svelte';
import Msg from './Element_msg.svelte';
@@ -42,7 +42,7 @@
<!-- room_name -->
<Button new_layout="room_set" my_class="room_name transparent">
{$room_name}
{$current_room_name}
</Button>
<!-- close -->

View File

@@ -1,10 +1,18 @@
<script>
import { layout } from './Store_chat';
import { layout, current_room_name } from './Store_chat';
import { get_room_users } from './Request_rooms';
import Button from './Element_button.svelte';
export let back = "";
let users = get_room_users($current_room_name);
function user_profile()
{
console/log("got to user profile");
}
</script>
<div class="grid_box">
@@ -16,7 +24,7 @@
<!-- room_name -->
<Button my_class="room_name deactivate">
&lt;room_name&gt;
{$current_room_name}
</Button>
<!-- close -->
@@ -34,21 +42,15 @@
<div class="__show_if_only_child">
<p class="__center">/ there are no public rooms yet /</p>
</div>
<!-- placeholders
<Button new_layout="user" my_class="list">
user 1
</Button>
<Button new_layout="user" my_class="list blocked">
user 2
</Button>
<Button new_layout="user" my_class="list">
user 3
</Button>
<Button new_layout="user" my_class="list">
user 4
</Button>
------------- -->
<!-- END placeholders -->
{#await users}
<p>list of users is loading...</p>
{:then users}
{#each users as user}
<Button new_layout="user" my_class="list" on_click={user_profile}>
{user}
</Button>
{/each}
{/await}
</div>
</div>

View File

@@ -1,4 +1,4 @@
import { msgs, user, layout, socket, room_name } from './Store_chat';
import { msgs, user, layout, socket, current_room_name } from './Store_chat';
export async function get_room_messages()
{
@@ -64,31 +64,31 @@ export async function join_room(room_name)
socket.emit('join', room_name);
}
export async function change_room(name)
export async function change_room(room_name)
{
console.log("in change_room");
let r_name = {
room_name: name,
let room_name_request = {
room_name: room_name,
}
const response = await fetch('/api/v2/chat/change', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(r_name),
body: JSON.stringify(room_name_request),
});
let data = await response.json();
console.log(data.message);
await get_room_messages();
socket.emit('change', name);
socket.emit('change', room_name);
room_name.set(name);
current_room_name.set(room_name);
layout.set("room");
}
export async function get_all_rooms()
export async function get_my_rooms()
{
console.log("in get_all_rooms");
console.log("in get_my_rooms");
// ask api for the rooms
const response = await fetch('/api/v2/chat/myrooms');
@@ -102,3 +102,36 @@ export async function get_all_rooms()
return rooms;
}
export async function get_all_rooms()
{
console.log("in get_all_rooms");
// ask api for the rooms
const response = await fetch('/api/v2/chat/allrooms');
const data = await response.json();
console.log("data.rooms:", data.rooms);
for (let room of data.rooms)
console.log(room.name);
let rooms = data.rooms;
return rooms;
}
export async function get_room_users()
{
console.log("in get_room_users");
// ask api for the rooms
const response = await fetch('/api/v2/chat/roomusers');
const data = await response.json();
console.log("data.users:", data.users);
for (let user of data.users)
console.log(user.username);
let users = data.users;
return users;
}

View File

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