wip
This commit is contained in:
		@@ -2,7 +2,7 @@
 | 
			
		||||
<div class="mk-drive-file-chooser">
 | 
			
		||||
	<div class="body">
 | 
			
		||||
		<header>
 | 
			
		||||
			<h1>%i18n:mobile.tags.mk-drive-selector.select-file%<span class="count" v-if="files.length > 0">({{ files.length }})</span></h1>
 | 
			
		||||
			<h1>%i18n:@select-file%<span class="count" v-if="files.length > 0">({{ files.length }})</span></h1>
 | 
			
		||||
			<button class="close" @click="cancel">%fa:times%</button>
 | 
			
		||||
			<button v-if="multiple" class="ok" @click="ok">%fa:check%</button>
 | 
			
		||||
		</header>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
<div class="mk-drive-folder-chooser">
 | 
			
		||||
	<div class="body">
 | 
			
		||||
		<header>
 | 
			
		||||
			<h1>%i18n:mobile.tags.mk-drive-folder-selector.select-folder%</h1>
 | 
			
		||||
			<h1>%i18n:@select-folder%</h1>
 | 
			
		||||
			<button class="close" @click="cancel">%fa:times%</button>
 | 
			
		||||
			<button class="ok" @click="ok">%fa:check%</button>
 | 
			
		||||
		</header>
 | 
			
		||||
 
 | 
			
		||||
@@ -35,20 +35,20 @@
 | 
			
		||||
	<div class="menu">
 | 
			
		||||
		<div>
 | 
			
		||||
			<a :href="`${file.url}?download`" :download="file.name">
 | 
			
		||||
				%fa:download%%i18n:mobile.tags.mk-drive-file-viewer.download%
 | 
			
		||||
				%fa:download%%i18n:@download%
 | 
			
		||||
			</a>
 | 
			
		||||
			<button @click="rename">
 | 
			
		||||
				%fa:pencil-alt%%i18n:mobile.tags.mk-drive-file-viewer.rename%
 | 
			
		||||
				%fa:pencil-alt%%i18n:@rename%
 | 
			
		||||
			</button>
 | 
			
		||||
			<button @click="move">
 | 
			
		||||
				%fa:R folder-open%%i18n:mobile.tags.mk-drive-file-viewer.move%
 | 
			
		||||
				%fa:R folder-open%%i18n:@move%
 | 
			
		||||
			</button>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="exif" v-show="exif">
 | 
			
		||||
		<div>
 | 
			
		||||
			<p>
 | 
			
		||||
				%fa:camera%%i18n:mobile.tags.mk-drive-file-viewer.exif%
 | 
			
		||||
				%fa:camera%%i18n:@exif%
 | 
			
		||||
			</p>
 | 
			
		||||
			<pre ref="exif" class="json">{{ exif ? JSON.stringify(exif, null, 2) : '' }}</pre>
 | 
			
		||||
		</div>
 | 
			
		||||
@@ -56,7 +56,7 @@
 | 
			
		||||
	<div class="hash">
 | 
			
		||||
		<div>
 | 
			
		||||
			<p>
 | 
			
		||||
				%fa:hashtag%%i18n:mobile.tags.mk-drive-file-viewer.hash%
 | 
			
		||||
				%fa:hashtag%%i18n:@hash%
 | 
			
		||||
			</p>
 | 
			
		||||
			<code>{{ file.md5 }}</code>
 | 
			
		||||
		</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<template>
 | 
			
		||||
<div class="mk-drive">
 | 
			
		||||
	<nav ref="nav">
 | 
			
		||||
		<a @click.prevent="goRoot()" href="/i/drive">%fa:cloud%%i18n:mobile.tags.mk-drive.drive%</a>
 | 
			
		||||
		<a @click.prevent="goRoot()" href="/i/drive">%fa:cloud%%i18n:@drive%</a>
 | 
			
		||||
		<template v-for="folder in hierarchyFolders">
 | 
			
		||||
			<span :key="folder.id + '>'">%fa:angle-right%</span>
 | 
			
		||||
			<a :key="folder.id" @click.prevent="cd(folder)" :href="`/i/drive/folder/${folder.id}`">{{ folder.name }}</a>
 | 
			
		||||
@@ -18,26 +18,26 @@
 | 
			
		||||
	<mk-uploader ref="uploader"/>
 | 
			
		||||
	<div class="browser" :class="{ 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">{{ (info.usage / info.capacity * 100).toFixed(1) }}% %i18n:@used%</p>
 | 
			
		||||
			<p v-if="folder != null && (folder.foldersCount > 0 || folder.filesCount > 0)">
 | 
			
		||||
				<template v-if="folder.foldersCount > 0">{{ folder.foldersCount }} %i18n:mobile.tags.mk-drive.folder-count%</template>
 | 
			
		||||
				<template v-if="folder.foldersCount > 0 && folder.filesCount > 0">%i18n:mobile.tags.mk-drive.count-separator%</template>
 | 
			
		||||
				<template v-if="folder.filesCount > 0">{{ folder.filesCount }} %i18n:mobile.tags.mk-drive.file-count%</template>
 | 
			
		||||
				<template v-if="folder.foldersCount > 0">{{ folder.foldersCount }} %i18n:@folder-count%</template>
 | 
			
		||||
				<template v-if="folder.foldersCount > 0 && folder.filesCount > 0">%i18n:@count-separator%</template>
 | 
			
		||||
				<template v-if="folder.filesCount > 0">{{ folder.filesCount }} %i18n:@file-count%</template>
 | 
			
		||||
			</p>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="folders" v-if="folders.length > 0">
 | 
			
		||||
			<x-folder v-for="folder in folders" :key="folder.id" :folder="folder"/>
 | 
			
		||||
			<p v-if="moreFolders">%i18n:mobile.tags.mk-drive.load-more%</p>
 | 
			
		||||
			<p v-if="moreFolders">%i18n:@load-more%</p>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="files" v-if="files.length > 0">
 | 
			
		||||
			<x-file v-for="file in files" :key="file.id" :file="file"/>
 | 
			
		||||
			<button class="more" v-if="moreFiles" @click="fetchMoreFiles">
 | 
			
		||||
				{{ fetchingMoreFiles ? '%i18n:common.loading%' : '%i18n:mobile.tags.mk-drive.load-more%' }}
 | 
			
		||||
				{{ fetchingMoreFiles ? '%i18n:common.loading%' : '%i18n:@load-more%' }}
 | 
			
		||||
			</button>
 | 
			
		||||
		</div>
 | 
			
		||||
		<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>
 | 
			
		||||
			<p v-if="folder == null">%i18n:@nothing-in-drive%</p>
 | 
			
		||||
			<p v-if="folder != null">%i18n:@folder-is-empty%</p>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="fetching" v-if="fetching && file == null && files.length == 0 && folders.length == 0">
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
	<template v-if="!wait && user.isFollowing">%fa:minus%</template>
 | 
			
		||||
	<template v-if="!wait && !user.isFollowing">%fa:plus%</template>
 | 
			
		||||
	<template v-if="wait">%fa:spinner .pulse .fw%</template>
 | 
			
		||||
	{{ user.isFollowing ? '%i18n:mobile.tags.mk-follow-button.unfollow%' : '%i18n:mobile.tags.mk-follow-button.follow%' }}
 | 
			
		||||
	{{ user.isFollowing ? '%i18n:@unfollow%' : '%i18n:@follow%' }}
 | 
			
		||||
</button>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -54,13 +54,13 @@
 | 
			
		||||
		</router-link>
 | 
			
		||||
		<footer>
 | 
			
		||||
			<mk-reactions-viewer :note="p"/>
 | 
			
		||||
			<button @click="reply" title="%i18n:mobile.tags.mk-note-detail.reply%">
 | 
			
		||||
			<button @click="reply" title="%i18n:@reply%">
 | 
			
		||||
				%fa:reply%<p class="count" v-if="p.repliesCount > 0">{{ p.repliesCount }}</p>
 | 
			
		||||
			</button>
 | 
			
		||||
			<button @click="renote" title="Renote">
 | 
			
		||||
				%fa:retweet%<p class="count" v-if="p.renoteCount > 0">{{ p.renoteCount }}</p>
 | 
			
		||||
			</button>
 | 
			
		||||
			<button :class="{ reacted: p.myReaction != null }" @click="react" ref="reactButton" title="%i18n:mobile.tags.mk-note-detail.reaction%">
 | 
			
		||||
			<button :class="{ reacted: p.myReaction != null }" @click="react" ref="reactButton" title="%i18n:@reaction%">
 | 
			
		||||
				%fa:plus%<p class="count" v-if="p.reactions_count > 0">{{ p.reactions_count }}</p>
 | 
			
		||||
			</button>
 | 
			
		||||
			<button @click="menu" ref="menuButton">
 | 
			
		||||
 
 | 
			
		||||
@@ -9,9 +9,9 @@
 | 
			
		||||
				<img class="avatar" :src="`${note.user.avatarUrl}?thumbnail&size=64`" alt="avatar"/>
 | 
			
		||||
			</router-link>
 | 
			
		||||
			%fa:retweet%
 | 
			
		||||
			<span>{{ '%i18n:mobile.tags.mk-timeline-note.reposted-by%'.substr(0, '%i18n:mobile.tags.mk-timeline-note.reposted-by%'.indexOf('{')) }}</span>
 | 
			
		||||
			<span>{{ '%i18n:@reposted-by%'.substr(0, '%i18n:@reposted-by%'.indexOf('{')) }}</span>
 | 
			
		||||
			<router-link class="name" :to="note.user | userPage">{{ note.user | userName }}</router-link>
 | 
			
		||||
			<span>{{ '%i18n:mobile.tags.mk-timeline-note.reposted-by%'.substr('%i18n:mobile.tags.mk-timeline-note.reposted-by%'.indexOf('}') + 1) }}</span>
 | 
			
		||||
			<span>{{ '%i18n:@reposted-by%'.substr('%i18n:@reposted-by%'.indexOf('}') + 1) }}</span>
 | 
			
		||||
		</p>
 | 
			
		||||
		<mk-time :time="note.createdAt"/>
 | 
			
		||||
	</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -11,9 +11,9 @@
 | 
			
		||||
	</div>
 | 
			
		||||
	<button class="more" v-if="moreNotifications" @click="fetchMoreNotifications" :disabled="fetchingMoreNotifications">
 | 
			
		||||
		<template v-if="fetchingMoreNotifications">%fa:spinner .pulse .fw%</template>
 | 
			
		||||
		{{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:mobile.tags.mk-notifications.more%' }}
 | 
			
		||||
		{{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:@more%' }}
 | 
			
		||||
	</button>
 | 
			
		||||
	<p class="empty" v-if="notifications.length == 0 && !fetching">%i18n:mobile.tags.mk-notifications.empty%</p>
 | 
			
		||||
	<p class="empty" v-if="notifications.length == 0 && !fetching">%i18n:@empty%</p>
 | 
			
		||||
	<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -5,12 +5,12 @@
 | 
			
		||||
		<div>
 | 
			
		||||
			<span class="text-count" :class="{ over: text.length > 1000 }">{{ 1000 - text.length }}</span>
 | 
			
		||||
			<span class="geo" v-if="geo">%fa:map-marker-alt%</span>
 | 
			
		||||
			<button class="submit" :disabled="posting" @click="post">{{ reply ? '返信' : '%i18n:mobile.tags.mk-post-form.submit%' }}</button>
 | 
			
		||||
			<button class="submit" :disabled="posting" @click="post">{{ reply ? '返信' : '%i18n:@submit%' }}</button>
 | 
			
		||||
		</div>
 | 
			
		||||
	</header>
 | 
			
		||||
	<div class="form">
 | 
			
		||||
		<mk-note-preview v-if="reply" :note="reply"/>
 | 
			
		||||
		<textarea v-model="text" ref="text" :disabled="posting" :placeholder="reply ? '%i18n:mobile.tags.mk-post-form.reply-placeholder%' : '%i18n:mobile.tags.mk-post-form.note-placeholder%'"></textarea>
 | 
			
		||||
		<textarea v-model="text" ref="text" :disabled="posting" :placeholder="reply ? '%i18n:@reply-placeholder%' : '%i18n:@note-placeholder%'"></textarea>
 | 
			
		||||
		<div class="attaches" v-show="files.length != 0">
 | 
			
		||||
			<x-draggable class="files" :list="files" :options="{ animation: 150 }">
 | 
			
		||||
				<div class="file" v-for="file in files" :key="file.id">
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
		<mk-media-list :media-list="note.media"/>
 | 
			
		||||
	</details>
 | 
			
		||||
	<details v-if="note.poll">
 | 
			
		||||
		<summary>%i18n:mobile.tags.mk-sub-note-content.poll%</summary>
 | 
			
		||||
		<summary>%i18n:@poll%</summary>
 | 
			
		||||
		<mk-poll :note="note"/>
 | 
			
		||||
	</details>
 | 
			
		||||
</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -7,10 +7,10 @@
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="empty" v-if="!fetching && notes.length == 0">
 | 
			
		||||
			%fa:R comments%
 | 
			
		||||
			%i18n:mobile.tags.mk-home-timeline.empty-timeline%
 | 
			
		||||
			%i18n:@empty-timeline%
 | 
			
		||||
		</div>
 | 
			
		||||
		<button v-if="!fetching && existMore" @click="more" :disabled="moreFetching" slot="tail">
 | 
			
		||||
			<span v-if="!moreFetching">%i18n:mobile.tags.mk-timeline.load-more%</span>
 | 
			
		||||
			<span v-if="!moreFetching">%i18n:@load-more%</span>
 | 
			
		||||
			<span v-if="moreFetching">%i18n:common.loading%<mk-ellipsis/></span>
 | 
			
		||||
		</button>
 | 
			
		||||
	</mk-notes>
 | 
			
		||||
 
 | 
			
		||||
@@ -15,22 +15,22 @@
 | 
			
		||||
			</router-link>
 | 
			
		||||
			<div class="links">
 | 
			
		||||
				<ul>
 | 
			
		||||
					<li><router-link to="/">%fa:home%%i18n:mobile.tags.mk-ui-nav.home%%fa:angle-right%</router-link></li>
 | 
			
		||||
					<li><router-link to="/i/notifications">%fa:R bell%%i18n:mobile.tags.mk-ui-nav.notifications%<template v-if="hasUnreadNotifications">%fa:circle%</template>%fa:angle-right%</router-link></li>
 | 
			
		||||
					<li><router-link to="/i/messaging">%fa:R comments%%i18n:mobile.tags.mk-ui-nav.messaging%<template v-if="hasUnreadMessagingMessages">%fa:circle%</template>%fa:angle-right%</router-link></li>
 | 
			
		||||
					<li><router-link to="/">%fa:home%%i18n:@home%%fa:angle-right%</router-link></li>
 | 
			
		||||
					<li><router-link to="/i/notifications">%fa:R bell%%i18n:@notifications%<template v-if="hasUnreadNotifications">%fa:circle%</template>%fa:angle-right%</router-link></li>
 | 
			
		||||
					<li><router-link to="/i/messaging">%fa:R comments%%i18n:@messaging%<template v-if="hasUnreadMessagingMessages">%fa:circle%</template>%fa:angle-right%</router-link></li>
 | 
			
		||||
					<li><router-link to="/othello">%fa:gamepad%ゲーム<template v-if="hasGameInvitations">%fa:circle%</template>%fa:angle-right%</router-link></li>
 | 
			
		||||
				</ul>
 | 
			
		||||
				<ul>
 | 
			
		||||
					<li><router-link to="/i/drive">%fa:cloud%%i18n:mobile.tags.mk-ui-nav.drive%%fa:angle-right%</router-link></li>
 | 
			
		||||
					<li><router-link to="/i/drive">%fa:cloud%%i18n:@drive%%fa:angle-right%</router-link></li>
 | 
			
		||||
				</ul>
 | 
			
		||||
				<ul>
 | 
			
		||||
					<li><a @click="search">%fa:search%%i18n:mobile.tags.mk-ui-nav.search%%fa:angle-right%</a></li>
 | 
			
		||||
					<li><a @click="search">%fa:search%%i18n:@search%%fa:angle-right%</a></li>
 | 
			
		||||
				</ul>
 | 
			
		||||
				<ul>
 | 
			
		||||
					<li><router-link to="/i/settings">%fa:cog%%i18n:mobile.tags.mk-ui-nav.settings%%fa:angle-right%</router-link></li>
 | 
			
		||||
					<li><router-link to="/i/settings">%fa:cog%%i18n:@settings%%fa:angle-right%</router-link></li>
 | 
			
		||||
				</ul>
 | 
			
		||||
			</div>
 | 
			
		||||
			<a :href="aboutUrl"><p class="about">%i18n:mobile.tags.mk-ui-nav.about%</p></a>
 | 
			
		||||
			<a :href="aboutUrl"><p class="about">%i18n:@about%</p></a>
 | 
			
		||||
		</div>
 | 
			
		||||
	</transition>
 | 
			
		||||
</div>
 | 
			
		||||
@@ -92,7 +92,7 @@ export default Vue.extend({
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		search() {
 | 
			
		||||
			const query = window.prompt('%i18n:mobile.tags.mk-ui-nav.search%');
 | 
			
		||||
			const query = window.prompt('%i18n:@search%');
 | 
			
		||||
			if (query == null || query == '') return;
 | 
			
		||||
			this.$router.push('/search?q=' + encodeURIComponent(query));
 | 
			
		||||
		},
 | 
			
		||||
 
 | 
			
		||||
@@ -6,10 +6,10 @@
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="empty" v-if="!fetching && notes.length == 0">
 | 
			
		||||
			%fa:R comments%
 | 
			
		||||
			{{ withMedia ? '%i18n:mobile.tags.mk-user-timeline.no-notes-with-media%' : '%i18n:mobile.tags.mk-user-timeline.no-notes%' }}
 | 
			
		||||
			{{ withMedia ? '%i18n:@no-notes-with-media%' : '%i18n:@no-notes%' }}
 | 
			
		||||
		</div>
 | 
			
		||||
		<button v-if="!fetching && existMore" @click="more" :disabled="moreFetching" slot="tail">
 | 
			
		||||
			<span v-if="!moreFetching">%i18n:mobile.tags.mk-user-timeline.load-more%</span>
 | 
			
		||||
			<span v-if="!moreFetching">%i18n:@load-more%</span>
 | 
			
		||||
			<span v-if="moreFetching">%i18n:common.loading%<mk-ellipsis/></span>
 | 
			
		||||
		</button>
 | 
			
		||||
	</mk-notes>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,14 @@
 | 
			
		||||
<template>
 | 
			
		||||
<div class="mk-users-list">
 | 
			
		||||
	<nav>
 | 
			
		||||
		<span :data-is-active="mode == 'all'" @click="mode = 'all'">%i18n:mobile.tags.mk-users-list.all%<span>{{ count }}</span></span>
 | 
			
		||||
		<span v-if="os.isSignedIn && youKnowCount" :data-is-active="mode == 'iknow'" @click="mode = 'iknow'">%i18n:mobile.tags.mk-users-list.known%<span>{{ youKnowCount }}</span></span>
 | 
			
		||||
		<span :data-is-active="mode == 'all'" @click="mode = 'all'">%i18n:@all%<span>{{ count }}</span></span>
 | 
			
		||||
		<span v-if="os.isSignedIn && youKnowCount" :data-is-active="mode == 'iknow'" @click="mode = 'iknow'">%i18n:@known%<span>{{ youKnowCount }}</span></span>
 | 
			
		||||
	</nav>
 | 
			
		||||
	<div class="users" v-if="!fetching && users.length != 0">
 | 
			
		||||
		<mk-user-preview v-for="u in users" :user="u" :key="u.id"/>
 | 
			
		||||
	</div>
 | 
			
		||||
	<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:@load-more%</span>
 | 
			
		||||
		<span v-if="moreFetching">%i18n:common.loading%<mk-ellipsis/></span>
 | 
			
		||||
	</button>
 | 
			
		||||
	<p class="no" v-if="!fetching && users.length == 0">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
	<span slot="header">
 | 
			
		||||
		<template v-if="folder">%fa:R folder-open%{{ folder.name }}</template>
 | 
			
		||||
		<template v-if="file"><mk-file-type-icon data-icon :type="file.type"/>{{ file.name }}</template>
 | 
			
		||||
		<template v-if="!folder && !file">%fa:cloud%%i18n:mobile.tags.mk-drive-page.drive%</template>
 | 
			
		||||
		<template v-if="!folder && !file">%fa:cloud%%i18n:@drive%</template>
 | 
			
		||||
	</span>
 | 
			
		||||
	<template slot="func"><button @click="fn">%fa:ellipsis-h%</button></template>
 | 
			
		||||
	<mk-drive
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
<mk-ui>
 | 
			
		||||
	<template slot="header" v-if="!fetching">
 | 
			
		||||
		<img :src="`${user.avatarUrl}?thumbnail&size=64`" alt="">
 | 
			
		||||
		{{ '%i18n:mobile.tags.mk-user-followers-page.followers-of%'.replace('{}', name) }}
 | 
			
		||||
		{{ '%i18n:@followers-of%'.replace('{}', name) }}
 | 
			
		||||
	</template>
 | 
			
		||||
	<mk-users-list
 | 
			
		||||
		v-if="!fetching"
 | 
			
		||||
@@ -11,7 +11,7 @@
 | 
			
		||||
		:you-know-count="user.followersYouKnowCount"
 | 
			
		||||
		@loaded="onLoaded"
 | 
			
		||||
	>
 | 
			
		||||
		%i18n:mobile.tags.mk-user-followers.no-users%
 | 
			
		||||
		%i18n:@no-users%
 | 
			
		||||
	</mk-users-list>
 | 
			
		||||
</mk-ui>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -52,7 +52,7 @@ export default Vue.extend({
 | 
			
		||||
				this.user = user;
 | 
			
		||||
				this.fetching = false;
 | 
			
		||||
 | 
			
		||||
				document.title = '%i18n:mobile.tags.mk-user-followers-page.followers-of%'.replace('{}', this.name) + ' | Misskey';
 | 
			
		||||
				document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | Misskey';
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		onLoaded() {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
<mk-ui>
 | 
			
		||||
	<template slot="header" v-if="!fetching">
 | 
			
		||||
		<img :src="`${user.avatarUrl}?thumbnail&size=64`" alt="">
 | 
			
		||||
		{{ '%i18n:mobile.tags.mk-user-following-page.following-of%'.replace('{}', name) }}
 | 
			
		||||
		{{ '%i18n:@following-of%'.replace('{}', name) }}
 | 
			
		||||
	</template>
 | 
			
		||||
	<mk-users-list
 | 
			
		||||
		v-if="!fetching"
 | 
			
		||||
@@ -11,7 +11,7 @@
 | 
			
		||||
		:you-know-count="user.followingYouKnowCount"
 | 
			
		||||
		@loaded="onLoaded"
 | 
			
		||||
	>
 | 
			
		||||
		%i18n:mobile.tags.mk-user-following.no-users%
 | 
			
		||||
		%i18n:@no-users%
 | 
			
		||||
	</mk-users-list>
 | 
			
		||||
</mk-ui>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -51,7 +51,7 @@ export default Vue.extend({
 | 
			
		||||
				this.user = user;
 | 
			
		||||
				this.fetching = false;
 | 
			
		||||
 | 
			
		||||
				document.title = '%i18n:mobile.tags.mk-user-followers-page.followers-of%'.replace('{}', this.name) + ' | Misskey';
 | 
			
		||||
				document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | Misskey';
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		onLoaded() {
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@ export default Vue.extend({
 | 
			
		||||
				this.user = user;
 | 
			
		||||
				this.fetching = false;
 | 
			
		||||
 | 
			
		||||
				document.title = `%i18n:mobile.tags.mk-messaging-room-page.message%: ${Vue.filter('userName')(this.user)} | Misskey`;
 | 
			
		||||
				document.title = `%i18n:@message%: ${Vue.filter('userName')(this.user)} | Misskey`;
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
<mk-ui>
 | 
			
		||||
	<span slot="header">%fa:R comments%%i18n:mobile.tags.mk-messaging-page.message%</span>
 | 
			
		||||
	<span slot="header">%fa:R comments%%i18n:@message%</span>
 | 
			
		||||
	<mk-messaging @navigate="navigate" :header-top="48"/>
 | 
			
		||||
</mk-ui>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -11,7 +11,7 @@ import getAcct from '../../../../../acct/render';
 | 
			
		||||
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	mounted() {
 | 
			
		||||
		document.title = 'Misskey %i18n:mobile.tags.mk-messaging-page.message%';
 | 
			
		||||
		document.title = 'Misskey %i18n:@message%';
 | 
			
		||||
		document.documentElement.style.background = '#fff';
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
<template>
 | 
			
		||||
<mk-ui>
 | 
			
		||||
	<span slot="header">%fa:R sticky-note%%i18n:mobile.tags.mk-note-page.title%</span>
 | 
			
		||||
	<span slot="header">%fa:R sticky-note%%i18n:@title%</span>
 | 
			
		||||
	<main v-if="!fetching">
 | 
			
		||||
		<a v-if="note.next" :href="note.next">%fa:angle-up%%i18n:mobile.tags.mk-note-page.next%</a>
 | 
			
		||||
		<a v-if="note.next" :href="note.next">%fa:angle-up%%i18n:@next%</a>
 | 
			
		||||
		<div>
 | 
			
		||||
			<mk-note-detail :note="note"/>
 | 
			
		||||
		</div>
 | 
			
		||||
		<a v-if="note.prev" :href="note.prev">%fa:angle-down%%i18n:mobile.tags.mk-note-page.prev%</a>
 | 
			
		||||
		<a v-if="note.prev" :href="note.prev">%fa:angle-down%%i18n:@prev%</a>
 | 
			
		||||
	</main>
 | 
			
		||||
</mk-ui>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
<mk-ui>
 | 
			
		||||
	<span slot="header">%fa:R bell%%i18n:mobile.tags.mk-notifications-page.notifications%</span>
 | 
			
		||||
	<span slot="header">%fa:R bell%%i18n:@notifications%</span>
 | 
			
		||||
	<template slot="func"><button @click="fn">%fa:check%</button></template>
 | 
			
		||||
	<mk-notifications @fetched="onFetched"/>
 | 
			
		||||
</mk-ui>
 | 
			
		||||
@@ -12,14 +12,14 @@ import Progress from '../../../common/scripts/loading';
 | 
			
		||||
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	mounted() {
 | 
			
		||||
		document.title = 'Misskey | %i18n:mobile.tags.mk-notifications-page.notifications%';
 | 
			
		||||
		document.title = 'Misskey | %i18n:@notifications%';
 | 
			
		||||
		document.documentElement.style.background = '#313a42';
 | 
			
		||||
 | 
			
		||||
		Progress.start();
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		fn() {
 | 
			
		||||
			const ok = window.confirm('%i18n:mobile.tags.mk-notifications-page.read-all%');
 | 
			
		||||
			const ok = window.confirm('%i18n:@read-all%');
 | 
			
		||||
			if (!ok) return;
 | 
			
		||||
 | 
			
		||||
			(this as any).api('notifications/markAsRead_all');
 | 
			
		||||
 
 | 
			
		||||
@@ -1,38 +1,38 @@
 | 
			
		||||
<template>
 | 
			
		||||
<mk-ui>
 | 
			
		||||
	<span slot="header">%fa:user%%i18n:mobile.tags.mk-profile-setting-page.title%</span>
 | 
			
		||||
	<span slot="header">%fa:user%%i18n:@title%</span>
 | 
			
		||||
	<div :class="$style.content">
 | 
			
		||||
		<p>%fa:info-circle%%i18n:mobile.tags.mk-profile-setting.will-be-published%</p>
 | 
			
		||||
		<p>%fa:info-circle%%i18n:@will-be-published%</p>
 | 
			
		||||
		<div :class="$style.form">
 | 
			
		||||
			<div :style="os.i.bannerUrl ? `background-image: url(${os.i.bannerUrl}?thumbnail&size=1024)` : ''" @click="setBanner">
 | 
			
		||||
				<img :src="`${os.i.avatarUrl}?thumbnail&size=200`" alt="avatar" @click="setAvatar"/>
 | 
			
		||||
			</div>
 | 
			
		||||
			<label>
 | 
			
		||||
				<p>%i18n:mobile.tags.mk-profile-setting.name%</p>
 | 
			
		||||
				<p>%i18n:@name%</p>
 | 
			
		||||
				<input v-model="name" type="text"/>
 | 
			
		||||
			</label>
 | 
			
		||||
			<label>
 | 
			
		||||
				<p>%i18n:mobile.tags.mk-profile-setting.location%</p>
 | 
			
		||||
				<p>%i18n:@location%</p>
 | 
			
		||||
				<input v-model="location" type="text"/>
 | 
			
		||||
			</label>
 | 
			
		||||
			<label>
 | 
			
		||||
				<p>%i18n:mobile.tags.mk-profile-setting.description%</p>
 | 
			
		||||
				<p>%i18n:@description%</p>
 | 
			
		||||
				<textarea v-model="description"></textarea>
 | 
			
		||||
			</label>
 | 
			
		||||
			<label>
 | 
			
		||||
				<p>%i18n:mobile.tags.mk-profile-setting.birthday%</p>
 | 
			
		||||
				<p>%i18n:@birthday%</p>
 | 
			
		||||
				<input v-model="birthday" type="date"/>
 | 
			
		||||
			</label>
 | 
			
		||||
			<label>
 | 
			
		||||
				<p>%i18n:mobile.tags.mk-profile-setting.avatar%</p>
 | 
			
		||||
				<button @click="setAvatar" :disabled="avatarSaving">%i18n:mobile.tags.mk-profile-setting.set-avatar%</button>
 | 
			
		||||
				<p>%i18n:@avatar%</p>
 | 
			
		||||
				<button @click="setAvatar" :disabled="avatarSaving">%i18n:@set-avatar%</button>
 | 
			
		||||
			</label>
 | 
			
		||||
			<label>
 | 
			
		||||
				<p>%i18n:mobile.tags.mk-profile-setting.banner%</p>
 | 
			
		||||
				<button @click="setBanner" :disabled="bannerSaving">%i18n:mobile.tags.mk-profile-setting.set-banner%</button>
 | 
			
		||||
				<p>%i18n:@banner%</p>
 | 
			
		||||
				<button @click="setBanner" :disabled="bannerSaving">%i18n:@set-banner%</button>
 | 
			
		||||
			</label>
 | 
			
		||||
		</div>
 | 
			
		||||
		<button :class="$style.save" @click="save" :disabled="saving">%fa:check%%i18n:mobile.tags.mk-profile-setting.save%</button>
 | 
			
		||||
		<button :class="$style.save" @click="save" :disabled="saving">%fa:check%%i18n:@save%</button>
 | 
			
		||||
	</div>
 | 
			
		||||
</mk-ui>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -58,7 +58,7 @@ export default Vue.extend({
 | 
			
		||||
		this.birthday = (this as any).os.i.profile.birthday;
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		document.title = 'Misskey | %i18n:mobile.tags.mk-profile-setting-page.title%';
 | 
			
		||||
		document.title = 'Misskey | %i18n:@title%';
 | 
			
		||||
		document.documentElement.style.background = '#313a42';
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
@@ -72,7 +72,7 @@ export default Vue.extend({
 | 
			
		||||
					avatarId: file.id
 | 
			
		||||
				}).then(() => {
 | 
			
		||||
					this.avatarSaving = false;
 | 
			
		||||
					alert('%i18n:mobile.tags.mk-profile-setting.avatar-saved%');
 | 
			
		||||
					alert('%i18n:@avatar-saved%');
 | 
			
		||||
				});
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
@@ -86,7 +86,7 @@ export default Vue.extend({
 | 
			
		||||
					bannerId: file.id
 | 
			
		||||
				}).then(() => {
 | 
			
		||||
					this.bannerSaving = false;
 | 
			
		||||
					alert('%i18n:mobile.tags.mk-profile-setting.banner-saved%');
 | 
			
		||||
					alert('%i18n:@banner-saved%');
 | 
			
		||||
				});
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
@@ -100,7 +100,7 @@ export default Vue.extend({
 | 
			
		||||
				birthday: this.birthday || null
 | 
			
		||||
			}).then(() => {
 | 
			
		||||
				this.saving = false;
 | 
			
		||||
				alert('%i18n:mobile.tags.mk-profile-setting.saved%');
 | 
			
		||||
				alert('%i18n:@saved%');
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,9 +3,9 @@
 | 
			
		||||
	<span slot="header">%fa:search% {{ q }}</span>
 | 
			
		||||
	<main v-if="!fetching">
 | 
			
		||||
		<mk-notes :class="$style.notes" :notes="notes">
 | 
			
		||||
			<span v-if="notes.length == 0">{{ '%i18n:mobile.tags.mk-search-notes.empty%'.replace('{}', q) }}</span>
 | 
			
		||||
			<span v-if="notes.length == 0">{{ '%i18n:@empty%'.replace('{}', q) }}</span>
 | 
			
		||||
			<button v-if="existMore" @click="more" :disabled="fetching" slot="tail">
 | 
			
		||||
				<span v-if="!fetching">%i18n:mobile.tags.mk-timeline.load-more%</span>
 | 
			
		||||
				<span v-if="!fetching">%i18n:@load-more%</span>
 | 
			
		||||
				<span v-if="fetching">%i18n:common.loading%<mk-ellipsis/></span>
 | 
			
		||||
			</button>
 | 
			
		||||
		</mk-notes>
 | 
			
		||||
@@ -38,7 +38,7 @@ export default Vue.extend({
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		document.title = `%i18n:mobile.tags.mk-search-page.search%: ${this.q} | Misskey`;
 | 
			
		||||
		document.title = `%i18n:@search%: ${this.q} | Misskey`;
 | 
			
		||||
		document.documentElement.style.background = '#313a42';
 | 
			
		||||
 | 
			
		||||
		this.fetch();
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<template>
 | 
			
		||||
<div class="mk-selectdrive">
 | 
			
		||||
	<header>
 | 
			
		||||
		<h1>%i18n:mobile.tags.mk-selectdrive-page.select-file%<span class="count" v-if="files.length > 0">({{ files.length }})</span></h1>
 | 
			
		||||
		<h1>%i18n:@select-file%<span class="count" v-if="files.length > 0">({{ files.length }})</span></h1>
 | 
			
		||||
		<button class="upload" @click="upload">%fa:upload%</button>
 | 
			
		||||
		<button v-if="multiple" class="ok" @click="ok">%fa:check%</button>
 | 
			
		||||
	</header>
 | 
			
		||||
@@ -25,7 +25,7 @@ export default Vue.extend({
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		document.title = '%i18n:desktop.tags.mk-selectdrive-page.title%';
 | 
			
		||||
		document.title = '%i18n:@title%';
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		onSelected(file) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,16 +1,16 @@
 | 
			
		||||
<template>
 | 
			
		||||
<mk-ui>
 | 
			
		||||
	<span slot="header">%fa:cog%%i18n:mobile.tags.mk-settings-page.settings%</span>
 | 
			
		||||
	<span slot="header">%fa:cog%%i18n:@settings%</span>
 | 
			
		||||
	<div :class="$style.content">
 | 
			
		||||
		<p v-html="'%i18n:mobile.tags.mk-settings.signed-in-as%'.replace('{}', '<b>' + name + '</b>')"></p>
 | 
			
		||||
		<p v-html="'%i18n:@signed-in-as%'.replace('{}', '<b>' + name + '</b>')"></p>
 | 
			
		||||
		<ul>
 | 
			
		||||
			<li><router-link to="./settings/profile">%fa:user%%i18n:mobile.tags.mk-settings-page.profile%%fa:angle-right%</router-link></li>
 | 
			
		||||
			<li><router-link to="./settings/authorized-apps">%fa:puzzle-piece%%i18n:mobile.tags.mk-settings-page.applications%%fa:angle-right%</router-link></li>
 | 
			
		||||
			<li><router-link to="./settings/twitter">%fa:B twitter%%i18n:mobile.tags.mk-settings-page.twitter-integration%%fa:angle-right%</router-link></li>
 | 
			
		||||
			<li><router-link to="./settings/signin-history">%fa:sign-in-alt%%i18n:mobile.tags.mk-settings-page.signin-history%%fa:angle-right%</router-link></li>
 | 
			
		||||
			<li><router-link to="./settings/profile">%fa:user%%i18n:@profile%%fa:angle-right%</router-link></li>
 | 
			
		||||
			<li><router-link to="./settings/authorized-apps">%fa:puzzle-piece%%i18n:@applications%%fa:angle-right%</router-link></li>
 | 
			
		||||
			<li><router-link to="./settings/twitter">%fa:B twitter%%i18n:@twitter-integration%%fa:angle-right%</router-link></li>
 | 
			
		||||
			<li><router-link to="./settings/signin-history">%fa:sign-in-alt%%i18n:@signin-history%%fa:angle-right%</router-link></li>
 | 
			
		||||
		</ul>
 | 
			
		||||
		<ul>
 | 
			
		||||
			<li><a @click="signout">%fa:power-off%%i18n:mobile.tags.mk-settings-page.signout%</a></li>
 | 
			
		||||
			<li><a @click="signout">%fa:power-off%%i18n:@signout%</a></li>
 | 
			
		||||
		</ul>
 | 
			
		||||
		<p><small>ver {{ version }} ({{ codename }})</small></p>
 | 
			
		||||
	</div>
 | 
			
		||||
@@ -34,7 +34,7 @@ export default Vue.extend({
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		document.title = 'Misskey | %i18n:mobile.tags.mk-settings-page.settings%';
 | 
			
		||||
		document.title = 'Misskey | %i18n:@settings%';
 | 
			
		||||
		document.documentElement.style.background = '#313a42';
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
				<div class="title">
 | 
			
		||||
					<h1>{{ user | userName }}</h1>
 | 
			
		||||
					<span class="username">@{{ user | acct }}</span>
 | 
			
		||||
					<span class="followed" v-if="user.isFollowed">%i18n:mobile.tags.mk-user.follows-you%</span>
 | 
			
		||||
					<span class="followed" v-if="user.isFollowed">%i18n:@follows-you%</span>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="description">{{ user.description }}</div>
 | 
			
		||||
				<div class="info">
 | 
			
		||||
@@ -28,24 +28,24 @@
 | 
			
		||||
				<div class="status">
 | 
			
		||||
					<a>
 | 
			
		||||
						<b>{{ user.notesCount | number }}</b>
 | 
			
		||||
						<i>%i18n:mobile.tags.mk-user.notes%</i>
 | 
			
		||||
						<i>%i18n:@notes%</i>
 | 
			
		||||
					</a>
 | 
			
		||||
					<a :href="user | userPage('following')">
 | 
			
		||||
						<b>{{ user.followingCount | number }}</b>
 | 
			
		||||
						<i>%i18n:mobile.tags.mk-user.following%</i>
 | 
			
		||||
						<i>%i18n:@following%</i>
 | 
			
		||||
					</a>
 | 
			
		||||
					<a :href="user | userPage('followers')">
 | 
			
		||||
						<b>{{ user.followersCount | number }}</b>
 | 
			
		||||
						<i>%i18n:mobile.tags.mk-user.followers%</i>
 | 
			
		||||
						<i>%i18n:@followers%</i>
 | 
			
		||||
					</a>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
		</header>
 | 
			
		||||
		<nav>
 | 
			
		||||
			<div class="nav-container">
 | 
			
		||||
				<a :data-is-active=" page == 'home' " @click="page = 'home'">%i18n:mobile.tags.mk-user.overview%</a>
 | 
			
		||||
				<a :data-is-active=" page == 'notes' " @click="page = 'notes'">%i18n:mobile.tags.mk-user.timeline%</a>
 | 
			
		||||
				<a :data-is-active=" page == 'media' " @click="page = 'media'">%i18n:mobile.tags.mk-user.media%</a>
 | 
			
		||||
				<a :data-is-active=" page == 'home' " @click="page = 'home'">%i18n:@overview%</a>
 | 
			
		||||
				<a :data-is-active=" page == 'notes' " @click="page = 'notes'">%i18n:@timeline%</a>
 | 
			
		||||
				<a :data-is-active=" page == 'media' " @click="page = 'media'">%i18n:@media%</a>
 | 
			
		||||
			</div>
 | 
			
		||||
		</nav>
 | 
			
		||||
		<div class="body">
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
<template>
 | 
			
		||||
<div class="root followers-you-know">
 | 
			
		||||
	<p class="initializing" v-if="fetching">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-followers-you-know.loading%<mk-ellipsis/></p>
 | 
			
		||||
	<p class="initializing" v-if="fetching">%fa:spinner .pulse .fw%%i18n:@loading%<mk-ellipsis/></p>
 | 
			
		||||
	<div v-if="!fetching && users.length > 0">
 | 
			
		||||
		<a v-for="user in users" :key="user.id" :href="user | userPage">
 | 
			
		||||
			<img :src="`${user.avatarUrl}?thumbnail&size=64`" :alt="user | userName"/>
 | 
			
		||||
		</a>
 | 
			
		||||
	</div>
 | 
			
		||||
	<p class="empty" v-if="!fetching && users.length == 0">%i18n:mobile.tags.mk-user-overview-followers-you-know.no-users%</p>
 | 
			
		||||
	<p class="empty" v-if="!fetching && users.length == 0">%i18n:@no-users%</p>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
<template>
 | 
			
		||||
<div class="root friends">
 | 
			
		||||
	<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-frequently-replied-users.loading%<mk-ellipsis/></p>
 | 
			
		||||
	<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:@loading%<mk-ellipsis/></p>
 | 
			
		||||
	<div v-if="!fetching && users.length > 0">
 | 
			
		||||
		<mk-user-card v-for="user in users" :key="user.id" :user="user"/>
 | 
			
		||||
	</div>
 | 
			
		||||
	<p class="empty" v-if="!fetching && users.length == 0">%i18n:mobile.tags.mk-user-overview-frequently-replied-users.no-users%</p>
 | 
			
		||||
	<p class="empty" v-if="!fetching && users.length == 0">%i18n:@no-users%</p>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
<template>
 | 
			
		||||
<div class="root notes">
 | 
			
		||||
	<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-notes.loading%<mk-ellipsis/></p>
 | 
			
		||||
	<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:@loading%<mk-ellipsis/></p>
 | 
			
		||||
	<div v-if="!fetching && notes.length > 0">
 | 
			
		||||
		<mk-note-card v-for="note in notes" :key="note.id" :note="note"/>
 | 
			
		||||
	</div>
 | 
			
		||||
	<p class="empty" v-if="!fetching && notes.length == 0">%i18n:mobile.tags.mk-user-overview-notes.no-notes%</p>
 | 
			
		||||
	<p class="empty" v-if="!fetching && notes.length == 0">%i18n:@no-notes%</p>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
<div class="root photos">
 | 
			
		||||
	<p class="initializing" v-if="fetching">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-photos.loading%<mk-ellipsis/></p>
 | 
			
		||||
	<p class="initializing" v-if="fetching">%fa:spinner .pulse .fw%%i18n:@loading%<mk-ellipsis/></p>
 | 
			
		||||
	<div class="stream" v-if="!fetching && images.length > 0">
 | 
			
		||||
		<a v-for="image in images"
 | 
			
		||||
			class="img"
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
			:href="image.note | notePage"
 | 
			
		||||
		></a>
 | 
			
		||||
	</div>
 | 
			
		||||
	<p class="empty" v-if="!fetching && images.length == 0">%i18n:mobile.tags.mk-user-overview-photos.no-photos%</p>
 | 
			
		||||
	<p class="empty" v-if="!fetching && images.length == 0">%i18n:@no-photos%</p>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,36 +2,36 @@
 | 
			
		||||
<div class="root home">
 | 
			
		||||
	<mk-note-detail v-if="user.pinnedNote" :note="user.pinnedNote" :compact="true"/>
 | 
			
		||||
	<section class="recent-notes">
 | 
			
		||||
		<h2>%fa:R comments%%i18n:mobile.tags.mk-user-overview.recent-notes%</h2>
 | 
			
		||||
		<h2>%fa:R comments%%i18n:@recent-notes%</h2>
 | 
			
		||||
		<div>
 | 
			
		||||
			<x-notes :user="user"/>
 | 
			
		||||
		</div>
 | 
			
		||||
	</section>
 | 
			
		||||
	<section class="images">
 | 
			
		||||
		<h2>%fa:image%%i18n:mobile.tags.mk-user-overview.images%</h2>
 | 
			
		||||
		<h2>%fa:image%%i18n:@images%</h2>
 | 
			
		||||
		<div>
 | 
			
		||||
			<x-photos :user="user"/>
 | 
			
		||||
		</div>
 | 
			
		||||
	</section>
 | 
			
		||||
	<section class="activity">
 | 
			
		||||
		<h2>%fa:chart-bar%%i18n:mobile.tags.mk-user-overview.activity%</h2>
 | 
			
		||||
		<h2>%fa:chart-bar%%i18n:@activity%</h2>
 | 
			
		||||
		<div>
 | 
			
		||||
			<mk-activity :user="user"/>
 | 
			
		||||
		</div>
 | 
			
		||||
	</section>
 | 
			
		||||
	<section class="frequently-replied-users">
 | 
			
		||||
		<h2>%fa:users%%i18n:mobile.tags.mk-user-overview.frequently-replied-users%</h2>
 | 
			
		||||
		<h2>%fa:users%%i18n:@frequently-replied-users%</h2>
 | 
			
		||||
		<div>
 | 
			
		||||
			<x-friends :user="user"/>
 | 
			
		||||
		</div>
 | 
			
		||||
	</section>
 | 
			
		||||
	<section class="followers-you-know" v-if="os.isSignedIn && os.i.id !== user.id">
 | 
			
		||||
		<h2>%fa:users%%i18n:mobile.tags.mk-user-overview.followers-you-know%</h2>
 | 
			
		||||
		<h2>%fa:users%%i18n:@followers-you-know%</h2>
 | 
			
		||||
		<div>
 | 
			
		||||
			<x-followers-you-know :user="user"/>
 | 
			
		||||
		</div>
 | 
			
		||||
	</section>
 | 
			
		||||
	<p v-if="user.host === null">%i18n:mobile.tags.mk-user-overview.last-used-at%: <b><mk-time :time="user.lastUsedAt"/></b></p>
 | 
			
		||||
	<p v-if="user.host === null">%i18n:@last-used-at%: <b><mk-time :time="user.lastUsedAt"/></b></p>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user