diff --git a/README.md b/README.md
index b86a3a8..ecdb2d5 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# Nuxt Minimal Starter
+
+
Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
## Setup
diff --git a/components/Button.vue b/components/Button.vue
new file mode 100644
index 0000000..db8bb8e
--- /dev/null
+++ b/components/Button.vue
@@ -0,0 +1,44 @@
+
+
+ {{ props.text }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/GuildOptionsMenu.vue b/components/GuildOptionsMenu.vue
deleted file mode 100644
index d024ec8..0000000
--- a/components/GuildOptionsMenu.vue
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/Settings/AppSettings/Appearance.vue b/components/Settings/AppSettings/Appearance.vue
new file mode 100644
index 0000000..135c0a1
--- /dev/null
+++ b/components/Settings/AppSettings/Appearance.vue
@@ -0,0 +1,14 @@
+
+
+
hi
+ TEST
+ TEST
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/Settings/AppSettings/Keybinds.vue b/components/Settings/AppSettings/Keybinds.vue
new file mode 100644
index 0000000..ea54137
--- /dev/null
+++ b/components/Settings/AppSettings/Keybinds.vue
@@ -0,0 +1,12 @@
+
+
+
Keybinds (TBA)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/Settings/AppSettings/Language.vue b/components/Settings/AppSettings/Language.vue
new file mode 100644
index 0000000..b1c3a8a
--- /dev/null
+++ b/components/Settings/AppSettings/Language.vue
@@ -0,0 +1,12 @@
+
+
+
Language (TBA)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/Settings/AppSettings/Notifications.vue b/components/Settings/AppSettings/Notifications.vue
new file mode 100644
index 0000000..2e6de9c
--- /dev/null
+++ b/components/Settings/AppSettings/Notifications.vue
@@ -0,0 +1,12 @@
+
+
+
Notifications (TBA)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/Settings/UserSettings/Account.vue b/components/Settings/UserSettings/Account.vue
new file mode 100644
index 0000000..0fe5013
--- /dev/null
+++ b/components/Settings/UserSettings/Account.vue
@@ -0,0 +1,155 @@
+
+
+
My Account
+
+
+
+
AVATAR
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Password (and eventually authenticator)
+
+
+
Account Deletion
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/Settings/UserSettings/Connections.vue b/components/Settings/UserSettings/Connections.vue
new file mode 100644
index 0000000..97190ec
--- /dev/null
+++ b/components/Settings/UserSettings/Connections.vue
@@ -0,0 +1,12 @@
+
+
+
Connections (TBA)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/Settings/UserSettings/Devices.vue b/components/Settings/UserSettings/Devices.vue
new file mode 100644
index 0000000..7006a12
--- /dev/null
+++ b/components/Settings/UserSettings/Devices.vue
@@ -0,0 +1,12 @@
+
+
+
Devices (TBA)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/Settings/UserSettings/Privacy.vue b/components/Settings/UserSettings/Privacy.vue
new file mode 100644
index 0000000..0f1387d
--- /dev/null
+++ b/components/Settings/UserSettings/Privacy.vue
@@ -0,0 +1,13 @@
+
+
+
Privacy (TBA)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/UserPopup.vue b/components/UserPopup.vue
new file mode 100644
index 0000000..092e7d5
--- /dev/null
+++ b/components/UserPopup.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/composables/auth.ts b/composables/auth.ts
index 19ac694..0ac2e8b 100644
--- a/composables/auth.ts
+++ b/composables/auth.ts
@@ -75,7 +75,7 @@ export const useAuth = () => {
async function fetchUser() {
if (!accessToken.value) return;
console.log("fetchuser access token:", accessToken.value);
- const res = await fetchWithApi("/users/me") as UserResponse;
+ const res = await fetchWithApi("/me") as UserResponse;
user.value = res;
return user.value;
}
@@ -88,6 +88,20 @@ export const useAuth = () => {
return user.value;
}
+
+ // as in email the password link
+ async function resetPassword() {
+ // ...
+ }
+
+ async function disableAccount() {
+ // ...
+ }
+
+ async function deleteAccount() {
+ // ...
+ }
+
return {
accessToken,
register,
diff --git a/layouts/client.vue b/layouts/client.vue
index fdce980..73a40d6 100644
--- a/layouts/client.vue
+++ b/layouts/client.vue
@@ -6,21 +6,14 @@
main bar
-
-
-
-
+
@@ -33,9 +26,6 @@ import type { GuildResponse } from '~/types/interfaces';
const loading = useState("loading", () => false);
const guilds: GuildResponse[] | undefined = await fetchWithApi("/me/guilds");
-for (let i = 0; i < 20; i++) {
- guilds?.push(guilds[0]);
-}
//const servers = await fetchWithApi("/servers") as { uuid: string, name: string, description: string }[];
//console.log("servers:", servers);
@@ -134,24 +124,13 @@ const members = [
}
#left-column {
- display: grid;
- grid-template-rows: 1fr auto;
- overflow-y: hidden;
- border-right: 1px solid rgb(70, 70, 70);
- padding-top: 1dvh;
- padding-bottom: 1dvh;
-}
-
-#left-column-top {
display: flex;
flex-direction: column;
- gap: 1.5dvh;
- overflow-y: scroll;
-}
-
-#left-column-bottom {
- padding-top: 1dvh;
- border-top: 1px solid rgb(70, 70, 70);
+ gap: 2dvh;
+ padding-left: .5dvw;
+ padding-right: .5dvw;
+ border-right: 1px solid rgb(70, 70, 70);
+ padding-top: 1.5dvh;
}
#middle-left-column {
@@ -169,21 +148,6 @@ const members = [
display: flex;
flex-direction: column;
gap: 1dvh;
- overflow-y: scroll;
-}
-
-#join-server-button {
- color: white;
- background-color: transparent;
- border: none;
- cursor: pointer;
- font-size: 2rem;
- padding: 0;
- display: inline-block;
-}
-
-#join-server-icon {
- float: left;
}
\ No newline at end of file
diff --git a/pages/servers/[serverId]/channels/[channelId].vue b/pages/servers/[serverId]/channels/[channelId].vue
index b3d492a..c9aa8d2 100644
--- a/pages/servers/[serverId]/channels/[channelId].vue
+++ b/pages/servers/[serverId]/channels/[channelId].vue
@@ -1,13 +1,21 @@
-
-
{{ server?.name }}
-
-
-
+
+
+ {{ server?.name }}
+
+
+
+
+
+
+
+
();
const channel = ref();
const showInvitePopup = ref(false);
-const showGuildSettings = ref(false);
import type { ChannelResponse, GuildResponse, MessageResponse } from "~/types/interfaces";
@@ -65,10 +72,7 @@ onMounted(async () => {
console.log("channelid: set loading to false");
});
-function toggleGuildSettings(e: Event) {
- e.preventDefault();
- showGuildSettings.value = !showGuildSettings.value;
-}
+function showGuildSettings() { }
function toggleInvitePopup(e: Event) {
e.preventDefault();
@@ -128,24 +132,4 @@ function toggleInvitePopup(e: Event) {
text-overflow: ellipsis;
}
-#server-name-container {
- padding-top: 3dvh;
- padding-bottom: 3dvh;
- display: flex;
- justify-content: center;
- position: relative;
-}
-
-#server-name {
- font-size: 1.5em;
-}
-
-#server-settings-button {
- background-color: transparent;
- font-size: 1em;
- color: white;
- border: none;
- padding: 0%;
-}
-
\ No newline at end of file
diff --git a/pages/settings.vue b/pages/settings.vue
new file mode 100644
index 0000000..5db18fe
--- /dev/null
+++ b/pages/settings.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/favicon.ico b/public/favicon.ico
index 18993ad..b3d28fa 100644
Binary files a/public/favicon.ico and b/public/favicon.ico differ
diff --git a/types/interfaces.ts b/types/interfaces.ts
index 1aba1bc..e451a4b 100644
--- a/types/interfaces.ts
+++ b/types/interfaces.ts
@@ -58,6 +58,8 @@ export interface UserResponse {
username: string,
display_name: string | null,
avatar: string | null,
+ pronouns: string | null,
+ about: string | null,
email?: string,
email_verified?: boolean
}