update, allow disconnecting
This commit is contained in:
Vendored
+25
-2
@@ -321,6 +321,7 @@
|
|||||||
}
|
}
|
||||||
// public methods
|
// public methods
|
||||||
connect(address) {
|
connect(address) {
|
||||||
|
this.disconnect();
|
||||||
this.ws = new WebSocket(address);
|
this.ws = new WebSocket(address);
|
||||||
this.ws.addEventListener("open", this.connectionHandler);
|
this.ws.addEventListener("open", this.connectionHandler);
|
||||||
this.ws.addEventListener("close", this.disconnectionHandler);
|
this.ws.addEventListener("close", this.disconnectionHandler);
|
||||||
@@ -330,6 +331,9 @@
|
|||||||
this.messageHandler(data);
|
this.messageHandler(data);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
disconnect() {
|
||||||
|
this.ws?.close();
|
||||||
|
}
|
||||||
sendMessage(channel, body) {
|
sendMessage(channel, body) {
|
||||||
const messageObject = {
|
const messageObject = {
|
||||||
messageChannel: channel,
|
messageChannel: channel,
|
||||||
@@ -366,6 +370,7 @@
|
|||||||
serverAddress: "Server Address",
|
serverAddress: "Server Address",
|
||||||
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
||||||
connectToServer: "Connect",
|
connectToServer: "Connect",
|
||||||
|
disconnect: "Disonnect",
|
||||||
primaryChannel: "Primary channel",
|
primaryChannel: "Primary channel",
|
||||||
leaveChannel: "Leave",
|
leaveChannel: "Leave",
|
||||||
channelPlaceholder: "my-channel",
|
channelPlaceholder: "my-channel",
|
||||||
@@ -404,6 +409,7 @@
|
|||||||
serverAddress: "Direcci\xF3n del servidor",
|
serverAddress: "Direcci\xF3n del servidor",
|
||||||
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
||||||
connectToServer: "Conectar",
|
connectToServer: "Conectar",
|
||||||
|
disconnect: "Desconectar",
|
||||||
primaryChannel: "Canal principal",
|
primaryChannel: "Canal principal",
|
||||||
leaveChannel: "Salir",
|
leaveChannel: "Salir",
|
||||||
channelPlaceholder: "mi-canal",
|
channelPlaceholder: "mi-canal",
|
||||||
@@ -440,6 +446,7 @@
|
|||||||
serverAddress: "Serveraddresse",
|
serverAddress: "Serveraddresse",
|
||||||
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
||||||
connectToServer: "Verbinden",
|
connectToServer: "Verbinden",
|
||||||
|
disconnect: "Trennen",
|
||||||
primaryChannel: "Hauptkanal",
|
primaryChannel: "Hauptkanal",
|
||||||
leaveChannel: "Verlassen",
|
leaveChannel: "Verlassen",
|
||||||
channelPlaceholder: "mein-kanal",
|
channelPlaceholder: "mein-kanal",
|
||||||
@@ -490,6 +497,10 @@
|
|||||||
[serverAddress],
|
[serverAddress],
|
||||||
() => translation.connectedTo(serverAddress.value)
|
() => translation.connectedTo(serverAddress.value)
|
||||||
);
|
);
|
||||||
|
var cannotDisonnect = createProxyState(
|
||||||
|
[isConnected],
|
||||||
|
() => isConnected.value == false
|
||||||
|
);
|
||||||
var cannotConnect = createProxyState(
|
var cannotConnect = createProxyState(
|
||||||
[serverAddress, currentAddress, isConnected],
|
[serverAddress, currentAddress, isConnected],
|
||||||
() => serverAddress.value == "" || currentAddress.value == serverAddress.value && isConnected.value == true
|
() => serverAddress.value == "" || currentAddress.value == serverAddress.value && isConnected.value == true
|
||||||
@@ -515,8 +526,8 @@
|
|||||||
() => newSecondaryChannelName.value == ""
|
() => newSecondaryChannelName.value == ""
|
||||||
);
|
);
|
||||||
var cannotSendMessage = createProxyState(
|
var cannotSendMessage = createProxyState(
|
||||||
[currentPrimaryChannel, messageBody, senderName],
|
[currentPrimaryChannel, messageBody, senderName, isConnected],
|
||||||
() => currentPrimaryChannel.value == "" || messageBody.value == "" || senderName.value == ""
|
() => isConnected.value == false || currentPrimaryChannel.value == "" || messageBody.value == "" || senderName.value == ""
|
||||||
);
|
);
|
||||||
var messages = restoreListState("messages");
|
var messages = restoreListState("messages");
|
||||||
function connect() {
|
function connect() {
|
||||||
@@ -525,6 +536,10 @@
|
|||||||
isConnected.value = false;
|
isConnected.value = false;
|
||||||
UDN.connect(serverAddress.value);
|
UDN.connect(serverAddress.value);
|
||||||
}
|
}
|
||||||
|
function disconnect() {
|
||||||
|
if (cannotDisonnect.value == true) return;
|
||||||
|
UDN.disconnect();
|
||||||
|
}
|
||||||
async function sendMessage() {
|
async function sendMessage() {
|
||||||
if (cannotSendMessage.value == true) return;
|
if (cannotSendMessage.value == true) return;
|
||||||
const secondaryChannelNames = [
|
const secondaryChannelNames = [
|
||||||
@@ -778,6 +793,14 @@
|
|||||||
placeholder: translation.serverAddressPlaceholder
|
placeholder: translation.serverAddressPlaceholder
|
||||||
}
|
}
|
||||||
))), /* @__PURE__ */ createElement("div", { class: "flex-row width-input justify-end" }, /* @__PURE__ */ createElement(
|
))), /* @__PURE__ */ createElement("div", { class: "flex-row width-input justify-end" }, /* @__PURE__ */ createElement(
|
||||||
|
"button",
|
||||||
|
{
|
||||||
|
class: "danger width-50",
|
||||||
|
"on:click": disconnect,
|
||||||
|
"toggle:disabled": cannotDisonnect
|
||||||
|
},
|
||||||
|
translation.disconnect
|
||||||
|
), /* @__PURE__ */ createElement(
|
||||||
"button",
|
"button",
|
||||||
{
|
{
|
||||||
class: "primary width-50",
|
class: "primary width-50",
|
||||||
|
|||||||
Vendored
+4
-1
@@ -949,7 +949,10 @@ main {
|
|||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tile,
|
.tile {
|
||||||
|
word-break: normal;
|
||||||
|
}
|
||||||
|
|
||||||
.break-all {
|
.break-all {
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bloatless-react": "^1.2.4",
|
"bloatless-react": "^1.2.4",
|
||||||
"esbuild": "latest",
|
"esbuild": "latest",
|
||||||
"udn-frontend": "^1.0.2"
|
"udn-frontend": "^1.0.3"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "esbuild src/index.tsx --bundle --outdir=dist"
|
"build": "esbuild src/index.tsx --bundle --outdir=dist"
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ import * as React from "bloatless-react";
|
|||||||
|
|
||||||
import {
|
import {
|
||||||
cannotConnect,
|
cannotConnect,
|
||||||
|
cannotDisonnect,
|
||||||
connect,
|
connect,
|
||||||
|
disconnect,
|
||||||
serverAddress,
|
serverAddress,
|
||||||
} from "../model";
|
} from "../model";
|
||||||
|
|
||||||
@@ -23,6 +25,13 @@ export function ConnectionInputView() {
|
|||||||
</div>
|
</div>
|
||||||
</label>
|
</label>
|
||||||
<div class="flex-row width-input justify-end">
|
<div class="flex-row width-input justify-end">
|
||||||
|
<button
|
||||||
|
class="danger width-50"
|
||||||
|
on:click={disconnect}
|
||||||
|
toggle:disabled={cannotDisonnect}
|
||||||
|
>
|
||||||
|
{translation.disconnect}
|
||||||
|
</button>
|
||||||
<button
|
<button
|
||||||
class="primary width-50"
|
class="primary width-50"
|
||||||
on:click={connect}
|
on:click={connect}
|
||||||
|
|||||||
+12
-1
@@ -49,6 +49,11 @@ export const connectionMessage = React.createProxyState([serverAddress], () =>
|
|||||||
translation.connectedTo(serverAddress.value)
|
translation.connectedTo(serverAddress.value)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
export const cannotDisonnect = React.createProxyState(
|
||||||
|
[isConnected],
|
||||||
|
() => isConnected.value == false
|
||||||
|
);
|
||||||
|
|
||||||
export const cannotConnect = React.createProxyState(
|
export const cannotConnect = React.createProxyState(
|
||||||
[serverAddress, currentAddress, isConnected],
|
[serverAddress, currentAddress, isConnected],
|
||||||
() =>
|
() =>
|
||||||
@@ -88,8 +93,9 @@ export const cannotAddSecondaryChannel = React.createProxyState(
|
|||||||
);
|
);
|
||||||
|
|
||||||
export const cannotSendMessage = React.createProxyState(
|
export const cannotSendMessage = React.createProxyState(
|
||||||
[currentPrimaryChannel, messageBody, senderName],
|
[currentPrimaryChannel, messageBody, senderName, isConnected],
|
||||||
() =>
|
() =>
|
||||||
|
isConnected.value == false ||
|
||||||
currentPrimaryChannel.value == "" ||
|
currentPrimaryChannel.value == "" ||
|
||||||
messageBody.value == "" ||
|
messageBody.value == "" ||
|
||||||
senderName.value == ""
|
senderName.value == ""
|
||||||
@@ -106,6 +112,11 @@ export function connect() {
|
|||||||
UDN.connect(serverAddress.value);
|
UDN.connect(serverAddress.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function disconnect() {
|
||||||
|
if (cannotDisonnect.value == true) return;
|
||||||
|
UDN.disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
export async function sendMessage(): Promise<void> {
|
export async function sendMessage(): Promise<void> {
|
||||||
if (cannotSendMessage.value == true) return;
|
if (cannotSendMessage.value == true) return;
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ const englishTranslations = {
|
|||||||
serverAddress: "Server Address",
|
serverAddress: "Server Address",
|
||||||
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
||||||
connectToServer: "Connect",
|
connectToServer: "Connect",
|
||||||
|
disconnect: "Disonnect",
|
||||||
primaryChannel: "Primary channel",
|
primaryChannel: "Primary channel",
|
||||||
leaveChannel: "Leave",
|
leaveChannel: "Leave",
|
||||||
channelPlaceholder: "my-channel",
|
channelPlaceholder: "my-channel",
|
||||||
@@ -56,6 +57,7 @@ const allTranslations: { [key: string]: typeof englishTranslations } = {
|
|||||||
serverAddress: "Dirección del servidor",
|
serverAddress: "Dirección del servidor",
|
||||||
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
||||||
connectToServer: "Conectar",
|
connectToServer: "Conectar",
|
||||||
|
disconnect: "Desconectar",
|
||||||
primaryChannel: "Canal principal",
|
primaryChannel: "Canal principal",
|
||||||
leaveChannel: "Salir",
|
leaveChannel: "Salir",
|
||||||
channelPlaceholder: "mi-canal",
|
channelPlaceholder: "mi-canal",
|
||||||
@@ -96,6 +98,7 @@ const allTranslations: { [key: string]: typeof englishTranslations } = {
|
|||||||
serverAddress: "Serveraddresse",
|
serverAddress: "Serveraddresse",
|
||||||
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
||||||
connectToServer: "Verbinden",
|
connectToServer: "Verbinden",
|
||||||
|
disconnect: "Trennen",
|
||||||
primaryChannel: "Hauptkanal",
|
primaryChannel: "Hauptkanal",
|
||||||
leaveChannel: "Verlassen",
|
leaveChannel: "Verlassen",
|
||||||
channelPlaceholder: "mein-kanal",
|
channelPlaceholder: "mein-kanal",
|
||||||
|
|||||||
Reference in New Issue
Block a user