add @ + acct

This commit is contained in:
NoriDev 2023-09-23 17:42:37 +09:00
parent 10f47b2ab1
commit 686f1f8458
5 changed files with 10 additions and 12 deletions

View file

@ -8,7 +8,7 @@ SPDX-License-Identifier: AGPL-3.0-only
v-anim="i" v-anim="i"
class="_panel" class="_panel"
:class="[$style.message, { [$style.isRead]: (isMe(message) || (message.groupId ? message.reads.includes($i.id) : message.isRead)) }]" :class="[$style.message, { [$style.isRead]: (isMe(message) || (message.groupId ? message.reads.includes($i.id) : message.isRead)) }]"
:to="message.groupId ? `/my/messaging/group/${message.groupId}` : `/my/messaging/${getAcct(isMe(message) ? message.recipient : message.user)}`" :to="message.groupId ? `/my/messaging/group/${ message.groupId }` : `/my/messaging/@${Misskey.acct.toString(isMe(message) ? message.recipient : message.user)}`"
:data-index="i" :data-index="i"
> >
<div> <div>
@ -20,7 +20,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</header> </header>
<header v-else> <header v-else>
<span :class="$style.name"><MkUserName :user="isMe(message) ? message.recipient : message.user"/></span> <span :class="$style.name"><MkUserName :user="isMe(message) ? message.recipient : message.user"/></span>
<span :class="$style.username">@{{ acct(isMe(message) ? message.recipient : message.user) }}</span> <span :class="$style.username">@{{ Misskey.acct.toString(isMe(message) ? message.recipient : message.user) }}</span>
<MkTime :time="message.createdAt" :class="$style.time"/> <MkTime :time="message.createdAt" :class="$style.time"/>
</header> </header>
<div> <div>
@ -31,13 +31,10 @@ SPDX-License-Identifier: AGPL-3.0-only
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import * as Acct from 'cherrypick-js/built/acct'; import * as Misskey from 'cherrypick-js';
import { acct } from '@/filters/user.js';
import { $i } from '@/account.js'; import { $i } from '@/account.js';
import { i18n } from '@/i18n.js'; import { i18n } from '@/i18n.js';
const getAcct = Acct.toString;
const props = defineProps<{ const props = defineProps<{
message: Record<string, any>; message: Record<string, any>;
}>(); }>();

View file

@ -30,7 +30,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup> <script lang="ts" setup>
import { markRaw, onMounted, onUnmounted } from 'vue'; import { markRaw, onMounted, onUnmounted } from 'vue';
import * as Acct from 'cherrypick-js/built/acct'; import * as Misskey from 'cherrypick-js';
import * as os from '@/os.js'; import * as os from '@/os.js';
import { useStream } from '@/stream.js'; import { useStream } from '@/stream.js';
import { useRouter } from '@/router.js'; import { useRouter } from '@/router.js';
@ -104,7 +104,7 @@ function start(ev) {
async function startUser() { async function startUser() {
os.selectUser().then(user => { os.selectUser().then(user => {
router.push(`/my/messaging/${Acct.toString(user)}`); router.push(`/my/messaging/@${Misskey.acct.toString(user)}`);
}); });
} }

View file

@ -65,7 +65,6 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup> <script lang="ts" setup>
import { computed, onMounted, nextTick, onBeforeUnmount, watch, shallowRef } from 'vue'; import { computed, onMounted, nextTick, onBeforeUnmount, watch, shallowRef } from 'vue';
import * as Misskey from 'cherrypick-js'; import * as Misskey from 'cherrypick-js';
import * as Acct from 'cherrypick-js/built/acct';
import XMessage from './messaging-room.message.vue'; import XMessage from './messaging-room.message.vue';
import XForm from './messaging-room.form.vue'; import XForm from './messaging-room.form.vue';
import MkDateSeparatedList from '@/components/MkDateSeparatedList.vue'; import MkDateSeparatedList from '@/components/MkDateSeparatedList.vue';
@ -109,7 +108,7 @@ async function fetch() {
fetching = true; fetching = true;
if (props.userAcct) { if (props.userAcct) {
const acct = Acct.parse(props.userAcct); const acct = Misskey.acct.parse(props.userAcct);
user = await os.api('users/show', { username: acct.username, host: acct.host || undefined }); user = await os.api('users/show', { username: acct.username, host: acct.host || undefined });
group = null; group = null;
@ -310,6 +309,8 @@ onBeforeUnmount(() => {
}); });
definePageMetadata(computed(() => !fetching ? user ? { definePageMetadata(computed(() => !fetching ? user ? {
title: '',
icon: null,
userName: user, userName: user,
avatar: user, avatar: user,
} : { } : {

View file

@ -480,7 +480,7 @@ export const routes = [{
loginRequired: true, loginRequired: true,
}, { }, {
name: 'messaging-room', name: 'messaging-room',
path: '/my/messaging/:userAcct', path: '/my/messaging/@:userAcct',
component: page(() => import('./pages/messaging/messaging-room.vue')), component: page(() => import('./pages/messaging/messaging-room.vue')),
loginRequired: true, loginRequired: true,
}, { }, {

View file

@ -55,7 +55,7 @@ export function openAntenna(antennaId: string, loginId: string): ReturnType<type
export async function openChat(body: any, loginId: string) { export async function openChat(body: any, loginId: string) {
if (body.groupId === null) { if (body.groupId === null) {
return openClient('push', `/my/messaging/${getAcct(body.user)}`, loginId, { body }); return openClient('push', `/my/messaging/@${Misskey.acct.toString(body.user)}`, loginId, { body });
} else { } else {
return openClient('push', `/my/messaging/group/${body.groupId}`, loginId, { body }); return openClient('push', `/my/messaging/group/${body.groupId}`, loginId, { body });
} }