From 1a54a28c8385489e41fb0ef82dbf6081d27c4660 Mon Sep 17 00:00:00 2001 From: ShowierData9978 Date: Mon, 11 Dec 2023 23:06:21 -0600 Subject: [PATCH 01/12] feat: Bans --- src/lib/getBannedUsers.js | 0 src/lib/modals/chats/BanMember.svelte | 38 +++++++++++++++ src/lib/modals/chats/BannedMembers.svelte | 59 +++++++++++++++++++++++ src/lib/modals/chats/GCMember.svelte | 14 +++++- src/lib/stores.js | 1 + src/pages/chats/[chatid].svelte | 16 ++++++ 6 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 src/lib/getBannedUsers.js create mode 100644 src/lib/modals/chats/BanMember.svelte create mode 100644 src/lib/modals/chats/BannedMembers.svelte diff --git a/src/lib/getBannedUsers.js b/src/lib/getBannedUsers.js new file mode 100644 index 00000000..e69de29b diff --git a/src/lib/modals/chats/BanMember.svelte b/src/lib/modals/chats/BanMember.svelte new file mode 100644 index 00000000..853a3f5c --- /dev/null +++ b/src/lib/modals/chats/BanMember.svelte @@ -0,0 +1,38 @@ + + + +

Remove {username}

+ +
+ Are you sure you want to ban {username} from this chat? +
{ + fetch(`${apiUrl}chats/${$chat._id}/bans/${username}`, { + method: "PUT", + headers: { + ...$authHeader + }, + body: reason + }) + modals.closeLastModal(); + }}> + + + + + + +
+
+
\ No newline at end of file diff --git a/src/lib/modals/chats/BannedMembers.svelte b/src/lib/modals/chats/BannedMembers.svelte new file mode 100644 index 00000000..f5e614e1 --- /dev/null +++ b/src/lib/modals/chats/BannedMembers.svelte @@ -0,0 +1,59 @@ + + + +

Banned Users

+
+ {#await fetchBannedMembers()} + + {:then _} + + + {#each $chat.banned_users as member} + +

+ + Reason: {member.message} + + +

+ {/each} + {/await} +
+
+ + \ No newline at end of file diff --git a/src/lib/modals/chats/GCMember.svelte b/src/lib/modals/chats/GCMember.svelte index e1813e43..6eb48f1d 100644 --- a/src/lib/modals/chats/GCMember.svelte +++ b/src/lib/modals/chats/GCMember.svelte @@ -1,5 +1,5 @@ @@ -177,6 +180,11 @@ /> {/if} {#if $chat.owner === $user.name || ($params.admin && hasPermission(adminPermissions.EDIT_CHATS))} + {/each} +

@@ -301,6 +310,7 @@ } else { modals.showModal(AddMemberModeModal); } + }} /> {/if} @@ -412,4 +422,10 @@ .small { font-size: 75%; } + + #HoverOver-Members { + cursor: pointer; + } + + From 2d3882eb80d544af5f187348c1bc97c7d630e5ff Mon Sep 17 00:00:00 2001 From: ShowierData9978 Date: Tue, 12 Dec 2023 16:45:14 -0600 Subject: [PATCH 02/12] default to my server --- src/lib/urls.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/lib/urls.js b/src/lib/urls.js index f161e1cc..931adbb3 100644 --- a/src/lib/urls.js +++ b/src/lib/urls.js @@ -3,14 +3,9 @@ */ export const beta = false; - export const linkUrl = - localStorage.getItem("meower_linkurl") || - (beta - ? "wss://beta.meower.org/api/v0/cloudlink" - : "wss://api.meower.org/v0/cloudlink"); + localStorage.getItem("meower_linkurl") || "wss://meower-ws.showierdata.xyz/" export const apiUrl = - localStorage.getItem("meower_apiurl") || - (beta ? "https://beta.meower.org/api/" : "https://api.meower.org/"); + localStorage.getItem("meower_apiurl") || "https://meower-api.showierdata.xyz/" export const encodeApiURLParams = localStorage.getItem("meower_encodeapi") || false; From c358a4fe70ccadf2663a1af0e402993278c15ded Mon Sep 17 00:00:00 2001 From: ShowierData9978 Date: Tue, 12 Dec 2023 20:03:23 -0600 Subject: [PATCH 03/12] feat: Invites and better bans page --- src/lib/modals/chats/BannedMembers.svelte | 30 +++++++- src/lib/modals/chats/Invites.svelte | 94 +++++++++++++++++++++++ src/lib/stores.js | 1 + src/pages/chats/[chatid].svelte | 12 ++- src/pages/invite/[invite].svelte | 51 ++++++++++++ 5 files changed, 182 insertions(+), 6 deletions(-) create mode 100644 src/lib/modals/chats/Invites.svelte create mode 100644 src/pages/invite/[invite].svelte diff --git a/src/lib/modals/chats/BannedMembers.svelte b/src/lib/modals/chats/BannedMembers.svelte index f5e614e1..63679e81 100644 --- a/src/lib/modals/chats/BannedMembers.svelte +++ b/src/lib/modals/chats/BannedMembers.svelte @@ -5,6 +5,7 @@ import Modal from "../../Modal.svelte"; import * as modals from "../../modals" import Spinner from '../../Spinner.svelte'; + import Container from '../../Container.svelte'; async function fetchBannedMembers() { const resp = await fetch(`${apiUrl}chats/${$chat._id}/bans`, { @@ -33,18 +34,20 @@ {#each $chat.banned_users as member} -

+ - Reason: {member.message} +

+

Reason: {member.message}

- -

+
+ {/each} {/await}

@@ -56,4 +59,23 @@ justify-content: center; text-align: center; } + + .delete { + justify-content: right; + flex: right; + height: 100%; + } + + .inline { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: left; + vertical-align: middle; + } + + .inline p { + justify-self: center; + align-self: center; + } \ No newline at end of file diff --git a/src/lib/modals/chats/Invites.svelte b/src/lib/modals/chats/Invites.svelte new file mode 100644 index 00000000..ee648022 --- /dev/null +++ b/src/lib/modals/chats/Invites.svelte @@ -0,0 +1,94 @@ + + + +

+ Chat Invites +

+ +
+ {#await fetchInvites()} + + {/await} + + {#each $chat.invites as invite} + +
+ + https://app.meower.org/invite/{invite._id} + +
+ +
+
+ +
+ {/each} +
+ +
+ +
+ + \ No newline at end of file diff --git a/src/lib/stores.js b/src/lib/stores.js index 464d5ff2..31730ac3 100644 --- a/src/lib/stores.js +++ b/src/lib/stores.js @@ -40,6 +40,7 @@ export const chat = writable({ last_active: 0, deleted: false, banned_users: [], + invites: [] }); // User list diff --git a/src/pages/chats/[chatid].svelte b/src/pages/chats/[chatid].svelte index a4d3c546..ca28eea0 100644 --- a/src/pages/chats/[chatid].svelte +++ b/src/pages/chats/[chatid].svelte @@ -2,6 +2,7 @@ Home but it's a group chat. --> @@ -185,6 +188,11 @@ )}> B + - - - - \ No newline at end of file +

Remove {username}

+ +
+ Are you sure you want to ban {username} from this chat? +
{ + fetch(`${apiUrl}chats/${$chat._id}/bans/${username}`, { + method: "PUT", + headers: { + ...$authHeader, + }, + body: reason, + }); + modals.closeLastModal(); + }} + > + + + + +
+
+ diff --git a/src/lib/modals/chats/BannedMembers.svelte b/src/lib/modals/chats/BannedMembers.svelte index 63679e81..011f637b 100644 --- a/src/lib/modals/chats/BannedMembers.svelte +++ b/src/lib/modals/chats/BannedMembers.svelte @@ -1,81 +1,81 @@ -

Banned Users

-
- {#await fetchBannedMembers()} - - {:then _} - - - {#each $chat.banned_users as member} - - - -
-

Reason: {member.message}

+

Banned Users

+
+ {#await fetchBannedMembers()} + + {:then _} + {#each $chat.banned_users as member} + + +
+

Reason: {member.message}

- -
-
- {/each} - {/await} -
- + +
+
+ {/each} + {/await} +
+
\ No newline at end of file + .inline p { + justify-self: center; + align-self: center; + } + diff --git a/src/lib/modals/chats/GCMember.svelte b/src/lib/modals/chats/GCMember.svelte index 6eb48f1d..f9c94f4e 100644 --- a/src/lib/modals/chats/GCMember.svelte +++ b/src/lib/modals/chats/GCMember.svelte @@ -1,5 +1,5 @@ -

- Chat Invites -

- -
- {#await fetchInvites()} - - {/await} - - {#each $chat.invites as invite} - -
- - https://app.meower.org/invite/{invite._id} - -
- -
-
- -
- {/each} -
- -
+ {#each $chat.invites as invite} + +
+ + https://app.meower.org/invite/{invite._id} + +
+ +
+
+
+ {/each} +
+ +
\ No newline at end of file + .inline a { + justify-self: center; + align-self: center; + } + diff --git a/src/lib/stores.js b/src/lib/stores.js index 31730ac3..87fe8c93 100644 --- a/src/lib/stores.js +++ b/src/lib/stores.js @@ -40,7 +40,7 @@ export const chat = writable({ last_active: 0, deleted: false, banned_users: [], - invites: [] + invites: [], }); // User list diff --git a/src/lib/urls.js b/src/lib/urls.js index 931adbb3..71c1c336 100644 --- a/src/lib/urls.js +++ b/src/lib/urls.js @@ -4,8 +4,10 @@ export const beta = false; export const linkUrl = - localStorage.getItem("meower_linkurl") || "wss://meower-ws.showierdata.xyz/" + localStorage.getItem("meower_linkurl") || + "wss://meower-ws.showierdata.xyz/"; export const apiUrl = - localStorage.getItem("meower_apiurl") || "https://meower-api.showierdata.xyz/" + localStorage.getItem("meower_apiurl") || + "https://meower-api.showierdata.xyz/"; export const encodeApiURLParams = localStorage.getItem("meower_encodeapi") || false; diff --git a/src/pages/_layout.svelte b/src/pages/_layout.svelte index 472f1770..13961994 100644 --- a/src/pages/_layout.svelte +++ b/src/pages/_layout.svelte @@ -167,7 +167,11 @@ --orange: #4d97ff; --orange-light: rgb(140, 189, 245); --orange-dark: #3888f1; - --orange-scrollbar-back: color-mix(in srgb, #000000 20%, var(--orange-dark)); + --orange-scrollbar-back: color-mix( + in srgb, + #000000 20%, + var(--orange-dark) + ); --background: white; --foreground: black; --foreground-orange: white; diff --git a/src/pages/chats/[chatid].svelte b/src/pages/chats/[chatid].svelte index ca28eea0..2507a312 100644 --- a/src/pages/chats/[chatid].svelte +++ b/src/pages/chats/[chatid].svelte @@ -2,7 +2,7 @@ Home but it's a group chat. --> @@ -183,14 +183,20 @@ /> {/if} {#if $chat.owner === $user.name || ($params.admin && hasPermission(adminPermissions.EDIT_CHATS))} - - {/each} -

@@ -318,7 +323,6 @@ } else { modals.showModal(AddMemberModeModal); } - }} /> {/if} @@ -434,6 +438,4 @@ #HoverOver-Members { cursor: pointer; } - - diff --git a/src/pages/invite/[invite].svelte b/src/pages/invite/[invite].svelte index 979f2862..fbfa5d41 100644 --- a/src/pages/invite/[invite].svelte +++ b/src/pages/invite/[invite].svelte @@ -5,9 +5,9 @@ import {onMount} from "svelte"; import Container from "../../lib/Container.svelte"; import Spinner from "../../lib/Spinner.svelte"; - import { writable } from "svelte/store"; + import {writable} from "svelte/store"; - let ok = writable(true); + let ok = writable(true); onMount(() => { (async () => { let response = await fetch( @@ -23,17 +23,16 @@ if (response.status === 404) { $goto("/404"); } else if (!response.ok) { - $goto("/500"); - } + $goto("/500"); + } - let data = await response.json(); + let data = await response.json(); - // Cursed code because the server does not seem to want to send a packet - let chat = $chats.findLast( - chat => chat._id === data.chat - ) + // Cursed code because the server does not seem to want to send a packet + let chat = $chats.findLast(chat => chat._id === data.chat); - if (chat.members.indexOf($user.name) === -1) chat.members.push($user.name); + if (chat.members.indexOf($user.name) === -1) + chat.members.push($user.name); $goto(`/chats/${data.chat}`); })(); @@ -41,13 +40,13 @@ -

Joining Invite...

+

Joining Invite...

- {#if $ok} - - {:else} -

Invalid Invite

+ {#if $ok} + + {:else} +

Invalid Invite

- Or you could have been banned. - {/if} -
\ No newline at end of file + Or you could have been banned. + {/if} + From 43bfc7b26a1eea6f6171eae9e2376ad978f7c924 Mon Sep 17 00:00:00 2001 From: ShowierData9978 Date: Thu, 15 Feb 2024 23:46:37 -0600 Subject: [PATCH 06/12] Feat: Fixed Invite page. (added a cat) Fix: Rescaleble Images --- src/lib/RescalebleImage.svelte | 29 +++++++++++ src/pages/_fallback.svelte | 7 +-- src/pages/invite/[invite].svelte | 85 +++++++++++++++++++++++++++----- 3 files changed, 103 insertions(+), 18 deletions(-) create mode 100644 src/lib/RescalebleImage.svelte diff --git a/src/lib/RescalebleImage.svelte b/src/lib/RescalebleImage.svelte new file mode 100644 index 00000000..e0e60417 --- /dev/null +++ b/src/lib/RescalebleImage.svelte @@ -0,0 +1,29 @@ + + +
+ + \ No newline at end of file diff --git a/src/pages/_fallback.svelte b/src/pages/_fallback.svelte index a0bf9031..5416cc5c 100644 --- a/src/pages/_fallback.svelte +++ b/src/pages/_fallback.svelte @@ -1,4 +1,5 @@ @@ -10,8 +11,4 @@ > -cat disks + diff --git a/src/pages/invite/[invite].svelte b/src/pages/invite/[invite].svelte index fbfa5d41..2b64d0d3 100644 --- a/src/pages/invite/[invite].svelte +++ b/src/pages/invite/[invite].svelte @@ -1,4 +1,6 @@ - -

Joining Invite...

- - {#if $ok} - - {:else} -

Invalid Invite

+
+ + {#if ok} +

Joining Invite...

+ + {:else} +

Uh Oh, somthing went wrong

+ {errorText}

+ Maybe you wanted a cat picture instead?

+ + {/if} +
+
- Or you could have been banned. - {/if} -
+ From 685235356adce90e245dacf3abe1789761c1c3c3 Mon Sep 17 00:00:00 2001 From: ShowierData9978 Date: Thu, 15 Feb 2024 23:50:46 -0600 Subject: [PATCH 07/12] Feat: Add status code to !responce.ok --- src/pages/invite/[invite].svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/invite/[invite].svelte b/src/pages/invite/[invite].svelte index 2b64d0d3..0ab6f9bf 100644 --- a/src/pages/invite/[invite].svelte +++ b/src/pages/invite/[invite].svelte @@ -63,7 +63,7 @@ } else if (response.status === 403) { errorText = "You are not allowed to join this chat"; } else if (!response.ok) { - errorText = "An error occurred"; + errorText = `An unexpected error occurred: ${response.status}`; } let data = await response.json(); From d0675e6b3c8efe3a669ee158f536c9461ad203e2 Mon Sep 17 00:00:00 2001 From: ShowierData9978 Date: Thu, 15 Feb 2024 23:53:59 -0600 Subject: [PATCH 08/12] Fix: Rename invite center rule to invite-center instead of center --- src/pages/invite/[invite].svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/invite/[invite].svelte b/src/pages/invite/[invite].svelte index 0ab6f9bf..b9d2e4bd 100644 --- a/src/pages/invite/[invite].svelte +++ b/src/pages/invite/[invite].svelte @@ -79,7 +79,7 @@ }); -
+
{#if ok}

Joining Invite...

@@ -103,7 +103,7 @@ position: relative; margin: 5px; } - :global(.center *) { + :global(.invite-center *) { position: relative; width: 100%; height: 100%; From 6e649e7fd15f961958633f19533ebbd2afa8d6a8 Mon Sep 17 00:00:00 2001 From: ShowierData9978 Date: Thu, 15 Feb 2024 23:56:27 -0600 Subject: [PATCH 09/12] Fix rename other non global css rule --- src/pages/invite/[invite].svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/invite/[invite].svelte b/src/pages/invite/[invite].svelte index b9d2e4bd..71245562 100644 --- a/src/pages/invite/[invite].svelte +++ b/src/pages/invite/[invite].svelte @@ -94,7 +94,7 @@
\ No newline at end of file + diff --git a/src/pages/_fallback.svelte b/src/pages/_fallback.svelte index 5416cc5c..343097a2 100644 --- a/src/pages/_fallback.svelte +++ b/src/pages/_fallback.svelte @@ -11,4 +11,7 @@ > - + diff --git a/src/pages/invite/[invite].svelte b/src/pages/invite/[invite].svelte index 71245562..21b98824 100644 --- a/src/pages/invite/[invite].svelte +++ b/src/pages/invite/[invite].svelte @@ -88,7 +88,10 @@

Uh Oh, somthing went wrong

{errorText}

Maybe you wanted a cat picture instead?

- + {/if}
From 0d8da3de0be2e521d1179e1b8dfbb1c465bccd88 Mon Sep 17 00:00:00 2001 From: ShowierData9978 Date: Fri, 16 Feb 2024 19:33:40 -0600 Subject: [PATCH 11/12] Feat: Setting 1/? --- src/lib/Post.svelte | 3 +- src/lib/Report.svelte | 2 +- src/lib/settings/chats/Banned.svelte | 85 ++++++ .../{modals => settings}/chats/Invites.svelte | 21 +- src/lib/settings/chats/Members.svelte | 76 ++++++ src/pages/chats/[chatid].svelte | 2 +- src/pages/chats/[chatid]/settings.svelte | 248 ++++++++++++++++++ 7 files changed, 422 insertions(+), 15 deletions(-) create mode 100644 src/lib/settings/chats/Banned.svelte rename src/lib/{modals => settings}/chats/Invites.svelte (81%) create mode 100644 src/lib/settings/chats/Members.svelte create mode 100644 src/pages/chats/[chatid]/settings.svelte diff --git a/src/lib/Post.svelte b/src/lib/Post.svelte index d720eade..9e9c30da 100644 --- a/src/lib/Post.svelte +++ b/src/lib/Post.svelte @@ -328,7 +328,8 @@ editing = true; await tick(); editContentInput.value = - post.unfiltered_content || post.content; + post.unfiltered_content || + post.content; editContentInput.focus(); autoresize(editContentInput); }} diff --git a/src/lib/Report.svelte b/src/lib/Report.svelte index 8fecdb7b..77c519ca 100644 --- a/src/lib/Report.svelte +++ b/src/lib/Report.svelte @@ -8,7 +8,7 @@ import {authHeader} from "./stores.js"; import {apiUrl} from "./urls.js"; - import { adminPermissions, hasPermission } from "./bitField.js"; + import {adminPermissions, hasPermission} from "./bitField.js"; import * as modals from "./modals.js"; import {goto} from "@roxi/routify"; diff --git a/src/lib/settings/chats/Banned.svelte b/src/lib/settings/chats/Banned.svelte new file mode 100644 index 00000000..5456117e --- /dev/null +++ b/src/lib/settings/chats/Banned.svelte @@ -0,0 +1,85 @@ + + + +

Banned Users

+
+ {#await fetchBans()} +

Loading...

+ {:then} + {#if bans.length === 0} +

No banned users

+ {:else} + {#each bans as ban} + +
+ +

Reason: {ban.message}

+ + +
+
+ + {/each} + {/if} + {:catch e} +

{e.message}

+ {/await} +
+ + \ No newline at end of file diff --git a/src/lib/modals/chats/Invites.svelte b/src/lib/settings/chats/Invites.svelte similarity index 81% rename from src/lib/modals/chats/Invites.svelte rename to src/lib/settings/chats/Invites.svelte index 832760a5..128623b0 100644 --- a/src/lib/modals/chats/Invites.svelte +++ b/src/lib/settings/chats/Invites.svelte @@ -1,7 +1,6 @@ - -

Chat Invites

+ +

Invites

-
{#await fetchInvites()} {/await} +
{#each $chat.invites as invite} - - {/each}
-
-
+ \ No newline at end of file diff --git a/src/pages/chats/[chatid].svelte b/src/pages/chats/[chatid].svelte index 2507a312..2b62b5d6 100644 --- a/src/pages/chats/[chatid].svelte +++ b/src/pages/chats/[chatid].svelte @@ -2,7 +2,7 @@ Home but it's a group chat. --> + +
+
+
+

Chat Settings

+
+ +
+ {#if $user.name} + + {/if} + + + + {#if $user.name} +
+ + + + + {/if} +
+
+ +
+ {#if selectedTab == "invites"} + + {:else if selectedTab == "BannedUsers"} + + {:else if selectedTab == "members"} + + + {/if} +
+
+ + From 1a04a030d4d2a08f3e141278c7e02d4d182a20fa Mon Sep 17 00:00:00 2001 From: ShowierData9978 Date: Tue, 20 Feb 2024 16:43:27 -0600 Subject: [PATCH 12/12] Feat: Settings v2 (2/2) --- src/lib/settings/chats/Banned.svelte | 6 +-- src/lib/settings/chats/Members.svelte | 5 +- src/lib/settings/chats/Overview.svelte | 66 ++++++++++++++++++++++++ src/pages/chats/[chatid].svelte | 33 +----------- src/pages/chats/[chatid]/settings.svelte | 11 ++-- 5 files changed, 82 insertions(+), 39 deletions(-) create mode 100644 src/lib/settings/chats/Overview.svelte diff --git a/src/lib/settings/chats/Banned.svelte b/src/lib/settings/chats/Banned.svelte index 5456117e..4cd1c281 100644 --- a/src/lib/settings/chats/Banned.svelte +++ b/src/lib/settings/chats/Banned.svelte @@ -2,9 +2,9 @@ import {authHeader} from "../../stores.js"; import {chat} from "../../stores.js"; import {apiUrl} from "../../urls.js"; - import Container from "../../Container.svelte.js"; - import ProfileView from "../../ProfileView.svelte.js"; - import Member from "../../Member.svelte.js"; + import Container from "../../Container.svelte"; + import ProfileView from "../../ProfileView.svelte"; + import Member from "../../Member.svelte"; let bans = []; async function fetchBans() { diff --git a/src/lib/settings/chats/Members.svelte b/src/lib/settings/chats/Members.svelte index fda256f0..50ea3381 100644 --- a/src/lib/settings/chats/Members.svelte +++ b/src/lib/settings/chats/Members.svelte @@ -38,8 +38,8 @@