summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2020-11-29 00:43:03 +0900
committersyuilo <syuilotan@yahoo.co.jp>2020-11-29 00:43:03 +0900
commit4eab9b4354a3ee67421b2780e502c1e2557cf8b4 (patch)
treed220b57fe70d858401a1c2ffa06dc524d989025e /src
parentwip (diff)
downloadmisskey-4eab9b4354a3ee67421b2780e502c1e2557cf8b4.tar.gz
misskey-4eab9b4354a3ee67421b2780e502c1e2557cf8b4.tar.bz2
misskey-4eab9b4354a3ee67421b2780e502c1e2557cf8b4.zip
wip
Diffstat (limited to 'src')
-rw-r--r--src/client/pages/user/index.vue332
1 files changed, 167 insertions, 165 deletions
diff --git a/src/client/pages/user/index.vue b/src/client/pages/user/index.vue
index ec4dc48200..fd2e2f10cb 100644
--- a/src/client/pages/user/index.vue
+++ b/src/client/pages/user/index.vue
@@ -1,104 +1,122 @@
<template>
-<div class="ftskorzw wide _section" v-if="user && narrow === false">
- <div class="banner-container" :style="style">
- <div class="banner" ref="banner" :style="style"></div>
- </div>
- <div class="contents">
- <div class="side _forceContainerFull_">
- <MkAvatar class="avatar" :user="user" :disable-preview="true"/>
- <div class="name">
- <MkUserName :user="user" :nowrap="false" class="name"/>
- <MkAcct :user="user" :detail="true" class="acct"/>
- </div>
- <div class="followed" v-if="$store.getters.isSignedIn && $store.state.i.id != user.id && user.isFollowed"><span>{{ $t('followsYou') }}</span></div>
- <div class="status">
- <MkA :to="userPage(user)" :class="{ active: page === 'index' }">
- <b>{{ number(user.notesCount) }}</b>
- <span>{{ $t('notes') }}</span>
- </MkA>
- <MkA :to="userPage(user, 'following')" :class="{ active: page === 'following' }">
- <b>{{ number(user.followingCount) }}</b>
- <span>{{ $t('following') }}</span>
- </MkA>
- <MkA :to="userPage(user, 'followers')" :class="{ active: page === 'followers' }">
- <b>{{ number(user.followersCount) }}</b>
- <span>{{ $t('followers') }}</span>
- </MkA>
- </div>
- <div class="description">
- <Mfm v-if="user.description" :text="user.description" :is-note="false" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
- <p v-else class="empty">{{ $t('noAccountDescription') }}</p>
- </div>
- <div class="fields system">
- <dl class="field" v-if="user.location">
- <dt class="name"><Fa :icon="faMapMarker" fixed-width/> {{ $t('location') }}</dt>
- <dd class="value">{{ user.location }}</dd>
- </dl>
- <dl class="field" v-if="user.birthday">
- <dt class="name"><Fa :icon="faBirthdayCake" fixed-width/> {{ $t('birthday') }}</dt>
- <dd class="value">{{ user.birthday.replace('-', '/').replace('-', '/') }} ({{ $t('yearsOld', { age }) }})</dd>
- </dl>
- <dl class="field">
- <dt class="name"><Fa :icon="faCalendarAlt" fixed-width/> {{ $t('registeredDate') }}</dt>
- <dd class="value">{{ new Date(user.createdAt).toLocaleString() }} (<MkTime :time="user.createdAt"/>)</dd>
- </dl>
- </div>
- <div class="fields" v-if="user.fields.length > 0">
- <dl class="field" v-for="(field, i) in user.fields" :key="i">
- <dt class="name">
- <Mfm :text="field.name" :plain="true" :custom-emojis="user.emojis" :colored="false"/>
- </dt>
- <dd class="value">
- <Mfm :text="field.value" :author="user" :i="$store.state.i" :custom-emojis="user.emojis" :colored="false"/>
- </dd>
- </dl>
- </div>
- <XActivity :user="user" :key="user.id" class="_vMargin"/>
- <XPhotos :user="user" :key="user.id" class="_vMargin"/>
+<div>
+ <div class="ftskorzw wide _section" v-if="user && narrow === false">
+ <div class="banner-container" :style="style">
+ <div class="banner" ref="banner" :style="style"></div>
</div>
- <div class="main">
- <div class="nav _vMargin">
- <MkA :to="userPage(user)" :class="{ active: page === 'index' }" class="link">
- <span>{{ $t('notes') }}</span>
- </MkA>
- <MkA :to="userPage(user, 'clips')" :class="{ active: page === 'clips' }" class="link">
- <span>{{ $t('clips') }}</span>
- </MkA>
- <MkA :to="userPage(user, 'pages')" :class="{ active: page === 'pages' }" class="link">
- <span>{{ $t('pages') }}</span>
- </MkA>
- <div class="actions">
- <button @click="menu" class="menu _button"><Fa :icon="faEllipsisH"/></button>
- <MkFollowButton v-if="!$store.getters.isSignedIn || $store.state.i.id != user.id" :user="user" :inline="true" :transparent="false" :full="true" large class="koudoku"/>
+ <div class="contents">
+ <div class="side _forceContainerFull_">
+ <MkAvatar class="avatar" :user="user" :disable-preview="true"/>
+ <div class="name">
+ <MkUserName :user="user" :nowrap="false" class="name"/>
+ <MkAcct :user="user" :detail="true" class="acct"/>
</div>
- </div>
- <template v-if="page === 'index'">
- <div v-if="user.pinnedNotes.length > 0" class="_vMargin">
- <XNote v-for="note in user.pinnedNotes" class="note _vMargin" :note="note" @update:note="pinnedNoteUpdated(note, $event)" :key="note.id" :detail="true" :pinned="true"/>
+ <div class="followed" v-if="$store.getters.isSignedIn && $store.state.i.id != user.id && user.isFollowed"><span>{{ $t('followsYou') }}</span></div>
+ <div class="status">
+ <MkA :to="userPage(user)" :class="{ active: page === 'index' }">
+ <b>{{ number(user.notesCount) }}</b>
+ <span>{{ $t('notes') }}</span>
+ </MkA>
+ <MkA :to="userPage(user, 'following')" :class="{ active: page === 'following' }">
+ <b>{{ number(user.followingCount) }}</b>
+ <span>{{ $t('following') }}</span>
+ </MkA>
+ <MkA :to="userPage(user, 'followers')" :class="{ active: page === 'followers' }">
+ <b>{{ number(user.followersCount) }}</b>
+ <span>{{ $t('followers') }}</span>
+ </MkA>
+ </div>
+ <div class="description">
+ <Mfm v-if="user.description" :text="user.description" :is-note="false" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
+ <p v-else class="empty">{{ $t('noAccountDescription') }}</p>
</div>
- <div class="_vMargin">
- <XUserTimeline :user="user"/>
+ <div class="fields system">
+ <dl class="field" v-if="user.location">
+ <dt class="name"><Fa :icon="faMapMarker" fixed-width/> {{ $t('location') }}</dt>
+ <dd class="value">{{ user.location }}</dd>
+ </dl>
+ <dl class="field" v-if="user.birthday">
+ <dt class="name"><Fa :icon="faBirthdayCake" fixed-width/> {{ $t('birthday') }}</dt>
+ <dd class="value">{{ user.birthday.replace('-', '/').replace('-', '/') }} ({{ $t('yearsOld', { age }) }})</dd>
+ </dl>
+ <dl class="field">
+ <dt class="name"><Fa :icon="faCalendarAlt" fixed-width/> {{ $t('registeredDate') }}</dt>
+ <dd class="value">{{ new Date(user.createdAt).toLocaleString() }} (<MkTime :time="user.createdAt"/>)</dd>
+ </dl>
</div>
- </template>
- <XFollowList v-else-if="page === 'following'" type="following" :user="user" class="_vMargin"/>
- <XFollowList v-else-if="page === 'followers'" type="followers" :user="user" class="_vMargin"/>
+ <div class="fields" v-if="user.fields.length > 0">
+ <dl class="field" v-for="(field, i) in user.fields" :key="i">
+ <dt class="name">
+ <Mfm :text="field.name" :plain="true" :custom-emojis="user.emojis" :colored="false"/>
+ </dt>
+ <dd class="value">
+ <Mfm :text="field.value" :author="user" :i="$store.state.i" :custom-emojis="user.emojis" :colored="false"/>
+ </dd>
+ </dl>
+ </div>
+ <XActivity :user="user" :key="user.id" class="_vMargin"/>
+ <XPhotos :user="user" :key="user.id" class="_vMargin"/>
+ </div>
+ <div class="main">
+ <div class="nav _vMargin">
+ <MkA :to="userPage(user)" :class="{ active: page === 'index' }" class="link">
+ <span>{{ $t('notes') }}</span>
+ </MkA>
+ <MkA :to="userPage(user, 'clips')" :class="{ active: page === 'clips' }" class="link">
+ <span>{{ $t('clips') }}</span>
+ </MkA>
+ <MkA :to="userPage(user, 'pages')" :class="{ active: page === 'pages' }" class="link">
+ <span>{{ $t('pages') }}</span>
+ </MkA>
+ <div class="actions">
+ <button @click="menu" class="menu _button"><Fa :icon="faEllipsisH"/></button>
+ <MkFollowButton v-if="!$store.getters.isSignedIn || $store.state.i.id != user.id" :user="user" :inline="true" :transparent="false" :full="true" large class="koudoku"/>
+ </div>
+ </div>
+ <template v-if="page === 'index'">
+ <div v-if="user.pinnedNotes.length > 0" class="_vMargin">
+ <XNote v-for="note in user.pinnedNotes" class="note _vMargin" :note="note" @update:note="pinnedNoteUpdated(note, $event)" :key="note.id" :detail="true" :pinned="true"/>
+ </div>
+ <div class="_vMargin">
+ <XUserTimeline :user="user"/>
+ </div>
+ </template>
+ <XFollowList v-else-if="page === 'following'" type="following" :user="user" class="_vMargin"/>
+ <XFollowList v-else-if="page === 'followers'" type="followers" :user="user" class="_vMargin"/>
+ </div>
</div>
</div>
-</div>
-<div class="ftskorzw narrow _section" v-else-if="user && narrow === true" v-size="{ max: [500] }">
- <!-- TODO -->
- <!-- <div class="punished" v-if="user.isSuspended"><Fa :icon="faExclamationTriangle" style="margin-right: 8px;"/> {{ $t('userSuspended') }}</div> -->
- <!-- <div class="punished" v-if="user.isSilenced"><Fa :icon="faExclamationTriangle" style="margin-right: 8px;"/> {{ $t('userSilenced') }}</div> -->
+ <div class="ftskorzw narrow _section" v-else-if="user && narrow === true" v-size="{ max: [500] }">
+ <!-- TODO -->
+ <!-- <div class="punished" v-if="user.isSuspended"><Fa :icon="faExclamationTriangle" style="margin-right: 8px;"/> {{ $t('userSuspended') }}</div> -->
+ <!-- <div class="punished" v-if="user.isSilenced"><Fa :icon="faExclamationTriangle" style="margin-right: 8px;"/> {{ $t('userSilenced') }}</div> -->
- <div class="profile _content _vMargin">
- <MkRemoteCaution v-if="user.host != null" :href="user.url" class="_vMargin"/>
+ <div class="profile _content _vMargin">
+ <MkRemoteCaution v-if="user.host != null" :href="user.url" class="_vMargin"/>
- <div class="_vMargin _panel main" :key="user.id">
- <div class="banner-container" :style="style">
- <div class="banner" ref="banner" :style="style"></div>
- <div class="fade"></div>
+ <div class="_vMargin _panel main" :key="user.id">
+ <div class="banner-container" :style="style">
+ <div class="banner" ref="banner" :style="style"></div>
+ <div class="fade"></div>
+ <div class="title">
+ <MkUserName class="name" :user="user" :nowrap="true"/>
+ <div class="bottom">
+ <span class="username"><MkAcct :user="user" :detail="true" /></span>
+ <span v-if="user.isAdmin" :title="$t('isAdmin')" style="color: var(--badge);"><Fa :icon="faBookmark"/></span>
+ <span v-if="!user.isAdmin && user.isModerator" :title="$t('isModerator')" style="color: var(--badge);"><Fa :icon="farBookmark"/></span>
+ <span v-if="user.isLocked" :title="$t('isLocked')"><Fa :icon="faLock"/></span>
+ <span v-if="user.isBot" :title="$t('isBot')"><Fa :icon="faRobot"/></span>
+ </div>
+ </div>
+ <span class="followed" v-if="$store.getters.isSignedIn && $store.state.i.id != user.id && user.isFollowed">{{ $t('followsYou') }}</span>
+ <div class="actions" v-if="$store.getters.isSignedIn">
+ <button @click="menu" class="menu _button"><Fa :icon="faEllipsisH"/></button>
+ <MkFollowButton v-if="$store.state.i.id != user.id" :user="user" :inline="true" :transparent="false" :full="true" class="koudoku"/>
+ </div>
+ </div>
+ <MkAvatar class="avatar" :user="user" :disable-preview="true"/>
<div class="title">
- <MkUserName class="name" :user="user" :nowrap="true"/>
+ <MkUserName :user="user" :nowrap="false" class="name"/>
<div class="bottom">
<span class="username"><MkAcct :user="user" :detail="true" /></span>
<span v-if="user.isAdmin" :title="$t('isAdmin')" style="color: var(--badge);"><Fa :icon="faBookmark"/></span>
@@ -107,85 +125,69 @@
<span v-if="user.isBot" :title="$t('isBot')"><Fa :icon="faRobot"/></span>
</div>
</div>
- <span class="followed" v-if="$store.getters.isSignedIn && $store.state.i.id != user.id && user.isFollowed">{{ $t('followsYou') }}</span>
- <div class="actions" v-if="$store.getters.isSignedIn">
- <button @click="menu" class="menu _button"><Fa :icon="faEllipsisH"/></button>
- <MkFollowButton v-if="$store.state.i.id != user.id" :user="user" :inline="true" :transparent="false" :full="true" class="koudoku"/>
+ <div class="description">
+ <Mfm v-if="user.description" :text="user.description" :is-note="false" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
+ <p v-else class="empty">{{ $t('noAccountDescription') }}</p>
</div>
- </div>
- <MkAvatar class="avatar" :user="user" :disable-preview="true"/>
- <div class="title">
- <MkUserName :user="user" :nowrap="false" class="name"/>
- <div class="bottom">
- <span class="username"><MkAcct :user="user" :detail="true" /></span>
- <span v-if="user.isAdmin" :title="$t('isAdmin')" style="color: var(--badge);"><Fa :icon="faBookmark"/></span>
- <span v-if="!user.isAdmin && user.isModerator" :title="$t('isModerator')" style="color: var(--badge);"><Fa :icon="farBookmark"/></span>
- <span v-if="user.isLocked" :title="$t('isLocked')"><Fa :icon="faLock"/></span>
- <span v-if="user.isBot" :title="$t('isBot')"><Fa :icon="faRobot"/></span>
+ <div class="fields system">
+ <dl class="field" v-if="user.location">
+ <dt class="name"><Fa :icon="faMapMarker" fixed-width/> {{ $t('location') }}</dt>
+ <dd class="value">{{ user.location }}</dd>
+ </dl>
+ <dl class="field" v-if="user.birthday">
+ <dt class="name"><Fa :icon="faBirthdayCake" fixed-width/> {{ $t('birthday') }}</dt>
+ <dd class="value">{{ user.birthday.replace('-', '/').replace('-', '/') }} ({{ $t('yearsOld', { age }) }})</dd>
+ </dl>
+ <dl class="field">
+ <dt class="name"><Fa :icon="faCalendarAlt" fixed-width/> {{ $t('registeredDate') }}</dt>
+ <dd class="value">{{ new Date(user.createdAt).toLocaleString() }} (<MkTime :time="user.createdAt"/>)</dd>
+ </dl>
+ </div>
+ <div class="fields" v-if="user.fields.length > 0">
+ <dl class="field" v-for="(field, i) in user.fields" :key="i">
+ <dt class="name">
+ <Mfm :text="field.name" :plain="true" :custom-emojis="user.emojis" :colored="false"/>
+ </dt>
+ <dd class="value">
+ <Mfm :text="field.value" :author="user" :i="$store.state.i" :custom-emojis="user.emojis" :colored="false"/>
+ </dd>
+ </dl>
+ </div>
+ <div class="status">
+ <MkA :to="userPage(user)" :class="{ active: page === 'index' }">
+ <b>{{ number(user.notesCount) }}</b>
+ <span>{{ $t('notes') }}</span>
+ </MkA>
+ <MkA :to="userPage(user, 'following')" :class="{ active: page === 'following' }">
+ <b>{{ number(user.followingCount) }}</b>
+ <span>{{ $t('following') }}</span>
+ </MkA>
+ <MkA :to="userPage(user, 'followers')" :class="{ active: page === 'followers' }">
+ <b>{{ number(user.followersCount) }}</b>
+ <span>{{ $t('followers') }}</span>
+ </MkA>
</div>
- </div>
- <div class="description">
- <Mfm v-if="user.description" :text="user.description" :is-note="false" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
- <p v-else class="empty">{{ $t('noAccountDescription') }}</p>
- </div>
- <div class="fields system">
- <dl class="field" v-if="user.location">
- <dt class="name"><Fa :icon="faMapMarker" fixed-width/> {{ $t('location') }}</dt>
- <dd class="value">{{ user.location }}</dd>
- </dl>
- <dl class="field" v-if="user.birthday">
- <dt class="name"><Fa :icon="faBirthdayCake" fixed-width/> {{ $t('birthday') }}</dt>
- <dd class="value">{{ user.birthday.replace('-', '/').replace('-', '/') }} ({{ $t('yearsOld', { age }) }})</dd>
- </dl>
- <dl class="field">
- <dt class="name"><Fa :icon="faCalendarAlt" fixed-width/> {{ $t('registeredDate') }}</dt>
- <dd class="value">{{ new Date(user.createdAt).toLocaleString() }} (<MkTime :time="user.createdAt"/>)</dd>
- </dl>
- </div>
- <div class="fields" v-if="user.fields.length > 0">
- <dl class="field" v-for="(field, i) in user.fields" :key="i">
- <dt class="name">
- <Mfm :text="field.name" :plain="true" :custom-emojis="user.emojis" :colored="false"/>
- </dt>
- <dd class="value">
- <Mfm :text="field.value" :author="user" :i="$store.state.i" :custom-emojis="user.emojis" :colored="false"/>
- </dd>
- </dl>
- </div>
- <div class="status">
- <MkA :to="userPage(user)" :class="{ active: page === 'index' }">
- <b>{{ number(user.notesCount) }}</b>
- <span>{{ $t('notes') }}</span>
- </MkA>
- <MkA :to="userPage(user, 'following')" :class="{ active: page === 'following' }">
- <b>{{ number(user.followingCount) }}</b>
- <span>{{ $t('following') }}</span>
- </MkA>
- <MkA :to="userPage(user, 'followers')" :class="{ active: page === 'followers' }">
- <b>{{ number(user.followersCount) }}</b>
- <span>{{ $t('followers') }}</span>
- </MkA>
</div>
</div>
- </div>
- <template v-if="page === 'index'">
- <div class="_content _vMargin">
- <div v-if="user.pinnedNotes.length > 0">
- <XNote v-for="note in user.pinnedNotes" class="note _vMargin" :note="note" @update:note="pinnedNoteUpdated(note, $event)" :key="note.id" :detail="true" :pinned="true"/>
+ <template v-if="page === 'index'">
+ <div class="_content _vMargin">
+ <div v-if="user.pinnedNotes.length > 0" class="_vMargin">
+ <XNote v-for="note in user.pinnedNotes" class="note _vMargin" :note="note" @update:note="pinnedNoteUpdated(note, $event)" :key="note.id" :detail="true" :pinned="true"/>
+ </div>
+ <XPhotos :user="user" :key="user.id" class="_vMargin"/>
+ <XActivity :user="user" :key="user.id" class="_vMargin"/>
</div>
- <XPhotos :user="user" :key="user.id"/>
- <XActivity :user="user" :key="user.id"/>
- </div>
- <div class="_content _vMargin">
- <XUserTimeline :user="user" class="_content"/>
- </div>
- </template>
- <XFollowList v-else-if="page === 'following'" type="following" :user="user" class="_content _vMargin"/>
- <XFollowList v-else-if="page === 'followers'" type="followers" :user="user" class="_content _vMargin"/>
-</div>
-<div v-else-if="error">
- <MkError @retry="fetch()"/>
+ <div class="_content _vMargin">
+ <XUserTimeline :user="user" class="_content"/>
+ </div>
+ </template>
+ <XFollowList v-else-if="page === 'following'" type="following" :user="user" class="_content _vMargin"/>
+ <XFollowList v-else-if="page === 'followers'" type="followers" :user="user" class="_content _vMargin"/>
+ </div>
+ <div v-else-if="error">
+ <MkError @retry="fetch()"/>
+ </div>
</div>
</template>
@@ -718,7 +720,7 @@ export default defineComponent({
}
&.max-width_500px {
- > .profile > ._content {
+ > .profile > .main {
> .banner-container {
height: 140px;