diff --git a/bun.lockb b/bun.lockb index 345e9935..6cc47bde 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/dist/index.js b/dist/index.js index c81cf170..2297b53e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -321,6 +321,7 @@ } // public methods connect(address) { + this.disconnect(); this.ws = new WebSocket(address); this.ws.addEventListener("open", this.connectionHandler); this.ws.addEventListener("close", this.disconnectionHandler); @@ -330,6 +331,9 @@ this.messageHandler(data); }); } + disconnect() { + this.ws?.close(); + } sendMessage(channel, body) { const messageObject = { messageChannel: channel, @@ -366,6 +370,7 @@ serverAddress: "Server Address", serverAddressPlaceholder: "wss://192.168.0.69:3000", connectToServer: "Connect", + disconnect: "Disonnect", primaryChannel: "Primary channel", leaveChannel: "Leave", channelPlaceholder: "my-channel", @@ -404,6 +409,7 @@ serverAddress: "Direcci\xF3n del servidor", serverAddressPlaceholder: "wss://192.168.0.69:3000", connectToServer: "Conectar", + disconnect: "Desconectar", primaryChannel: "Canal principal", leaveChannel: "Salir", channelPlaceholder: "mi-canal", @@ -440,6 +446,7 @@ serverAddress: "Serveraddresse", serverAddressPlaceholder: "wss://192.168.0.69:3000", connectToServer: "Verbinden", + disconnect: "Trennen", primaryChannel: "Hauptkanal", leaveChannel: "Verlassen", channelPlaceholder: "mein-kanal", @@ -490,6 +497,10 @@ [serverAddress], () => translation.connectedTo(serverAddress.value) ); + var cannotDisonnect = createProxyState( + [isConnected], + () => isConnected.value == false + ); var cannotConnect = createProxyState( [serverAddress, currentAddress, isConnected], () => serverAddress.value == "" || currentAddress.value == serverAddress.value && isConnected.value == true @@ -515,8 +526,8 @@ () => newSecondaryChannelName.value == "" ); var cannotSendMessage = createProxyState( - [currentPrimaryChannel, messageBody, senderName], - () => currentPrimaryChannel.value == "" || messageBody.value == "" || senderName.value == "" + [currentPrimaryChannel, messageBody, senderName, isConnected], + () => isConnected.value == false || currentPrimaryChannel.value == "" || messageBody.value == "" || senderName.value == "" ); var messages = restoreListState("messages"); function connect() { @@ -525,6 +536,10 @@ isConnected.value = false; UDN.connect(serverAddress.value); } + function disconnect() { + if (cannotDisonnect.value == true) return; + UDN.disconnect(); + } async function sendMessage() { if (cannotSendMessage.value == true) return; const secondaryChannelNames = [ @@ -778,6 +793,14 @@ placeholder: translation.serverAddressPlaceholder } ))), /* @__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", { class: "primary width-50", diff --git a/dist/styles.css b/dist/styles.css index 6c6bfc5c..8d09458f 100644 --- a/dist/styles.css +++ b/dist/styles.css @@ -949,7 +949,10 @@ main { text-overflow: ellipsis; } -.tile, +.tile { + word-break: normal; +} + .break-all { word-break: break-all; } diff --git a/package.json b/package.json index 2c9591b0..7f6dc657 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "dependencies": { "bloatless-react": "^1.2.4", "esbuild": "latest", - "udn-frontend": "^1.0.2" + "udn-frontend": "^1.0.3" }, "scripts": { "build": "esbuild src/index.tsx --bundle --outdir=dist" diff --git a/src/Views/connectionSettingsView.tsx b/src/Views/connectionSettingsView.tsx index 1a25134d..dc616cd2 100644 --- a/src/Views/connectionSettingsView.tsx +++ b/src/Views/connectionSettingsView.tsx @@ -2,7 +2,9 @@ import * as React from "bloatless-react"; import { cannotConnect, + cannotDisonnect, connect, + disconnect, serverAddress, } from "../model"; @@ -23,6 +25,13 @@ export function ConnectionInputView() {