Merge remote-tracking branch 'origin/main' into force-css-regrab
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful
ci/woodpecker/pr/build-and-publish Pipeline was successful
ci/woodpecker/pull_request_closed/build-and-publish Pipeline was successful

This commit is contained in:
Twig 2025-07-18 07:31:53 +02:00
commit 3953a754bd
No known key found for this signature in database
22 changed files with 258 additions and 82 deletions

View file

@ -24,9 +24,7 @@ let displayAvatar: string | null
const user = props.user || props.member?.user
if (user) {
displayName = props.member?.nickname
|| user.display_name
|| user.username
displayName = getDisplayName(user, props.member)
if (user.avatar) {
displayAvatar = user.avatar

View file

@ -1,7 +1,7 @@
<template>
<div class="member-item" @click="togglePopup" @blur="hidePopup" tabindex="0">
<Avatar :member="props.member" class="member-avatar"/>
<span class="member-display-name">{{ props.member.user.display_name || props.member.user.username }}</span>
<span class="member-display-name">{{ getDisplayName(props.member.user, props.member) }}</span>
<UserPopup v-if="isPopupVisible" :user="props.member.user" id="profile-popup" />
</div>
</template>

View file

@ -6,7 +6,7 @@
</div>
<VerticalSpacer />
<NuxtLink class="user-item" :href="`/me/friends`" tabindex="0">
<NuxtLink class="user-item" :href="`/me`" tabindex="0">
<Icon class="user-avatar" name="lucide:user" />
<span class="user-display-name">Friends</span>
</NuxtLink>

View file

@ -17,7 +17,7 @@
</div>
<div v-else>
<UserEntry v-for="user of friends" :user="user" :name="user.display_name || user.username"
<UserEntry v-for="user of friends" :user="user" :name="getDisplayName(user)"
:href="`/me/${user.uuid}`"/>
</div>
</div>
@ -26,7 +26,9 @@
<script lang="ts" setup>
const { fetchFriends } = useApi();
const friends = await fetchFriends()
const friends = await fetchFriends().then((response) => {
return response.sort((a, b) => getDisplayName(a).localeCompare(getDisplayName(b)))
})
const props = defineProps<{
variant: string

View file

@ -25,7 +25,7 @@
</svg>
</div>
<MessageReply v-if="props.replyMessage" :id="props.message.uuid"
:author="props.replyMessage.user.display_name || props.replyMessage.user.username"
:author="getDisplayName(props.replyMessage.user)"
:text="props.replyMessage?.message"
:reply-id="props.replyMessage.uuid" max-width="reply" />
<div class="left-column">
@ -34,7 +34,7 @@
<div class="message-data">
<div class="message-metadata">
<span class="message-author-username" tabindex="0" :style="`color: ${props.authorColor}`">
{{ displayName }}
{{ getDisplayName(props.author) }}
</span>
<span class="message-date" :title="date.toString()">
<span v-if="getDayDifference(date, currentDate) === 1">Yesterday at</span>
@ -77,7 +77,6 @@ const dateHidden = ref<boolean>(true);
const date = new Date(props.timestamp);
const currentDate: Date = new Date()
const displayName = props.author?.display_name || props.author?.username
console.log("[MSG] message to render:", props.message);
console.log("author:", props.author);

View file

@ -1,7 +1,7 @@
<template>
<div id="message-area">
<div id="messages" ref="messagesElement">
<Message v-for="(message, i) of messages" :username="message.user.display_name ?? message.user.username"
<Message v-for="(message, i) of messages" :username="getDisplayName(message.user)"
:text="message.message" :timestamp="messageTimestamps[message.uuid]" :img="message.user.avatar"
:format="timeFormat" :type="messagesType[message.uuid]"
:margin-bottom="(messages[i + 1] && messagesType[messages[i + 1].uuid] == 'normal') ?? false"

View file

@ -2,7 +2,7 @@
<NuxtLink class="user-item" :href="`/me/${user.uuid}`" tabindex="0">
<Avatar :user="props.user" class="user-avatar"/>
<span class="user-display-name">{{ displayName }}</span>
<span class="user-display-name">{{ getDisplayName(props.user) }}</span>
</NuxtLink>
</template>
@ -13,7 +13,6 @@ const props = defineProps<{
user: UserResponse
}>();
const displayName = props.user.display_name || props.user.username
</script>
<style>

View file

@ -5,7 +5,7 @@
<div id="cover-color"></div>
<div id="main-body">
<p id="display-name">
<strong>{{ props.user.display_name }}</strong>
<strong>{{ getDisplayName(props.user) }}</strong>
</p>
<p id="username-and-pronouns">
{{ props.user.username }}

View file

@ -1,14 +1,14 @@
<template>
<div @click="props.callback()" class="button" :class="props.variant + '-button'">
<button @click="props.callback ? props.callback() : null" class="button" :class="props.variant + '-button'">
{{ props.text }}
</div>
</button>
</template>
<script lang="ts" setup>
const props = defineProps<{
text: string,
callback: CallableFunction,
callback?: CallableFunction,
variant?: "normal" | "scary" | "neutral",
}>();
@ -28,6 +28,8 @@ const props = defineProps<{
border-radius: 0.7rem;
text-decoration: none;
display: inline-block;
border: none;
}
.button:hover {