Upgrade to Nuxt 4 and update dependencies #87

Merged
sauceyred merged 3 commits from upgrade-nuxt into main 2025-08-16 17:00:05 +00:00
97 changed files with 3162 additions and 2929 deletions

View file

@ -8,7 +8,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import ContextMenu from '~/components/UserInterface/ContextMenu.vue'; import ContextMenu from '~/components/UserInterface/ContextMenu.vue';
import type { ContextMenuInterface } from './types/interfaces'; import type { ContextMenuInterface } from '~/types/interfaces';
const banner = useState("banner", () => false); const banner = useState("banner", () => false);

View file

@ -1,4 +1,4 @@
import type { MessageResponse } from "~/types/interfaces"; import type { MessageResponse } from "~/app/types/interfaces";
export default class Message { export default class Message {
uuid: string; uuid: string;

View file

@ -4,7 +4,7 @@
<Message v-for="(message, i) of messages" :key="message.uuid" <Message v-for="(message, i) of messages" :key="message.uuid"
:message="message" :is-reply="message.reply_to" :message="message" :is-reply="message.reply_to"
:reply-message="message.reply_to ? getReplyMessage(message.reply_to) : undefined" :reply-message="message.reply_to ? getReplyMessage(message.reply_to) : undefined"
:type="messagesType[message.uuid]" :type="messagesType[message.uuid] || 'normal'"
:editing="false" :editing="false"
:is-mentioned="false" /> :is-mentioned="false" />
</div> </div>
@ -108,6 +108,7 @@ function groupMessage(message: MessageResponse, options?: { prevMessage?: Messag
const prevTimestamp = messageTimestamps.value[firstByUser.uuid]; const prevTimestamp = messageTimestamps.value[firstByUser.uuid];
const timestamp = messageTimestamps.value[message.uuid]; const timestamp = messageTimestamps.value[message.uuid];
if (!prevTimestamp || !timestamp) return;
console.log("first message timestamp:", prevTimestamp); console.log("first message timestamp:", prevTimestamp);
console.log("timestamp:", timestamp); console.log("timestamp:", timestamp);
const diff = Math.abs(timestamp - prevTimestamp); const diff = Math.abs(timestamp - prevTimestamp);
@ -298,9 +299,10 @@ onActivated(async () => {
await nextTick(); await nextTick();
console.log("scroll activated"); console.log("scroll activated");
if (messagesElement.value) { if (messagesElement.value) {
if (scrollPosition.value[route.params.channelId as string]) { const channelScrollPosition = scrollPosition.value[route.params.channelId as string]
if (channelScrollPosition) {
console.log("saved scroll position:", scrollPosition.value); console.log("saved scroll position:", scrollPosition.value);
setScrollPosition(messagesElement.value, scrollPosition.value[route.params.channelId as string]); setScrollPosition(messagesElement.value, channelScrollPosition);
console.log("scrolled to saved scroll position"); console.log("scrolled to saved scroll position");
} else { } else {
scrollToBottom(messagesElement.value); scrollToBottom(messagesElement.value);

View file

@ -2,7 +2,7 @@
<div id="sidebar-column"> <div id="sidebar-column">
<div class="side-column-segment"> <div class="side-column-segment">
<NuxtLink id="home-button" href="/me"> <NuxtLink id="home-button" href="/me">
<img class="sidebar-icon" src="/public/icon.svg"/> <img class="sidebar-icon" src="/icon.svg"/>
</NuxtLink> </NuxtLink>
</div> </div>

View file

@ -10,27 +10,27 @@
"postinstall": "nuxt prepare" "postinstall": "nuxt prepare"
}, },
"dependencies": { "dependencies": {
"@nuxt/eslint": "^1.3.0", "@nuxt/eslint": "^1.8.0",
"@nuxt/icon": "1.13.0", "@nuxt/icon": "2.0.0",
"@nuxt/image": "1.10.0", "@nuxt/image": "1.11.0",
"@pinia/nuxt": "0.11.0", "@pinia/nuxt": "0.11.2",
"cropperjs": "^2.0.0", "cropperjs": "^2.0.1",
"dompurify": "^3.2.6", "dompurify": "^3.2.6",
"marked": "^15.0.12", "marked": "^16.1.2",
"nuxt": "^3.17.0", "nuxt": "^4.0.3",
"pinia": "^3.0.2", "pinia": "^3.0.3",
"pinia-plugin-persistedstate": "^4.2.0", "pinia-plugin-persistedstate": "^4.5.0",
"typescript": "^5.8.3", "typescript": "^5.9.2",
"vue": "^3.5.13", "vue": "^3.5.18",
"vue-router": "^4.5.1", "vue-router": "^4.5.1",
"xxhash-wasm": "^1.1.0" "xxhash-wasm": "^1.1.0"
}, },
"packageManager": "pnpm@10.11.0", "packageManager": "pnpm@10.11.0",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"@iconify-json/lucide": "^1.2.44", "@iconify-json/lucide": "^1.2.62",
"@types/node": "^22.15.3", "@types/node": "^24.3.0",
"eslint-config-prettier": "^10.1.2", "eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.2.6" "eslint-plugin-prettier": "^5.5.4"
} }
} }

6038
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,9 @@
{ {
// https://nuxt.com/docs/guide/concepts/typescript "files": [],
"extends": "./.nuxt/tsconfig.json" "references": [
{ "path": "./.nuxt/tsconfig.app.json" },
{ "path": "./.nuxt/tsconfig.server.json" },
{ "path": "./.nuxt/tsconfig.shared.json" },
{ "path": "./.nuxt/tsconfig.node.json" }
]
} }