workadventure/front/src/Stores/UserWokaPictureStore.ts
2021-12-04 15:36:11 +01:00

35 lines
1,002 B
TypeScript

import { writable } from "svelte/store";
import type { RoomConnection } from "../Connexion/RoomConnection";
/**
* A store that contains the players avatars pictures
*/
function createUserWokaPictureStore() {
const players = new Map<number, string>();
const { subscribe, update } = writable(players);
return {
subscribe,
connectToRoomConnection: (roomConnection: RoomConnection) => {
roomConnection.onUserLeft((userId) => {
update((users) => {
users.delete(userId);
return users;
});
});
},
setWokaPicture(userId: number, url: string) {
update((users) => {
users.set(userId, url);
return users;
});
},
getWokaPictureById(userId: number): string | undefined {
return players.get(userId);
},
};
}
export const userWokaPictureStore = createUserWokaPictureStore();