Instead of using onDestroy, return a function from onMount
This commit is contained in:
parent
018ae4fe06
commit
b0e2a9e6d4
3 changed files with 21 additions and 13 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onDestroy, createEventDispatcher, onMount } from "svelte";
|
|
||||||
import { isHost, myName, gameCode, players } from "../../stores";
|
import { isHost, myName, gameCode, players } from "../../stores";
|
||||||
|
import { createEventDispatcher, onMount } from "svelte";
|
||||||
import SciFiButton from "../SciFi-Button.svelte";
|
import SciFiButton from "../SciFi-Button.svelte";
|
||||||
import { ILobbyInfo, Status } from "common";
|
import { ILobbyInfo, Status } from "common";
|
||||||
import BaseModal from "./BaseModal.svelte";
|
import BaseModal from "./BaseModal.svelte";
|
||||||
|
|
@ -28,6 +28,10 @@ function handleLobbyConnection(data: ILobbyInfo) {
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
socket.on(`res:lobby.players.join`, handleLobbyConnection);
|
socket.on(`res:lobby.players.join`, handleLobbyConnection);
|
||||||
socket.on(`res:lobby.create`, handleLobbyConnection);
|
socket.on(`res:lobby.create`, handleLobbyConnection);
|
||||||
|
return () => {
|
||||||
|
socket.off(`res:lobby.players.join`);
|
||||||
|
socket.off(`res:lobby.create`);
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
function connectToLobby() {
|
function connectToLobby() {
|
||||||
|
|
@ -45,12 +49,7 @@ function connectToLobby() {
|
||||||
name: $myName
|
name: $myName
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
onDestroy(() => {
|
|
||||||
socket.off(`res:lobby.create`);
|
|
||||||
socket.off(`res:lobby.players.join`);
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<BaseModal {open} on:close>
|
<BaseModal {open} on:close>
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,11 @@
|
||||||
import { Status, colours, spaceships } from "common";
|
import { Status, colours, spaceships } from "common";
|
||||||
import SpaceShuttle from "../icons/spaceship.svelte";
|
import SpaceShuttle from "../icons/spaceship.svelte";
|
||||||
import SciFiButton from "../SciFi-Button.svelte";
|
import SciFiButton from "../SciFi-Button.svelte";
|
||||||
import { createEventDispatcher } from "svelte";
|
import { createEventDispatcher, onMount } from "svelte";
|
||||||
import { myName, players } from "../../stores";
|
import { myName, players } from "../../stores";
|
||||||
import BaseModal from "./BaseModal.svelte";
|
import BaseModal from "./BaseModal.svelte";
|
||||||
import Hexagon from "../Hexagon.svelte";
|
import Hexagon from "../Hexagon.svelte";
|
||||||
|
import { socket } from "../../main";
|
||||||
|
|
||||||
const emit = createEventDispatcher();
|
const emit = createEventDispatcher();
|
||||||
|
|
||||||
|
|
@ -20,6 +21,15 @@ var selectedColour = player.colour.hex;
|
||||||
var selectedShip = player.ship.id;
|
var selectedShip = player.ship.id;
|
||||||
var error = null;
|
var error = null;
|
||||||
|
|
||||||
|
function designUpdate(data: any) {};
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
socket.on(`req:lobby.players.update`, designUpdate);
|
||||||
|
return () => {
|
||||||
|
socket.off(`req:lobby.players.update`);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
function saveShipDesign() {
|
function saveShipDesign() {
|
||||||
/* TODO: Send event to server, wait for confirmation */
|
/* TODO: Send event to server, wait for confirmation */
|
||||||
let response: any = {
|
let response: any = {
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ import SciFiButton from "../../components/SciFi-Button.svelte";
|
||||||
import { ILobbyInfo, Status, gameOptions } from "common";
|
import { ILobbyInfo, Status, gameOptions } from "common";
|
||||||
import Player from "../../components/Player.svelte";
|
import Player from "../../components/Player.svelte";
|
||||||
import { isHost, players } from "../../stores";
|
import { isHost, players } from "../../stores";
|
||||||
import { onMount, onDestroy } from "svelte"
|
|
||||||
import { socket } from "../../main";
|
import { socket } from "../../main";
|
||||||
|
import { onMount } from "svelte";
|
||||||
|
|
||||||
function handleLobbyInfo(data: ILobbyInfo) {
|
function handleLobbyInfo(data: ILobbyInfo) {
|
||||||
if (data.status == Status.Success) {
|
if (data.status == Status.Success) {
|
||||||
|
|
@ -19,6 +19,9 @@ function handleLobbyInfo(data: ILobbyInfo) {
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
socket.on(`res:lobby.info`, handleLobbyInfo);
|
socket.on(`res:lobby.info`, handleLobbyInfo);
|
||||||
|
return () => {
|
||||||
|
socket.off(`res:lobby.info`);
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
function tempButtonHandler() {};
|
function tempButtonHandler() {};
|
||||||
|
|
@ -41,10 +44,6 @@ function toggleOption(e: CustomEvent<string>) {
|
||||||
|
|
||||||
// TODO: Send websocket event to server
|
// TODO: Send websocket event to server
|
||||||
};
|
};
|
||||||
|
|
||||||
onDestroy(() => {
|
|
||||||
socket.off(`res:lobby.info`);
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<OptionInfo
|
<OptionInfo
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue