From 594f87f240cd8627d2ecc36e5426a8f761c2ca22 Mon Sep 17 00:00:00 2001 From: mstar Date: Fri, 18 Jul 2025 11:27:20 +0200 Subject: [PATCH] Work on note component --- frontend-vue/bun.lockb | Bin 229017 -> 229751 bytes frontend-vue/package.json | 1 + frontend-vue/src/App.vue | 19 +++-- frontend-vue/src/assets/base.css | 22 +++++ frontend-vue/src/assets/base.css.map | 2 +- frontend-vue/src/assets/base.scss | 22 +++++ .../components/global/ScreenreaderMenu.vue | 19 +++++ frontend-vue/src/components/note/Note.vue | 75 ++++++++++++++---- .../src/components/user/PreviewHeader.vue | 60 +++++++++++--- .../src/components/user/ProfilePicture.vue | 3 +- .../src/components/util/FormattedText.vue | 11 ++- frontend-vue/src/stores/remoteServer.ts | 7 ++ frontend-vue/src/stores/userdata.ts | 2 + frontend-vue/src/views/NoteTestView.vue | 26 +++++- 14 files changed, 226 insertions(+), 43 deletions(-) create mode 100644 frontend-vue/src/components/global/ScreenreaderMenu.vue create mode 100644 frontend-vue/src/stores/remoteServer.ts diff --git a/frontend-vue/bun.lockb b/frontend-vue/bun.lockb index d136a17ec0f228b0f3230a84f144785ec34e704c..e3b678c01df98ed6bbd467e23086c3a3d43a788e 100755 GIT binary patch delta 40681 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%0DWyIz@et^u$O8Abcr1RJ7@z?2&@HG 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 KpIT{l&Ho1&Nv6U8 diff --git a/frontend-vue/package.json b/frontend-vue/package.json index 367eef7..5d13183 100644 --- a/frontend-vue/package.json +++ b/frontend-vue/package.json @@ -15,6 +15,7 @@ }, "dependencies": { "jdenticon": "^3.3.0", + "lorem-ipsum": "^2.0.8", "node-vibrant": "^4.0.3", "pinia": "^3.0.3", "sass": "^1.89.2", diff --git a/frontend-vue/src/App.vue b/frontend-vue/src/App.vue index e35255f..7ccc212 100644 --- a/frontend-vue/src/App.vue +++ b/frontend-vue/src/App.vue @@ -5,21 +5,23 @@ import Header from '@/components/global/Header.vue' diff --git a/frontend-vue/src/components/note/Note.vue b/frontend-vue/src/components/note/Note.vue index 3173ba8..50443a2 100644 --- a/frontend-vue/src/components/note/Note.vue +++ b/frontend-vue/src/components/note/Note.vue @@ -1,40 +1,85 @@ diff --git a/frontend-vue/src/components/user/PreviewHeader.vue b/frontend-vue/src/components/user/PreviewHeader.vue index 2902884..62c9c36 100644 --- a/frontend-vue/src/components/user/PreviewHeader.vue +++ b/frontend-vue/src/components/user/PreviewHeader.vue @@ -1,18 +1,33 @@ @@ -21,10 +36,35 @@ import FormattedText from '@/components/util/FormattedText.vue' .account-header { display: flex; flex-direction: row; + height: 4em; + background-color: var(--accent); + padding: 0 0.6em 0.6em 0.6em; } -.account-header { + +.pfp { + margin-right: 1em; +} + +.pfp-wrapper { + margin-top: 1em; display: flex; - flex-direction: column; - align-items: flex-start; + flex-direction: row; + align-items: center; +} + +.displayname { + font-weight: bold; +} +.username { + margin-top: -0.75em; + font-size: 0.9em; +} +.filler { + flex-grow: 1; +} +.server-name { + border: var(--text) 1px solid; + border-radius: 0.6em; + padding: 0.2em; } diff --git a/frontend-vue/src/components/user/ProfilePicture.vue b/frontend-vue/src/components/user/ProfilePicture.vue index 23188b6..85442a0 100644 --- a/frontend-vue/src/components/user/ProfilePicture.vue +++ b/frontend-vue/src/components/user/ProfilePicture.vue @@ -8,6 +8,7 @@ import { vi } from 'vitest' const props = defineProps<{ media?: MediaMetadata username: string + size: number }>() /* async function calcBackgroundColor() { @@ -45,7 +46,7 @@ async function calcBackgroundStyle() { Get primary color of the image, invert it and set as background for higher contrast in case of transparency calcBackgroundStyle *should* do it, but async and vue no like --> - +

"+props.rawText+"

" } diff --git a/frontend-vue/src/stores/remoteServer.ts b/frontend-vue/src/stores/remoteServer.ts new file mode 100644 index 0000000..b26f4b9 --- /dev/null +++ b/frontend-vue/src/stores/remoteServer.ts @@ -0,0 +1,7 @@ +export interface RemoteServer { + id: string; + name: string; + url: string; + isSelf: boolean; + isDead: boolean; +} diff --git a/frontend-vue/src/stores/userdata.ts b/frontend-vue/src/stores/userdata.ts index 95d0397..3944c52 100644 --- a/frontend-vue/src/stores/userdata.ts +++ b/frontend-vue/src/stores/userdata.ts @@ -1,4 +1,5 @@ import type { MediaMetadata } from '@/stores/media.ts' +import type { RemoteServer } from '@/stores/remoteServer.ts' export interface User { username: string @@ -7,4 +8,5 @@ export interface User { profilePicture?: MediaMetadata bannerPicture?: MediaMetadata backgroundPicture?: MediaMetadata + server: RemoteServer } diff --git a/frontend-vue/src/views/NoteTestView.vue b/frontend-vue/src/views/NoteTestView.vue index 60b0cbd..83fb4fa 100644 --- a/frontend-vue/src/views/NoteTestView.vue +++ b/frontend-vue/src/views/NoteTestView.vue @@ -1,10 +1,13 @@