diff --git a/.woodpecker/build-and-publish.yml b/.woodpecker/build-and-publish.yml
index 6001a00..e62bd74 100644
--- a/.woodpecker/build-and-publish.yml
+++ b/.woodpecker/build-and-publish.yml
@@ -8,7 +8,6 @@ steps:
- pnpm build
when:
- event: push
- - event: pull_request
- name: container-build-and-publish
image: docker
diff --git a/app.vue b/app.vue
index 8ca7948..913b078 100644
--- a/app.vue
+++ b/app.vue
@@ -1,15 +1,21 @@
-
+
+
\ No newline at end of file
diff --git a/pages/servers/[serverId]/channels/[channelId].vue b/pages/servers/[serverId]/channels/[channelId].vue
index bbe359e..137e5e3 100644
--- a/pages/servers/[serverId]/channels/[channelId].vue
+++ b/pages/servers/[serverId]/channels/[channelId].vue
@@ -77,7 +77,7 @@ onActivated(async () => {
});
async function setArrayVariables() {
- members.value = sortMembers(await fetchMembers(route.params.serverId as string))
+ members.value = await fetchMembers(route.params.serverId as string);
const guildUrl = `guilds/${route.params.serverId}`;
channels.value = await fetchWithApi(`${guildUrl}/channels`);
console.log("channels:", channels.value);
diff --git a/public/themes/ash.css b/public/themes/ash.css
index 94f5e85..d47b51e 100644
--- a/public/themes/ash.css
+++ b/public/themes/ash.css
@@ -2,6 +2,7 @@
--text-color: #f0e5e0;
--secondary-text-color: #e8e0db;
--reply-text-color: #969696;
+ --danger-text-color: #ff0000;
--chat-background-color: #2f2e2d;
--chat-highlighted-background-color: #3f3b38;
diff --git a/public/themes/dark.css b/public/themes/dark.css
index a228889..efc2bfa 100644
--- a/public/themes/dark.css
+++ b/public/themes/dark.css
@@ -2,6 +2,7 @@
--text-color: #f7eee8;
--secondary-text-color: #f0e8e4;
--reply-text-color: #969696;
+ --danger-text-color: #ff0000;
--chat-background-color: #1f1e1d;
--chat-highlighted-background-color: #2f2b28;
diff --git a/public/themes/light.css b/public/themes/light.css
index 556b64d..68d6578 100644
--- a/public/themes/light.css
+++ b/public/themes/light.css
@@ -2,6 +2,7 @@
--text-color: #170f08;
--secondary-text-color: #2f2b28;
--reply-text-color: #969696;
+ --danger-text-color: #ff0000;
--chat-background-color: #f0ebe8;
--chat-highlighted-background-color: #e8e4e0;
diff --git a/public/themes/rainbow-capitalism.css b/public/themes/rainbow-capitalism.css
index ca73e1f..a5ec390 100644
--- a/public/themes/rainbow-capitalism.css
+++ b/public/themes/rainbow-capitalism.css
@@ -2,6 +2,7 @@
--text-color: #161518;
--secondary-text-color: #2b2930;
--reply-text-color: #969696;
+ --danger-text-color: #ff0000;
--chat-background-color: #80808000;
--chat-highlighted-background-color: #ffffff20;
diff --git a/types/interfaces.ts b/types/interfaces.ts
index 2a05c38..2e873e0 100644
--- a/types/interfaces.ts
+++ b/types/interfaces.ts
@@ -101,5 +101,14 @@ export interface ModalProps {
export interface ContextMenuItem {
name: string,
+ icon?: string,
+ type: "normal" | "danger"
callback: (...args: any[]) => any;
}
+
+export interface ContextMenuInterface {
+ show: boolean,
+ pointerX: number,
+ pointerY: number,
+ items: ContextMenuItem[]
+}
diff --git a/utils/createContextMenu.ts b/utils/createContextMenu.ts
deleted file mode 100644
index cf93a37..0000000
--- a/utils/createContextMenu.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { render } from "vue";
-import ContextMenu from "~/components/UserInterface/ContextMenu.vue";
-import type { ContextMenuItem } from "~/types/interfaces";
-
-export default (e: PointerEvent | MouseEvent, menuItems: ContextMenuItem[]) => {
- console.log("Rendering new context menu");
- const menuContainer = document.createElement("div");
- console.log("hello");
- menuContainer.id = "context-menu";
- document.body.appendChild(menuContainer);
- console.log("pointer x:", e.clientX);
- console.log("pointer y:", e.clientY);
- console.log("menu items:", menuItems);
- const contextMenu = h(ContextMenu, {
- menuItems,
- pointerX: e.clientX,
- pointerY: e.clientY
- });
- render(contextMenu, menuContainer);
- console.log("Rendered");
-}
diff --git a/utils/removeContextMenu.ts b/utils/removeContextMenu.ts
index 3b42c8b..7e10737 100644
--- a/utils/removeContextMenu.ts
+++ b/utils/removeContextMenu.ts
@@ -1,6 +1,12 @@
-export default () => {
- const contextMenu = document.getElementById("context-menu");
- if (contextMenu) {
- contextMenu.remove();
+import type { ContextMenuInterface } from "~/types/interfaces";
+
+export default (contextMenu: Ref) => {
+ console.log("resetting and hiding context menu");
+ contextMenu.value = {
+ show: false,
+ pointerX: 0,
+ pointerY: 0,
+ items: []
}
+ console.log("hidden context menu");
}
diff --git a/utils/replyToMessage.ts b/utils/replyToMessage.ts
index 8ee0c28..b2b31a8 100644
--- a/utils/replyToMessage.ts
+++ b/utils/replyToMessage.ts
@@ -10,5 +10,9 @@ export default (element: HTMLDivElement, props: MessageProps) => {
const messageReply = h(MessageReply, { author: getDisplayName(props.author), text: props.text || "", id: props.message.uuid, replyId: props.replyMessage?.uuid || element.dataset.messageId!, maxWidth: "full" });
messageBox.prepend(div);
render(messageReply, div);
+ const message = document.querySelector(`.message[data-message-id='${props.message.uuid}']`);
+ if (message) {
+ message.classList.add("replying-to");
+ }
}
}
diff --git a/utils/showContextMenu.ts b/utils/showContextMenu.ts
new file mode 100644
index 0000000..fdf5243
--- /dev/null
+++ b/utils/showContextMenu.ts
@@ -0,0 +1,12 @@
+import { render } from "vue";
+import ContextMenu from "~/components/UserInterface/ContextMenu.vue";
+import type { ContextMenuInterface, ContextMenuItem } from "~/types/interfaces";
+
+export default (e: MouseEvent | PointerEvent, contextMenu: ContextMenuInterface, menuItems: ContextMenuItem[]) => {
+ console.log("Showing context menu");
+ contextMenu.show = true;
+ contextMenu.pointerX = e.clientX;
+ contextMenu.pointerY = e.clientY;
+ contextMenu.items = menuItems;
+ console.log("Showed");
+}