wip
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<mk-drive-selector>
|
||||
<div class="body">
|
||||
<header>
|
||||
<h1>%i18n:mobile.tags.mk-drive-selector.select-file%<span class="count" if={ files.length > 0 }>({ files.length })</span></h1>
|
||||
<h1>%i18n:mobile.tags.mk-drive-selector.select-file%<span class="count" v-if="files.length > 0">({ files.length })</span></h1>
|
||||
<button class="close" @click="cancel">%fa:times%</button>
|
||||
<button if={ opts.multiple } class="ok" @click="ok">%fa:check%</button>
|
||||
<button v-if="opts.multiple" class="ok" @click="ok">%fa:check%</button>
|
||||
</header>
|
||||
<mk-drive ref="browser" select-file={ true } multiple={ opts.multiple }/>
|
||||
</div>
|
||||
|
@@ -5,52 +5,52 @@
|
||||
<span>%fa:angle-right%</span>
|
||||
<a @click="move" href="/i/drive/folder/{ folder.id }">{ folder.name }</a>
|
||||
</virtual>
|
||||
<virtual if={ folder != null }>
|
||||
<virtual v-if="folder != null">
|
||||
<span>%fa:angle-right%</span>
|
||||
<p>{ folder.name }</p>
|
||||
</virtual>
|
||||
<virtual if={ file != null }>
|
||||
<virtual v-if="file != null">
|
||||
<span>%fa:angle-right%</span>
|
||||
<p>{ file.name }</p>
|
||||
</virtual>
|
||||
</nav>
|
||||
<mk-uploader ref="uploader"/>
|
||||
<div class="browser { fetching: fetching }" if={ file == null }>
|
||||
<div class="info" if={ info }>
|
||||
<p if={ folder == null }>{ (info.usage / info.capacity * 100).toFixed(1) }% %i18n:mobile.tags.mk-drive.used%</p>
|
||||
<p if={ folder != null && (folder.folders_count > 0 || folder.files_count > 0) }>
|
||||
<virtual if={ folder.folders_count > 0 }>{ folder.folders_count } %i18n:mobile.tags.mk-drive.folder-count%</virtual>
|
||||
<virtual if={ folder.folders_count > 0 && folder.files_count > 0 }>%i18n:mobile.tags.mk-drive.count-separator%</virtual>
|
||||
<virtual if={ folder.files_count > 0 }>{ folder.files_count } %i18n:mobile.tags.mk-drive.file-count%</virtual>
|
||||
<div class="browser { fetching: fetching }" v-if="file == null">
|
||||
<div class="info" v-if="info">
|
||||
<p v-if="folder == null">{ (info.usage / info.capacity * 100).toFixed(1) }% %i18n:mobile.tags.mk-drive.used%</p>
|
||||
<p v-if="folder != null && (folder.folders_count > 0 || folder.files_count > 0)">
|
||||
<virtual v-if="folder.folders_count > 0">{ folder.folders_count } %i18n:mobile.tags.mk-drive.folder-count%</virtual>
|
||||
<virtual v-if="folder.folders_count > 0 && folder.files_count > 0">%i18n:mobile.tags.mk-drive.count-separator%</virtual>
|
||||
<virtual v-if="folder.files_count > 0">{ folder.files_count } %i18n:mobile.tags.mk-drive.file-count%</virtual>
|
||||
</p>
|
||||
</div>
|
||||
<div class="folders" if={ folders.length > 0 }>
|
||||
<div class="folders" v-if="folders.length > 0">
|
||||
<virtual each={ folder in folders }>
|
||||
<mk-drive-folder folder={ folder }/>
|
||||
</virtual>
|
||||
<p if={ moreFolders }>%i18n:mobile.tags.mk-drive.load-more%</p>
|
||||
<p v-if="moreFolders">%i18n:mobile.tags.mk-drive.load-more%</p>
|
||||
</div>
|
||||
<div class="files" if={ files.length > 0 }>
|
||||
<div class="files" v-if="files.length > 0">
|
||||
<virtual each={ file in files }>
|
||||
<mk-drive-file file={ file }/>
|
||||
</virtual>
|
||||
<button class="more" if={ moreFiles } @click="fetchMoreFiles">
|
||||
<button class="more" v-if="moreFiles" @click="fetchMoreFiles">
|
||||
{ fetchingMoreFiles ? '%i18n:common.loading%' : '%i18n:mobile.tags.mk-drive.load-more%' }
|
||||
</button>
|
||||
</div>
|
||||
<div class="empty" if={ files.length == 0 && folders.length == 0 && !fetching }>
|
||||
<p if={ folder == null }>%i18n:mobile.tags.mk-drive.nothing-in-drive%</p>
|
||||
<p if={ folder != null }>%i18n:mobile.tags.mk-drive.folder-is-empty%</p>
|
||||
<div class="empty" v-if="files.length == 0 && folders.length == 0 && !fetching">
|
||||
<p v-if="folder == null">%i18n:mobile.tags.mk-drive.nothing-in-drive%</p>
|
||||
<p v-if="folder != null">%i18n:mobile.tags.mk-drive.folder-is-empty%</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="fetching" if={ fetching && file == null && files.length == 0 && folders.length == 0 }>
|
||||
<div class="fetching" v-if="fetching && file == null && files.length == 0 && folders.length == 0">
|
||||
<div class="spinner">
|
||||
<div class="dot1"></div>
|
||||
<div class="dot2"></div>
|
||||
</div>
|
||||
</div>
|
||||
<input ref="file" type="file" multiple="multiple" onchange={ changeLocalFile }/>
|
||||
<mk-drive-file-viewer if={ file != null } file={ file }/>
|
||||
<mk-drive-file-viewer v-if="file != null" file={ file }/>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
display block
|
||||
|
@@ -1,13 +1,13 @@
|
||||
<mk-drive-file-viewer>
|
||||
<div class="preview">
|
||||
<img if={ kind == 'image' } ref="img"
|
||||
<img v-if="kind == 'image'" ref="img"
|
||||
src={ file.url }
|
||||
alt={ file.name }
|
||||
title={ file.name }
|
||||
onload={ onImageLoaded }
|
||||
style="background-color:rgb({ file.properties.average_color.join(',') })">
|
||||
<virtual if={ kind != 'image' }>%fa:file%</virtual>
|
||||
<footer if={ kind == 'image' && file.properties && file.properties.width && file.properties.height }>
|
||||
<virtual v-if="kind != 'image'">%fa:file%</virtual>
|
||||
<footer v-if="kind == 'image' && file.properties && file.properties.width && file.properties.height">
|
||||
<span class="size">
|
||||
<span class="width">{ file.properties.width }</span>
|
||||
<span class="time">×</span>
|
||||
|
@@ -3,7 +3,7 @@
|
||||
<div class="container">
|
||||
<div class="thumbnail" style={ thumbnail }></div>
|
||||
<div class="body">
|
||||
<p class="name"><span>{ file.name.lastIndexOf('.') != -1 ? file.name.substr(0, file.name.lastIndexOf('.')) : file.name }</span><span class="ext" if={ file.name.lastIndexOf('.') != -1 }>{ file.name.substr(file.name.lastIndexOf('.')) }</span></p>
|
||||
<p class="name"><span>{ file.name.lastIndexOf('.') != -1 ? file.name.substr(0, file.name.lastIndexOf('.')) : file.name }</span><span class="ext" v-if="file.name.lastIndexOf('.') != -1">{ file.name.substr(file.name.lastIndexOf('.')) }</span></p>
|
||||
<!--
|
||||
if file.tags.length > 0
|
||||
ul.tags
|
||||
|
@@ -1,10 +1,10 @@
|
||||
<mk-follow-button>
|
||||
<button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } @click="onclick" disabled={ wait }>
|
||||
<virtual if={ !wait && user.is_following }>%fa:minus%</virtual>
|
||||
<virtual if={ !wait && !user.is_following }>%fa:plus%</virtual>
|
||||
<virtual if={ wait }>%fa:spinner .pulse .fw%</virtual>{ user.is_following ? '%i18n:mobile.tags.mk-follow-button.unfollow%' : '%i18n:mobile.tags.mk-follow-button.follow%' }
|
||||
<button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } v-if="!init" @click="onclick" disabled={ wait }>
|
||||
<virtual v-if="!wait && user.is_following">%fa:minus%</virtual>
|
||||
<virtual v-if="!wait && !user.is_following">%fa:plus%</virtual>
|
||||
<virtual v-if="wait">%fa:spinner .pulse .fw%</virtual>{ user.is_following ? '%i18n:mobile.tags.mk-follow-button.unfollow%' : '%i18n:mobile.tags.mk-follow-button.follow%' }
|
||||
</button>
|
||||
<div class="init" if={ init }>%fa:spinner .pulse .fw%</div>
|
||||
<div class="init" v-if="init">%fa:spinner .pulse .fw%</div>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
display block
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<mk-home-timeline>
|
||||
<mk-init-following if={ noFollowing } />
|
||||
<mk-init-following v-if="noFollowing" />
|
||||
<mk-timeline ref="timeline" init={ init } more={ more } empty={ '%i18n:mobile.tags.mk-home-timeline.empty-timeline%' }/>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
|
@@ -1,12 +1,12 @@
|
||||
<mk-init-following>
|
||||
<p class="title">気になるユーザーをフォロー:</p>
|
||||
<div class="users" if={ !fetching && users.length > 0 }>
|
||||
<div class="users" v-if="!fetching && users.length > 0">
|
||||
<virtual each={ users }>
|
||||
<mk-user-card user={ this } />
|
||||
</virtual>
|
||||
</div>
|
||||
<p class="empty" if={ !fetching && users.length == 0 }>おすすめのユーザーは見つかりませんでした。</p>
|
||||
<p class="fetching" if={ fetching }>%fa:spinner .pulse .fw%読み込んでいます<mk-ellipsis/></p>
|
||||
<p class="empty" v-if="!fetching && users.length == 0">おすすめのユーザーは見つかりませんでした。</p>
|
||||
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%読み込んでいます<mk-ellipsis/></p>
|
||||
<a class="refresh" @click="refresh">もっと見る</a>
|
||||
<button class="close" @click="close" title="閉じる">%fa:times%</button>
|
||||
<style lang="stylus" scoped>
|
||||
|
@@ -1,46 +1,46 @@
|
||||
<mk-notification-preview class={ notification.type }>
|
||||
<virtual if={ notification.type == 'reaction' }>
|
||||
<virtual v-if="notification.type == 'reaction'">
|
||||
<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p><mk-reaction-icon reaction={ notification.reaction }/>{ notification.user.name }</p>
|
||||
<p class="post-ref">%fa:quote-left%{ getPostSummary(notification.post) }%fa:quote-right%</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'repost' }>
|
||||
<virtual v-if="notification.type == 'repost'">
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p>%fa:retweet%{ notification.post.user.name }</p>
|
||||
<p class="post-ref">%fa:quote-left%{ getPostSummary(notification.post.repost) }%fa:quote-right%</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'quote' }>
|
||||
<virtual v-if="notification.type == 'quote'">
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p>%fa:quote-left%{ notification.post.user.name }</p>
|
||||
<p class="post-preview">{ getPostSummary(notification.post) }</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'follow' }>
|
||||
<virtual v-if="notification.type == 'follow'">
|
||||
<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p>%fa:user-plus%{ notification.user.name }</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'reply' }>
|
||||
<virtual v-if="notification.type == 'reply'">
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p>%fa:reply%{ notification.post.user.name }</p>
|
||||
<p class="post-preview">{ getPostSummary(notification.post) }</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'mention' }>
|
||||
<virtual v-if="notification.type == 'mention'">
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p>%fa:at%{ notification.post.user.name }</p>
|
||||
<p class="post-preview">{ getPostSummary(notification.post) }</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'poll_vote' }>
|
||||
<virtual v-if="notification.type == 'poll_vote'">
|
||||
<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p>%fa:chart-pie%{ notification.user.name }</p>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<mk-notification class={ notification.type }>
|
||||
<mk-time time={ notification.created_at }/>
|
||||
<virtual if={ notification.type == 'reaction' }>
|
||||
<virtual v-if="notification.type == 'reaction'">
|
||||
<a class="avatar-anchor" href={ '/' + notification.user.username }>
|
||||
<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
</a>
|
||||
@@ -14,7 +14,7 @@
|
||||
</a>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'repost' }>
|
||||
<virtual v-if="notification.type == 'repost'">
|
||||
<a class="avatar-anchor" href={ '/' + notification.post.user.username }>
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
</a>
|
||||
@@ -28,7 +28,7 @@
|
||||
</a>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'quote' }>
|
||||
<virtual v-if="notification.type == 'quote'">
|
||||
<a class="avatar-anchor" href={ '/' + notification.post.user.username }>
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
</a>
|
||||
@@ -40,7 +40,7 @@
|
||||
<a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'follow' }>
|
||||
<virtual v-if="notification.type == 'follow'">
|
||||
<a class="avatar-anchor" href={ '/' + notification.user.username }>
|
||||
<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
</a>
|
||||
@@ -51,7 +51,7 @@
|
||||
</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'reply' }>
|
||||
<virtual v-if="notification.type == 'reply'">
|
||||
<a class="avatar-anchor" href={ '/' + notification.post.user.username }>
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
</a>
|
||||
@@ -63,7 +63,7 @@
|
||||
<a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'mention' }>
|
||||
<virtual v-if="notification.type == 'mention'">
|
||||
<a class="avatar-anchor" href={ '/' + notification.post.user.username }>
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
</a>
|
||||
@@ -75,7 +75,7 @@
|
||||
<a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'poll_vote' }>
|
||||
<virtual v-if="notification.type == 'poll_vote'">
|
||||
<a class="avatar-anchor" href={ '/' + notification.user.username }>
|
||||
<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
</a>
|
||||
|
@@ -1,15 +1,15 @@
|
||||
<mk-notifications>
|
||||
<div class="notifications" if={ notifications.length != 0 }>
|
||||
<div class="notifications" v-if="notifications.length != 0">
|
||||
<virtual each={ notification, i in notifications }>
|
||||
<mk-notification notification={ notification }/>
|
||||
<p class="date" if={ i != notifications.length - 1 && notification._date != notifications[i + 1]._date }><span>%fa:angle-up%{ notification._datetext }</span><span>%fa:angle-down%{ notifications[i + 1]._datetext }</span></p>
|
||||
<p class="date" v-if="i != notifications.length - 1 && notification._date != notifications[i + 1]._date"><span>%fa:angle-up%{ notification._datetext }</span><span>%fa:angle-down%{ notifications[i + 1]._datetext }</span></p>
|
||||
</virtual>
|
||||
</div>
|
||||
<button class="more" if={ moreNotifications } @click="fetchMoreNotifications" disabled={ fetchingMoreNotifications }>
|
||||
<virtual if={ fetchingMoreNotifications }>%fa:spinner .pulse .fw%</virtual>{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:mobile.tags.mk-notifications.more%' }
|
||||
<button class="more" v-if="moreNotifications" @click="fetchMoreNotifications" disabled={ fetchingMoreNotifications }>
|
||||
<virtual v-if="fetchingMoreNotifications">%fa:spinner .pulse .fw%</virtual>{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:mobile.tags.mk-notifications.more%' }
|
||||
</button>
|
||||
<p class="empty" if={ notifications.length == 0 && !loading }>%i18n:mobile.tags.mk-notifications.empty%</p>
|
||||
<p class="loading" if={ loading }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<p class="empty" v-if="notifications.length == 0 && !loading">%i18n:mobile.tags.mk-notifications.empty%</p>
|
||||
<p class="loading" v-if="loading">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
display block
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<mk-entrance>
|
||||
<main><img src="/assets/title.svg" alt="Misskey"/>
|
||||
<mk-entrance-signin if={ mode == 'signin' }/>
|
||||
<mk-entrance-signup if={ mode == 'signup' }/>
|
||||
<div class="introduction" if={ mode == 'introduction' }>
|
||||
<mk-entrance-signin v-if="mode == 'signin'"/>
|
||||
<mk-entrance-signup v-if="mode == 'signup'"/>
|
||||
<div class="introduction" v-if="mode == 'introduction'">
|
||||
<mk-introduction/>
|
||||
<button @click="signin">%i18n:common.ok%</button>
|
||||
</div>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<mk-messaging-room-page>
|
||||
<mk-ui ref="ui">
|
||||
<mk-messaging-room if={ !parent.fetching } user={ parent.user } is-naked={ true }/>
|
||||
<mk-messaging-room v-if="!parent.fetching" user={ parent.user } is-naked={ true }/>
|
||||
</mk-ui>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
|
@@ -1,11 +1,11 @@
|
||||
<mk-post-page>
|
||||
<mk-ui ref="ui">
|
||||
<main if={ !parent.fetching }>
|
||||
<a if={ parent.post.next } href={ parent.post.next }>%fa:angle-up%%i18n:mobile.tags.mk-post-page.next%</a>
|
||||
<main v-if="!parent.fetching">
|
||||
<a v-if="parent.post.next" href={ parent.post.next }>%fa:angle-up%%i18n:mobile.tags.mk-post-page.next%</a>
|
||||
<div>
|
||||
<mk-post-detail ref="post" post={ parent.post }/>
|
||||
</div>
|
||||
<a if={ parent.post.prev } href={ parent.post.prev }>%fa:angle-down%%i18n:mobile.tags.mk-post-page.prev%</a>
|
||||
<a v-if="parent.post.prev" href={ parent.post.prev }>%fa:angle-down%%i18n:mobile.tags.mk-post-page.prev%</a>
|
||||
</main>
|
||||
</mk-ui>
|
||||
<style lang="stylus" scoped>
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<mk-selectdrive-page>
|
||||
<header>
|
||||
<h1>%i18n:mobile.tags.mk-selectdrive-page.select-file%<span class="count" if={ files.length > 0 }>({ files.length })</span></h1>
|
||||
<h1>%i18n:mobile.tags.mk-selectdrive-page.select-file%<span class="count" v-if="files.length > 0">({ files.length })</span></h1>
|
||||
<button class="upload" @click="upload">%fa:upload%</button>
|
||||
<button if={ multiple } class="ok" @click="ok">%fa:check%</button>
|
||||
<button v-if="multiple" class="ok" @click="ok">%fa:check%</button>
|
||||
</header>
|
||||
<mk-drive ref="browser" select-file={ true } multiple={ multiple } is-naked={ true } top={ 42 }/>
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<mk-user-followers-page>
|
||||
<mk-ui ref="ui">
|
||||
<mk-user-followers ref="list" if={ !parent.fetching } user={ parent.user }/>
|
||||
<mk-user-followers ref="list" v-if="!parent.fetching" user={ parent.user }/>
|
||||
</mk-ui>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<mk-user-following-page>
|
||||
<mk-ui ref="ui">
|
||||
<mk-user-following ref="list" if={ !parent.fetching } user={ parent.user }/>
|
||||
<mk-user-following ref="list" v-if="!parent.fetching" user={ parent.user }/>
|
||||
</mk-ui>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
|
@@ -1,17 +1,17 @@
|
||||
<mk-post-detail>
|
||||
<button class="read-more" if={ p.reply && p.reply.reply_id && context == null } @click="loadContext" disabled={ loadingContext }>
|
||||
<virtual if={ !contextFetching }>%fa:ellipsis-v%</virtual>
|
||||
<virtual if={ contextFetching }>%fa:spinner .pulse%</virtual>
|
||||
<button class="read-more" v-if="p.reply && p.reply.reply_id && context == null" @click="loadContext" disabled={ loadingContext }>
|
||||
<virtual v-if="!contextFetching">%fa:ellipsis-v%</virtual>
|
||||
<virtual v-if="contextFetching">%fa:spinner .pulse%</virtual>
|
||||
</button>
|
||||
<div class="context">
|
||||
<virtual each={ post in context }>
|
||||
<mk-post-detail-sub post={ post }/>
|
||||
</virtual>
|
||||
</div>
|
||||
<div class="reply-to" if={ p.reply }>
|
||||
<div class="reply-to" v-if="p.reply">
|
||||
<mk-post-detail-sub post={ p.reply }/>
|
||||
</div>
|
||||
<div class="repost" if={ isRepost }>
|
||||
<div class="repost" v-if="isRepost">
|
||||
<p>
|
||||
<a class="avatar-anchor" href={ '/' + post.user.username }>
|
||||
<img class="avatar" src={ post.user.avatar_url + '?thumbnail&size=32' } alt="avatar"/></a>
|
||||
@@ -33,10 +33,10 @@
|
||||
</header>
|
||||
<div class="body">
|
||||
<div class="text" ref="text"></div>
|
||||
<div class="media" if={ p.media }>
|
||||
<div class="media" v-if="p.media">
|
||||
<mk-images images={ p.media }/>
|
||||
</div>
|
||||
<mk-poll if={ p.poll } post={ p }/>
|
||||
<mk-poll v-if="p.poll" post={ p }/>
|
||||
</div>
|
||||
<a class="time" href={ '/' + p.user.username + '/' + p.id }>
|
||||
<mk-time time={ p.created_at } mode="detail"/>
|
||||
@@ -44,20 +44,20 @@
|
||||
<footer>
|
||||
<mk-reactions-viewer post={ p }/>
|
||||
<button @click="reply" title="%i18n:mobile.tags.mk-post-detail.reply%">
|
||||
%fa:reply%<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p>
|
||||
%fa:reply%<p class="count" v-if="p.replies_count > 0">{ p.replies_count }</p>
|
||||
</button>
|
||||
<button @click="repost" title="Repost">
|
||||
%fa:retweet%<p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p>
|
||||
%fa:retweet%<p class="count" v-if="p.repost_count > 0">{ p.repost_count }</p>
|
||||
</button>
|
||||
<button class={ reacted: p.my_reaction != null } @click="react" ref="reactButton" title="%i18n:mobile.tags.mk-post-detail.reaction%">
|
||||
%fa:plus%<p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p>
|
||||
%fa:plus%<p class="count" v-if="p.reactions_count > 0">{ p.reactions_count }</p>
|
||||
</button>
|
||||
<button @click="menu" ref="menuButton">
|
||||
%fa:ellipsis-h%
|
||||
</button>
|
||||
</footer>
|
||||
</article>
|
||||
<div class="replies" if={ !compact }>
|
||||
<div class="replies" v-if="!compact">
|
||||
<virtual each={ post in replies }>
|
||||
<mk-post-detail-sub post={ post }/>
|
||||
</virtual>
|
||||
|
@@ -2,12 +2,12 @@
|
||||
<header>
|
||||
<button class="cancel" @click="cancel">%fa:times%</button>
|
||||
<div>
|
||||
<span if={ refs.text } class="text-count { over: refs.text.value.length > 1000 }">{ 1000 - refs.text.value.length }</span>
|
||||
<span v-if="refs.text" class="text-count { over: refs.text.value.length > 1000 }">{ 1000 - refs.text.value.length }</span>
|
||||
<button class="submit" @click="post">%i18n:mobile.tags.mk-post-form.submit%</button>
|
||||
</div>
|
||||
</header>
|
||||
<div class="form">
|
||||
<mk-post-preview if={ opts.reply } post={ opts.reply }/>
|
||||
<mk-post-preview v-if="opts.reply" post={ opts.reply }/>
|
||||
<textarea ref="text" disabled={ wait } oninput={ update } onkeydown={ onkeydown } onpaste={ onpaste } placeholder={ opts.reply ? '%i18n:mobile.tags.mk-post-form.reply-placeholder%' : '%i18n:mobile.tags.mk-post-form.post-placeholder%' }></textarea>
|
||||
<div class="attaches" show={ files.length != 0 }>
|
||||
<ul class="files" ref="attaches">
|
||||
@@ -16,7 +16,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<mk-poll-editor if={ poll } ref="poll" ondestroy={ onPollDestroyed }/>
|
||||
<mk-poll-editor v-if="poll" ref="poll" ondestroy={ onPollDestroyed }/>
|
||||
<mk-uploader ref="uploader"/>
|
||||
<button ref="upload" @click="selectFile">%fa:upload%</button>
|
||||
<button ref="drive" @click="selectFileFromDrive">%fa:cloud%</button>
|
||||
|
@@ -1,10 +1,10 @@
|
||||
<mk-sub-post-content>
|
||||
<div class="body"><a class="reply" if={ post.reply_id }>%fa:reply%</a><span ref="text"></span><a class="quote" if={ post.repost_id } href={ '/post:' + post.repost_id }>RP: ...</a></div>
|
||||
<details if={ post.media }>
|
||||
<div class="body"><a class="reply" v-if="post.reply_id">%fa:reply%</a><span ref="text"></span><a class="quote" v-if="post.repost_id" href={ '/post:' + post.repost_id }>RP: ...</a></div>
|
||||
<details v-if="post.media">
|
||||
<summary>({ post.media.length }個のメディア)</summary>
|
||||
<mk-images images={ post.media }/>
|
||||
</details>
|
||||
<details if={ post.poll }>
|
||||
<details v-if="post.poll">
|
||||
<summary>%i18n:mobile.tags.mk-sub-post-content.poll%</summary>
|
||||
<mk-poll post={ post }/>
|
||||
</details>
|
||||
|
@@ -1,21 +1,21 @@
|
||||
<mk-timeline>
|
||||
<div class="init" if={ init }>
|
||||
<div class="init" v-if="init">
|
||||
%fa:spinner .pulse%%i18n:common.loading%
|
||||
</div>
|
||||
<div class="empty" if={ !init && posts.length == 0 }>
|
||||
<div class="empty" v-if="!init && posts.length == 0">
|
||||
%fa:R comments%{ opts.empty || '%i18n:mobile.tags.mk-timeline.empty%' }
|
||||
</div>
|
||||
<virtual each={ post, i in posts }>
|
||||
<mk-timeline-post post={ post }/>
|
||||
<p class="date" if={ i != posts.length - 1 && post._date != posts[i + 1]._date }>
|
||||
<p class="date" v-if="i != posts.length - 1 && post._date != posts[i + 1]._date">
|
||||
<span>%fa:angle-up%{ post._datetext }</span>
|
||||
<span>%fa:angle-down%{ posts[i + 1]._datetext }</span>
|
||||
</p>
|
||||
</virtual>
|
||||
<footer if={ !init }>
|
||||
<button if={ canFetchMore } @click="more" disabled={ fetching }>
|
||||
<span if={ !fetching }>%i18n:mobile.tags.mk-timeline.load-more%</span>
|
||||
<span if={ fetching }>%i18n:common.loading%<mk-ellipsis/></span>
|
||||
<footer v-if="!init">
|
||||
<button v-if="canFetchMore" @click="more" disabled={ fetching }>
|
||||
<span v-if="!fetching">%i18n:mobile.tags.mk-timeline.load-more%</span>
|
||||
<span v-if="fetching">%i18n:common.loading%<mk-ellipsis/></span>
|
||||
</button>
|
||||
</footer>
|
||||
<style lang="stylus" scoped>
|
||||
@@ -137,10 +137,10 @@
|
||||
</mk-timeline>
|
||||
|
||||
<mk-timeline-post class={ repost: isRepost }>
|
||||
<div class="reply-to" if={ p.reply }>
|
||||
<div class="reply-to" v-if="p.reply">
|
||||
<mk-timeline-post-sub post={ p.reply }/>
|
||||
</div>
|
||||
<div class="repost" if={ isRepost }>
|
||||
<div class="repost" v-if="isRepost">
|
||||
<p>
|
||||
<a class="avatar-anchor" href={ '/' + post.user.username }>
|
||||
<img class="avatar" src={ post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
@@ -156,7 +156,7 @@
|
||||
<div class="main">
|
||||
<header>
|
||||
<a class="name" href={ '/' + p.user.username }>{ p.user.name }</a>
|
||||
<span class="is-bot" if={ p.user.is_bot }>bot</span>
|
||||
<span class="is-bot" v-if="p.user.is_bot">bot</span>
|
||||
<span class="username">@{ p.user.username }</span>
|
||||
<a class="created-at" href={ url }>
|
||||
<mk-time time={ p.created_at }/>
|
||||
@@ -164,32 +164,32 @@
|
||||
</header>
|
||||
<div class="body">
|
||||
<div class="text" ref="text">
|
||||
<p class="channel" if={ p.channel != null }><a href={ _CH_URL_ + '/' + p.channel.id } target="_blank">{ p.channel.title }</a>:</p>
|
||||
<a class="reply" if={ p.reply }>
|
||||
<p class="channel" v-if="p.channel != null"><a href={ _CH_URL_ + '/' + p.channel.id } target="_blank">{ p.channel.title }</a>:</p>
|
||||
<a class="reply" v-if="p.reply">
|
||||
%fa:reply%
|
||||
</a>
|
||||
<p class="dummy"></p>
|
||||
<a class="quote" if={ p.repost != null }>RP:</a>
|
||||
<a class="quote" v-if="p.repost != null">RP:</a>
|
||||
</div>
|
||||
<div class="media" if={ p.media }>
|
||||
<div class="media" v-if="p.media">
|
||||
<mk-images images={ p.media }/>
|
||||
</div>
|
||||
<mk-poll if={ p.poll } post={ p } ref="pollViewer"/>
|
||||
<span class="app" if={ p.app }>via <b>{ p.app.name }</b></span>
|
||||
<div class="repost" if={ p.repost }>%fa:quote-right -flip-h%
|
||||
<mk-poll v-if="p.poll" post={ p } ref="pollViewer"/>
|
||||
<span class="app" v-if="p.app">via <b>{ p.app.name }</b></span>
|
||||
<div class="repost" v-if="p.repost">%fa:quote-right -flip-h%
|
||||
<mk-post-preview class="repost" post={ p.repost }/>
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
<mk-reactions-viewer post={ p } ref="reactionsViewer"/>
|
||||
<button @click="reply">
|
||||
%fa:reply%<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p>
|
||||
%fa:reply%<p class="count" v-if="p.replies_count > 0">{ p.replies_count }</p>
|
||||
</button>
|
||||
<button @click="repost" title="Repost">
|
||||
%fa:retweet%<p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p>
|
||||
%fa:retweet%<p class="count" v-if="p.repost_count > 0">{ p.repost_count }</p>
|
||||
</button>
|
||||
<button class={ reacted: p.my_reaction != null } @click="react" ref="reactButton">
|
||||
%fa:plus%<p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p>
|
||||
%fa:plus%<p class="count" v-if="p.reactions_count > 0">{ p.reactions_count }</p>
|
||||
</button>
|
||||
<button class="menu" @click="menu" ref="menuButton">
|
||||
%fa:ellipsis-h%
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<div class="content">
|
||||
<yield />
|
||||
</div>
|
||||
<mk-stream-indicator if={ SIGNIN }/>
|
||||
<mk-stream-indicator v-if="SIGNIN"/>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
display block
|
||||
@@ -53,9 +53,9 @@
|
||||
<div class="backdrop"></div>
|
||||
<div class="content">
|
||||
<button class="nav" @click="parent.toggleDrawer">%fa:bars%</button>
|
||||
<virtual if={ hasUnreadNotifications || hasUnreadMessagingMessages }>%fa:circle%</virtual>
|
||||
<virtual v-if="hasUnreadNotifications || hasUnreadMessagingMessages">%fa:circle%</virtual>
|
||||
<h1 ref="title">Misskey</h1>
|
||||
<button if={ func } @click="func"><mk-raw content={ funcIcon }/></button>
|
||||
<button v-if="func" @click="func"><mk-raw content={ funcIcon }/></button>
|
||||
</div>
|
||||
</div>
|
||||
<style lang="stylus" scoped>
|
||||
@@ -227,15 +227,15 @@
|
||||
<mk-ui-nav>
|
||||
<div class="backdrop" @click="parent.toggleDrawer"></div>
|
||||
<div class="body">
|
||||
<a class="me" if={ SIGNIN } href={ '/' + I.username }>
|
||||
<a class="me" v-if="SIGNIN" href={ '/' + I.username }>
|
||||
<img class="avatar" src={ I.avatar_url + '?thumbnail&size=128' } alt="avatar"/>
|
||||
<p class="name">{ I.name }</p>
|
||||
</a>
|
||||
<div class="links">
|
||||
<ul>
|
||||
<li><a href="/">%fa:home%%i18n:mobile.tags.mk-ui-nav.home%%fa:angle-right%</a></li>
|
||||
<li><a href="/i/notifications">%fa:R bell%%i18n:mobile.tags.mk-ui-nav.notifications%<virtual if={ hasUnreadNotifications }>%fa:circle%</virtual>%fa:angle-right%</a></li>
|
||||
<li><a href="/i/messaging">%fa:R comments%%i18n:mobile.tags.mk-ui-nav.messaging%<virtual if={ hasUnreadMessagingMessages }>%fa:circle%</virtual>%fa:angle-right%</a></li>
|
||||
<li><a href="/i/notifications">%fa:R bell%%i18n:mobile.tags.mk-ui-nav.notifications%<virtual v-if="hasUnreadNotifications">%fa:circle%</virtual>%fa:angle-right%</a></li>
|
||||
<li><a href="/i/messaging">%fa:R comments%%i18n:mobile.tags.mk-ui-nav.messaging%<virtual v-if="hasUnreadMessagingMessages">%fa:circle%</virtual>%fa:angle-right%</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href={ _CH_URL_ } target="_blank">%fa:tv%%i18n:mobile.tags.mk-ui-nav.ch%%fa:angle-right%</a></li>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<mk-user>
|
||||
<div class="user" if={ !fetching }>
|
||||
<div class="user" v-if="!fetching">
|
||||
<header>
|
||||
<div class="banner" style={ user.banner_url ? 'background-image: url(' + user.banner_url + '?thumbnail&size=1024)' : '' }></div>
|
||||
<div class="body">
|
||||
@@ -7,19 +7,19 @@
|
||||
<a class="avatar">
|
||||
<img src={ user.avatar_url + '?thumbnail&size=200' } alt="avatar"/>
|
||||
</a>
|
||||
<mk-follow-button if={ SIGNIN && I.id != user.id } user={ user }/>
|
||||
<mk-follow-button v-if="SIGNIN && I.id != user.id" user={ user }/>
|
||||
</div>
|
||||
<div class="title">
|
||||
<h1>{ user.name }</h1>
|
||||
<span class="username">@{ user.username }</span>
|
||||
<span class="followed" if={ user.is_followed }>%i18n:mobile.tags.mk-user.follows-you%</span>
|
||||
<span class="followed" v-if="user.is_followed">%i18n:mobile.tags.mk-user.follows-you%</span>
|
||||
</div>
|
||||
<div class="description">{ user.description }</div>
|
||||
<div class="info">
|
||||
<p class="location" if={ user.profile.location }>
|
||||
<p class="location" v-if="user.profile.location">
|
||||
%fa:map-marker%{ user.profile.location }
|
||||
</p>
|
||||
<p class="birthday" if={ user.profile.birthday }>
|
||||
<p class="birthday" v-if="user.profile.birthday">
|
||||
%fa:birthday-cake%{ user.profile.birthday.replace('-', '年').replace('-', '月') + '日' } ({ age(user.profile.birthday) }歳)
|
||||
</p>
|
||||
</div>
|
||||
@@ -45,9 +45,9 @@
|
||||
</nav>
|
||||
</header>
|
||||
<div class="body">
|
||||
<mk-user-overview if={ page == 'overview' } user={ user }/>
|
||||
<mk-user-timeline if={ page == 'posts' } user={ user }/>
|
||||
<mk-user-timeline if={ page == 'media' } user={ user } with-media={ true }/>
|
||||
<mk-user-overview v-if="page == 'overview'" user={ user }/>
|
||||
<mk-user-timeline v-if="page == 'posts'" user={ user }/>
|
||||
<mk-user-timeline v-if="page == 'media'" user={ user } with-media={ true }/>
|
||||
</div>
|
||||
</div>
|
||||
<style lang="stylus" scoped>
|
||||
@@ -215,7 +215,7 @@
|
||||
</mk-user>
|
||||
|
||||
<mk-user-overview>
|
||||
<mk-post-detail if={ user.pinned_post } post={ user.pinned_post } compact={ true }/>
|
||||
<mk-post-detail v-if="user.pinned_post" post={ user.pinned_post } compact={ true }/>
|
||||
<section class="recent-posts">
|
||||
<h2>%fa:R comments%%i18n:mobile.tags.mk-user-overview.recent-posts%</h2>
|
||||
<div>
|
||||
@@ -252,7 +252,7 @@
|
||||
<mk-user-overview-frequently-replied-users user={ user }/>
|
||||
</div>
|
||||
</section>
|
||||
<section class="followers-you-know" if={ SIGNIN && I.id !== user.id }>
|
||||
<section class="followers-you-know" v-if="SIGNIN && I.id !== user.id">
|
||||
<h2>%fa:users%%i18n:mobile.tags.mk-user-overview.followers-you-know%</h2>
|
||||
<div>
|
||||
<mk-user-overview-followers-you-know user={ user }/>
|
||||
@@ -307,13 +307,13 @@
|
||||
</mk-user-overview>
|
||||
|
||||
<mk-user-overview-posts>
|
||||
<p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-posts.loading%<mk-ellipsis/></p>
|
||||
<div if={ !initializing && posts.length > 0 }>
|
||||
<p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-posts.loading%<mk-ellipsis/></p>
|
||||
<div v-if="!initializing && posts.length > 0">
|
||||
<virtual each={ posts }>
|
||||
<mk-user-overview-posts-post-card post={ this }/>
|
||||
</virtual>
|
||||
</div>
|
||||
<p class="empty" if={ !initializing && posts.length == 0 }>%i18n:mobile.tags.mk-user-overview-posts.no-posts%</p>
|
||||
<p class="empty" v-if="!initializing && posts.length == 0">%i18n:mobile.tags.mk-user-overview-posts.no-posts%</p>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
display block
|
||||
@@ -436,13 +436,13 @@
|
||||
</mk-user-overview-posts-post-card>
|
||||
|
||||
<mk-user-overview-photos>
|
||||
<p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-photos.loading%<mk-ellipsis/></p>
|
||||
<div class="stream" if={ !initializing && images.length > 0 }>
|
||||
<p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-photos.loading%<mk-ellipsis/></p>
|
||||
<div class="stream" v-if="!initializing && images.length > 0">
|
||||
<virtual each={ image in images }>
|
||||
<a class="img" style={ 'background-image: url(' + image.media.url + '?thumbnail&size=256)' } href={ '/' + image.post.user.username + '/' + image.post.id }></a>
|
||||
</virtual>
|
||||
</div>
|
||||
<p class="empty" if={ !initializing && images.length == 0 }>%i18n:mobile.tags.mk-user-overview-photos.no-photos%</p>
|
||||
<p class="empty" v-if="!initializing && images.length == 0">%i18n:mobile.tags.mk-user-overview-photos.no-photos%</p>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
display block
|
||||
@@ -506,7 +506,7 @@
|
||||
</mk-user-overview-photos>
|
||||
|
||||
<mk-user-overview-activity-chart>
|
||||
<svg if={ data } ref="canvas" viewBox="0 0 30 1" preserveAspectRatio="none">
|
||||
<svg v-if="data" ref="canvas" viewBox="0 0 30 1" preserveAspectRatio="none">
|
||||
<g each={ d, i in data.reverse() }>
|
||||
<rect width="0.8" riot-height={ d.postsH }
|
||||
riot-x={ i + 0.1 } riot-y={ 1 - d.postsH - d.repliesH - d.repostsH }
|
||||
@@ -558,12 +558,12 @@
|
||||
</mk-user-overview-activity-chart>
|
||||
|
||||
<mk-user-overview-keywords>
|
||||
<div if={ user.keywords != null && user.keywords.length > 1 }>
|
||||
<div v-if="user.keywords != null && user.keywords.length > 1">
|
||||
<virtual each={ keyword in user.keywords }>
|
||||
<a>{ keyword }</a>
|
||||
</virtual>
|
||||
</div>
|
||||
<p class="empty" if={ user.keywords == null || user.keywords.length == 0 }>%i18n:mobile.tags.mk-user-overview-keywords.no-keywords%</p>
|
||||
<p class="empty" v-if="user.keywords == null || user.keywords.length == 0">%i18n:mobile.tags.mk-user-overview-keywords.no-keywords%</p>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
display block
|
||||
@@ -592,12 +592,12 @@
|
||||
</mk-user-overview-keywords>
|
||||
|
||||
<mk-user-overview-domains>
|
||||
<div if={ user.domains != null && user.domains.length > 1 }>
|
||||
<div v-if="user.domains != null && user.domains.length > 1">
|
||||
<virtual each={ domain in user.domains }>
|
||||
<a style="opacity: { 0.5 + (domain.weight / 2) }">{ domain.domain }</a>
|
||||
</virtual>
|
||||
</div>
|
||||
<p class="empty" if={ user.domains == null || user.domains.length == 0 }>%i18n:mobile.tags.mk-user-overview-domains.no-domains%</p>
|
||||
<p class="empty" v-if="user.domains == null || user.domains.length == 0">%i18n:mobile.tags.mk-user-overview-domains.no-domains%</p>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
display block
|
||||
@@ -626,13 +626,13 @@
|
||||
</mk-user-overview-domains>
|
||||
|
||||
<mk-user-overview-frequently-replied-users>
|
||||
<p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-frequently-replied-users.loading%<mk-ellipsis/></p>
|
||||
<div if={ !initializing && users.length > 0 }>
|
||||
<p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-frequently-replied-users.loading%<mk-ellipsis/></p>
|
||||
<div v-if="!initializing && users.length > 0">
|
||||
<virtual each={ users }>
|
||||
<mk-user-card user={ this.user }/>
|
||||
</virtual>
|
||||
</div>
|
||||
<p class="empty" if={ !initializing && users.length == 0 }>%i18n:mobile.tags.mk-user-overview-frequently-replied-users.no-users%</p>
|
||||
<p class="empty" v-if="!initializing && users.length == 0">%i18n:mobile.tags.mk-user-overview-frequently-replied-users.no-users%</p>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
display block
|
||||
@@ -678,13 +678,13 @@
|
||||
</mk-user-overview-frequently-replied-users>
|
||||
|
||||
<mk-user-overview-followers-you-know>
|
||||
<p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-followers-you-know.loading%<mk-ellipsis/></p>
|
||||
<div if={ !initializing && users.length > 0 }>
|
||||
<p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-followers-you-know.loading%<mk-ellipsis/></p>
|
||||
<div v-if="!initializing && users.length > 0">
|
||||
<virtual each={ user in users }>
|
||||
<a href={ '/' + user.username }><img src={ user.avatar_url + '?thumbnail&size=64' } alt={ user.name }/></a>
|
||||
</virtual>
|
||||
</div>
|
||||
<p class="empty" if={ !initializing && users.length == 0 }>%i18n:mobile.tags.mk-user-overview-followers-you-know.no-users%</p>
|
||||
<p class="empty" v-if="!initializing && users.length == 0">%i18n:mobile.tags.mk-user-overview-followers-you-know.no-users%</p>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
display block
|
||||
|
@@ -1,16 +1,16 @@
|
||||
<mk-users-list>
|
||||
<nav>
|
||||
<span data-is-active={ mode == 'all' } @click="setMode.bind(this, 'all')">%i18n:mobile.tags.mk-users-list.all%<span>{ opts.count }</span></span>
|
||||
<span if={ SIGNIN && opts.youKnowCount } data-is-active={ mode == 'iknow' } @click="setMode.bind(this, 'iknow')">%i18n:mobile.tags.mk-users-list.known%<span>{ opts.youKnowCount }</span></span>
|
||||
<span v-if="SIGNIN && opts.youKnowCount" data-is-active={ mode == 'iknow' } @click="setMode.bind(this, 'iknow')">%i18n:mobile.tags.mk-users-list.known%<span>{ opts.youKnowCount }</span></span>
|
||||
</nav>
|
||||
<div class="users" if={ !fetching && users.length != 0 }>
|
||||
<div class="users" v-if="!fetching && users.length != 0">
|
||||
<mk-user-preview each={ users } user={ this }/>
|
||||
</div>
|
||||
<button class="more" if={ !fetching && next != null } @click="more" disabled={ moreFetching }>
|
||||
<span if={ !moreFetching }>%i18n:mobile.tags.mk-users-list.load-more%</span>
|
||||
<span if={ moreFetching }>%i18n:common.loading%<mk-ellipsis/></span></button>
|
||||
<p class="no" if={ !fetching && users.length == 0 }>{ opts.noUsers }</p>
|
||||
<p class="fetching" if={ fetching }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<button class="more" v-if="!fetching && next != null" @click="more" disabled={ moreFetching }>
|
||||
<span v-if="!moreFetching">%i18n:mobile.tags.mk-users-list.load-more%</span>
|
||||
<span v-if="moreFetching">%i18n:common.loading%<mk-ellipsis/></span></button>
|
||||
<p class="no" v-if="!fetching && users.length == 0">{ opts.noUsers }</p>
|
||||
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<style lang="stylus" scoped>
|
||||
:scope
|
||||
display block
|
||||
|
Reference in New Issue
Block a user