From 0bd65e5f197af6d20f0ec73e81a4b428e0666e04 Mon Sep 17 00:00:00 2001 From: Max Leiter Date: Sun, 28 Mar 2021 19:55:35 -0700 Subject: [PATCH] Vue 3 upgrade --- .eslintrc.yml | 2 +- client/components/App.vue | 42 +- client/components/ChatInput.vue | 4 +- client/components/ConfirmDialog.vue | 2 +- client/components/ContextMenu.vue | 5 +- client/components/DateMarker.vue | 2 +- client/components/JoinChannel.vue | 3 +- client/components/LinkPreview.vue | 6 +- client/components/Mentions.vue | 13 +- client/components/Message.vue | 2 +- client/components/MessageList.vue | 19 +- client/components/MessageTypes/whois.vue | 6 +- client/components/NetworkList.vue | 5 +- client/components/NetworkLobby.vue | 1 + client/components/ParsedMessage.vue | 18 +- client/components/Sidebar.vue | 9 +- client/components/Windows/SearchResults.vue | 246 +++ client/components/Windows/SignIn.vue | 2 +- client/css/style.css | 4 + client/index.html.tpl | 2 +- client/js/helpers/parse.js | 61 +- client/js/router.js | 32 +- client/js/socket-events/auth.js | 2 +- client/js/socket-events/init.js | 9 +- client/js/socket-events/more.js | 5 +- client/js/socket-events/msg_preview.js | 5 +- client/js/socket-events/network.js | 4 +- client/js/store.js | 7 +- client/js/vue.js | 67 +- package.json | 21 +- webpack.config-test.js | 2 +- webpack.config.js | 14 +- yarn.lock | 1569 +++++++++++-------- 33 files changed, 1336 insertions(+), 855 deletions(-) create mode 100644 client/components/Windows/SearchResults.vue diff --git a/.eslintrc.yml b/.eslintrc.yml index b67991b5..37b30d86 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -71,6 +71,6 @@ plugins: extends: - eslint:recommended - - plugin:vue/recommended + - plugin:vue/vue3-recommended - prettier - prettier/vue diff --git a/client/components/App.vue b/client/components/App.vue index b136874f..6ead6ec2 100644 --- a/client/components/App.vue +++ b/client/components/App.vue @@ -18,6 +18,9 @@ import Mousetrap from "mousetrap"; import throttle from "lodash/throttle"; import storage from "../js/localStorage"; import isIgnoredKeybind from "../js/helpers/isIgnoredKeybind"; +import socket from "../js/socket"; + +import {navigate} from "../js/router"; import Sidebar from "./Sidebar.vue"; import ImageViewer from "./ImageViewer.vue"; @@ -67,8 +70,10 @@ export default { }; this.dayChangeTimeout = setTimeout(emitDayChange, this.msUntilNextDay()); + + socket.open(); }, - beforeDestroy() { + beforeUnmount() { Mousetrap.unbind("esc", this.escapeKey); Mousetrap.unbind("alt+u", this.toggleUserList); Mousetrap.unbind("alt+s", this.toggleSidebar); @@ -124,6 +129,41 @@ export default { this.$store.commit("userlistOpen", isUserlistOpen === "true"); }, + switchToChannel(channel) { + navigate("RoutedChat", {id: channel.id}); + }, + closeChannel(channel) { + if (channel.type === "lobby") { + eventbus.emit( + "confirm-dialog", + { + title: "Remove network", + text: `Are you sure you want to quit and remove ${channel.name}? This cannot be undone.`, + button: "Remove network", + }, + (result) => { + if (!result) { + return; + } + + channel.closed = true; + socket.emit("input", { + target: Number(channel.id), + text: "/quit", + }); + } + ); + + return; + } + + channel.closed = true; + + socket.emit("input", { + target: Number(channel.id), + text: "/close", + }); + }, }, }; diff --git a/client/components/ChatInput.vue b/client/components/ChatInput.vue index d12b9405..4481116d 100644 --- a/client/components/ChatInput.vue +++ b/client/components/ChatInput.vue @@ -103,7 +103,7 @@ export default { this.setInputSize(); }, }, - mounted() { + beforeUnmount() { eventbus.on("escapekey", this.blurInput); if (this.$store.state.settings.autocomplete) { @@ -165,7 +165,7 @@ export default { upload.mounted(); } }, - destroyed() { + unmounted() { eventbus.off("escapekey", this.blurInput); if (autocompletionRef) { diff --git a/client/components/ConfirmDialog.vue b/client/components/ConfirmDialog.vue index af92e368..3ca97922 100644 --- a/client/components/ConfirmDialog.vue +++ b/client/components/ConfirmDialog.vue @@ -65,7 +65,7 @@ export default { eventbus.on("escapekey", this.close); eventbus.on("confirm-dialog", this.open); }, - destroyed() { + unmounted() { eventbus.off("escapekey", this.close); eventbus.off("confirm-dialog", this.open); }, diff --git a/client/components/ContextMenu.vue b/client/components/ContextMenu.vue index bab07a43..5d4161da 100644 --- a/client/components/ContextMenu.vue +++ b/client/components/ContextMenu.vue @@ -18,9 +18,8 @@ @mouseleave="activeItem = -1" @keydown.enter.prevent="clickActiveItem" > -