From 154d6147a928d91c3e16c8a5daa23a4109954e64 Mon Sep 17 00:00:00 2001 From: supertiger1234 Date: Tue, 29 Oct 2019 20:02:56 +0000 Subject: [PATCH] New design, a lot of changes. --- package-lock.json | 5 + package.json | 1 + src/components/ChangeLog-legacy.vue | 182 ------- src/components/ElectronJS/FrameButtons.vue | 9 +- src/components/app/FriendsList.vue | 154 +++--- src/components/app/MemberTemplate.vue | 4 +- src/components/app/MembersList.vue | 4 +- src/components/app/MessagePanel.vue | 2 +- src/components/app/MessageTemplate.vue | 222 ++++---- src/components/app/MyMiniInformation.vue | 45 +- src/components/app/Navigation.vue | 373 +++++++++++++ src/components/app/Popouts/Popouts.vue | 9 +- .../app/Popouts/Popouts/AddFriend.vue | 174 ++++++ .../app/Popouts/Popouts/ServerContextMenu.vue | 102 ++++ .../Popouts/Popouts/ServerInvitePopout.vue | 7 +- .../Popouts/Popouts/ServerMemberContext.vue | 10 +- .../Popouts/SettingsPanels/Notifications.vue | 21 +- .../Popouts/Popouts/messageContextMenu.vue | 11 +- .../Popouts/Popouts/userInformationPopout.vue | 2 +- src/components/app/ServerList.vue | 219 +++++--- .../app/ServerTemplate/ChannelTemplate.vue | 18 +- .../app/ServerTemplate/ChannelsList.vue | 19 +- .../app/ServerTemplate/ServerTemplate.vue | 277 +++------- src/components/app/Tabs/DirectMessage.vue | 2 +- src/components/app/Tabs/Explore.vue | 212 ++++---- .../app/Tabs/Explore/searchHeader.vue | 9 +- .../app/Tabs/Explore/serverTemplate.vue | 36 +- src/components/app/Tabs/News.vue | 123 ++--- src/components/app/Tabs/Servers.vue | 4 +- .../app/relationships/AddFriendPanel.vue | 205 ------- .../app/relationships/FriendsTemplate.vue | 20 +- .../app/relationships/OfflineFriends.vue | 2 - .../app/relationships/OnlineFriends.vue | 3 - .../app/relationships/RecentFriends.vue | 2 - src/components/app/relationships/Tab.vue | 1 + src/components/app/statusList.vue | 13 +- src/store/index.js | 22 +- src/store/modules/channelModule.js | 10 + src/store/modules/messageModule.js | 4 +- .../modules/popoutsModule/popoutsModule.js | 19 +- src/store/modules/settingsModule.js | 6 +- src/store/modules/socketIOModule.js | 7 +- src/utils/changelog.js | 16 +- src/utils/markdown-it-plugins/customEmoji.js | 19 +- .../markdown-it-plugins/normalizeFence.js | 83 +++ src/utils/messageFormatter.js | 5 +- src/utils/notificationSound.js | 7 +- src/utils/simpleMarkdownRules/CustomEmoji.js | 29 + src/utils/simpleMarkdownRules/linkify.js | 29 + src/views/App.vue | 64 +-- src/views/HomePage - Legacy.vue | 508 ------------------ 51 files changed, 1599 insertions(+), 1731 deletions(-) delete mode 100644 src/components/ChangeLog-legacy.vue create mode 100644 src/components/app/Navigation.vue create mode 100644 src/components/app/Popouts/Popouts/AddFriend.vue create mode 100644 src/components/app/Popouts/Popouts/ServerContextMenu.vue delete mode 100644 src/components/app/relationships/AddFriendPanel.vue create mode 100644 src/utils/markdown-it-plugins/normalizeFence.js create mode 100644 src/utils/simpleMarkdownRules/CustomEmoji.js create mode 100644 src/utils/simpleMarkdownRules/linkify.js delete mode 100644 src/views/HomePage - Legacy.vue diff --git a/package-lock.json b/package-lock.json index b562de0..176fb51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10296,6 +10296,11 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "simple-markdown": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/simple-markdown/-/simple-markdown-0.6.1.tgz", + "integrity": "sha512-02HKXvM9J7pJWf74fuWthcgof5jF81Yndt+XcXtWnEtpp8QaX9dUAJpdAA6KWrB/rSGzrOi0PRAVy9/0bJiIZw==" + }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", diff --git a/package.json b/package.json index fd7d830..3ee4f8a 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "markdown-it-chat-formatter": "^0.1.1", "match-sorter": "^2.3.0", "particles.js": "^2.0.0", + "simple-markdown": "^0.6.1", "socket.io": "^2.2.0", "socket.io-client": "^2.2.0", "twemoji": "^11.3.0", diff --git a/src/components/ChangeLog-legacy.vue b/src/components/ChangeLog-legacy.vue deleted file mode 100644 index 554ef4e..0000000 --- a/src/components/ChangeLog-legacy.vue +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - diff --git a/src/components/ElectronJS/FrameButtons.vue b/src/components/ElectronJS/FrameButtons.vue index a2f0dc6..64fc80f 100644 --- a/src/components/ElectronJS/FrameButtons.vue +++ b/src/components/ElectronJS/FrameButtons.vue @@ -54,7 +54,7 @@ export default { right: 0; left: 0; z-index: 9999999999999999; - height: 39px; + height: 25px; -webkit-app-region: drag; justify-content: flex-end; } @@ -66,8 +66,7 @@ export default { display: flex; flex-shrink: 0; height: 100%; - width: 60px; - border-radius: 2px; + width: 30px; color: white; align-items: center; justify-content: center; @@ -82,9 +81,9 @@ export default { background: rgba(255, 0, 0, 0.595); } .frame-buttons .minimize:hover { - background: rgba(255, 81, 0, 0.595); + background: rgba(46, 46, 46, 0.595); } .frame-buttons .res-max:hover { - background: rgba(0, 162, 255, 0.595); + background: rgba(46, 46, 46, 0.595); } diff --git a/src/components/app/FriendsList.vue b/src/components/app/FriendsList.vue index fbe4184..d1eed61 100644 --- a/src/components/app/FriendsList.vue +++ b/src/components/app/FriendsList.vue @@ -1,88 +1,78 @@ diff --git a/src/components/app/Navigation.vue b/src/components/app/Navigation.vue new file mode 100644 index 0000000..3c238d2 --- /dev/null +++ b/src/components/app/Navigation.vue @@ -0,0 +1,373 @@ + + + + + \ No newline at end of file diff --git a/src/components/app/Popouts/Popouts.vue b/src/components/app/Popouts/Popouts.vue index ed5b537..4179b39 100644 --- a/src/components/app/Popouts/Popouts.vue +++ b/src/components/app/Popouts/Popouts.vue @@ -14,6 +14,8 @@ + + @@ -26,9 +28,11 @@ // context menus const messageContextMenu = () => import('./Popouts/messageContextMenu'); const ServerMemberContext = () => import('./Popouts/ServerMemberContext'); + const ServerContext = () => import('./Popouts/ServerContextMenu.vue'); const AddServer = () => import('./Popouts/AddServer.vue'); + const AddFriend = () => import('./Popouts/AddFriend'); const Settings = () => import('./Popouts/Settings.vue'); const TakeSurveyPopout = () => import('./Popouts/TakeSurveyPopout.vue'); const uploadDialog = () => import('./Popouts/uploadDialog.vue'); @@ -55,7 +59,10 @@ export default { ServerSettings, GenericPopout, messageContextMenu, - ServerMemberContext + ServerMemberContext, + ServerContext, + AddFriend + }, data() { return { diff --git a/src/components/app/Popouts/Popouts/AddFriend.vue b/src/components/app/Popouts/Popouts/AddFriend.vue new file mode 100644 index 0000000..5b003a1 --- /dev/null +++ b/src/components/app/Popouts/Popouts/AddFriend.vue @@ -0,0 +1,174 @@ + + + + + + + diff --git a/src/components/app/Popouts/Popouts/ServerContextMenu.vue b/src/components/app/Popouts/Popouts/ServerContextMenu.vue new file mode 100644 index 0000000..f05f77b --- /dev/null +++ b/src/components/app/Popouts/Popouts/ServerContextMenu.vue @@ -0,0 +1,102 @@ + + + + + + + diff --git a/src/components/app/Popouts/Popouts/ServerInvitePopout.vue b/src/components/app/Popouts/Popouts/ServerInvitePopout.vue index 170adc6..d40a05c 100644 --- a/src/components/app/Popouts/Popouts/ServerInvitePopout.vue +++ b/src/components/app/Popouts/Popouts/ServerInvitePopout.vue @@ -39,7 +39,6 @@ import config from "@/config.js"; import { bus } from "@/main"; import Spinner from "@/components/Spinner.vue"; import ServerService from "@/services/ServerService"; -import { mapState } from "vuex"; export default { components: {Spinner}, @@ -84,9 +83,9 @@ export default { } }, computed: { - ...mapState({ - serverID: state => state.popoutsModule.serverIDContextMenu - }) + serverID() { + return this.$store.getters.popouts.allPopout.serverID + }, } }; diff --git a/src/components/app/Popouts/Popouts/ServerMemberContext.vue b/src/components/app/Popouts/Popouts/ServerMemberContext.vue index d9ed8c1..70007f0 100644 --- a/src/components/app/Popouts/Popouts/ServerMemberContext.vue +++ b/src/components/app/Popouts/Popouts/ServerMemberContext.vue @@ -106,23 +106,21 @@ export default { position: absolute; top: 0; left: 0; - background: rgba(31, 31, 31, 0.995); + background: rgba(0, 0, 0, 0.7); + backdrop-filter: blur(5px); z-index: 99999; - padding: 5px; - border-radius: 5px; user-select: none; color: white; } .item { - padding: 5px; - margin: 2px; + padding: 10px; border-radius: 5px; transition: 0.3s; font-size: 13px; cursor: pointer; &:hover { - background: rgb(46, 46, 46); + background: rgba(46, 46, 46, 0.651); } &.warn { color: rgb(255, 59, 59); diff --git a/src/components/app/Popouts/Popouts/SettingsPanels/Notifications.vue b/src/components/app/Popouts/Popouts/SettingsPanels/Notifications.vue index 62502e2..b5536fc 100644 --- a/src/components/app/Popouts/Popouts/SettingsPanels/Notifications.vue +++ b/src/components/app/Popouts/Popouts/SettingsPanels/Notifications.vue @@ -2,6 +2,13 @@
+
+
+
+ Notification Sounds +
+
@@ -23,7 +30,8 @@ import SettingsService from '@/services/settingsService.js'; export default { data() { return { - isElectron: window && window.process && window.process.type + isElectron: window && window.process && window.process.type, + }; }, methods: { @@ -39,7 +47,7 @@ export default { const setting = this.notificationSettings['disableDesktopNotification']; if (setting && setting === true && !this.isElectron) { if (Notification.permission === "denied") { - alert("Notifications blocked. Please enable them in your browser."); + alert("Notifications permission is blocked. Allow notifications from this website in your browsers permission settings."); } Notification.requestPermission().then(function(result) { if (result === 'denied' || result === 'default') return; @@ -49,6 +57,12 @@ export default { } this.toggleSetting('disableDesktopNotification'); }, + toggleNotificationSounds(){ + console.log("test") + const setting = this.notificationSettings['disableNotificationSound']; + console.log(!!!setting) + this.$store.dispatch('settingsModule/updateNotification', {disableNotificationSound: !setting}) + } }, mounted() { if (!this.isElectron && this.notificationSettings.disableDesktopNotification === undefined) { @@ -69,18 +83,19 @@ export default { .switches { display: flex; + flex-direction: column; margin: 20px; user-select: none; } .checkbox { display: flex; + margin-top: 10px; } .checkbox-box { background: rgba(88, 88, 88, 0.74); height: 20px; width: 20px; - margin: auto; margin-right: 10px; transition: 0.3s; border-radius: 5px; diff --git a/src/components/app/Popouts/Popouts/messageContextMenu.vue b/src/components/app/Popouts/Popouts/messageContextMenu.vue index 4321e83..646dfb8 100644 --- a/src/components/app/Popouts/Popouts/messageContextMenu.vue +++ b/src/components/app/Popouts/Popouts/messageContextMenu.vue @@ -106,23 +106,20 @@ export default { position: absolute; top: 0; left: 0; - background: rgba(31, 31, 31, 0.895); + background: rgba(0, 0, 0, 0.7); + backdrop-filter: blur(5px); z-index: 99999; - padding: 5px; - border-radius: 5px; user-select: none; color: white; } .item { - padding: 5px; - margin: 2px; - border-radius: 5px; + padding: 10px; transition: 0.3s; font-size: 13px; cursor: pointer; &:hover { - background: rgb(46, 46, 46); + background: rgba(46, 46, 46, 0.651); } &.warn { color: rgb(255, 59, 59); diff --git a/src/components/app/Popouts/Popouts/userInformationPopout.vue b/src/components/app/Popouts/Popouts/userInformationPopout.vue index f021e4c..8a4f32a 100644 --- a/src/components/app/Popouts/Popouts/userInformationPopout.vue +++ b/src/components/app/Popouts/Popouts/userInformationPopout.vue @@ -105,7 +105,7 @@ export default { ); }, openChat() { - bus.$emit('changeTab', 1) + this.$store.dispatch('setCurrentTab', 1) this.$store.dispatch("openChat", { uniqueID: this.uniqueID, channelName: this.user.username diff --git a/src/components/app/ServerList.vue b/src/components/app/ServerList.vue index 602c317..42e4b96 100644 --- a/src/components/app/ServerList.vue +++ b/src/components/app/ServerList.vue @@ -1,24 +1,18 @@ @@ -26,12 +20,16 @@ diff --git a/src/components/app/ServerTemplate/ChannelTemplate.vue b/src/components/app/ServerTemplate/ChannelTemplate.vue index 48e7ad1..1bfbdcc 100644 --- a/src/components/app/ServerTemplate/ChannelTemplate.vue +++ b/src/components/app/ServerTemplate/ChannelTemplate.vue @@ -54,22 +54,26 @@ export default { .channel { display: flex; align-items: center; - margin: 5px; - margin-top: 3px; - margin-bottom: 3px; padding: 5px; - border-radius: 5px; transition: 0.3s; font-size: 14px; cursor: pointer; + color: white; + user-select: none; + overflow: hidden; + padding-right: 10px; + padding-left: 10px; } .channel:hover { - background: rgba(139, 139, 139, 0.288); + background: rgba(0, 0, 0, 0.192); } -.selected { - background: rgba(139, 139, 139, 0.288); +.channel.selected { + background: rgba(0, 0, 0, 0.288); } + + .channel-name { + white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-left: 5px; diff --git a/src/components/app/ServerTemplate/ChannelsList.vue b/src/components/app/ServerTemplate/ChannelsList.vue index 34ed0cd..bcfeb19 100644 --- a/src/components/app/ServerTemplate/ChannelsList.vue +++ b/src/components/app/ServerTemplate/ChannelsList.vue @@ -65,6 +65,11 @@ export default { }, methods: { openChannel(channel) { + // add to local storage + const selectedChannels = JSON.parse(localStorage.getItem('selectedChannels') || '{}') + selectedChannels[this.serverID] = channel.channelID; + localStorage.setItem('selectedChannels', JSON.stringify(selectedChannels)); + const notificationExists = this.$store.getters.notifications.find(n => n.channelID === channel.channelID) if (notificationExists && document.hasFocus()) { @@ -79,11 +84,21 @@ export default { diff --git a/src/components/app/ServerTemplate/ServerTemplate.vue b/src/components/app/ServerTemplate/ServerTemplate.vue index 07e4ecf..8b0e7ff 100644 --- a/src/components/app/ServerTemplate/ServerTemplate.vue +++ b/src/components/app/ServerTemplate/ServerTemplate.vue @@ -1,243 +1,126 @@ - diff --git a/src/components/app/Tabs/DirectMessage.vue b/src/components/app/Tabs/DirectMessage.vue index d18967a..14824c5 100644 --- a/src/components/app/Tabs/DirectMessage.vue +++ b/src/components/app/Tabs/DirectMessage.vue @@ -67,10 +67,10 @@ export default { @media (max-width: 600px) { .left-panel { position: absolute; - background-color: rgba(39, 39, 39, 0.97); bottom: 0; height: calc(100% - 50px); z-index: 2; + backdrop-filter: blur(15px); } } diff --git a/src/components/app/Tabs/Explore.vue b/src/components/app/Tabs/Explore.vue index 01f9343..a667150 100644 --- a/src/components/app/Tabs/Explore.vue +++ b/src/components/app/Tabs/Explore.vue @@ -1,74 +1,80 @@ - - - diff --git a/src/components/app/relationships/FriendsTemplate.vue b/src/components/app/relationships/FriendsTemplate.vue index da6c8c5..0c1d96a 100644 --- a/src/components/app/relationships/FriendsTemplate.vue +++ b/src/components/app/relationships/FriendsTemplate.vue @@ -1,7 +1,8 @@