summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-02-16 08:51:35 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-02-16 08:51:35 +0900
commit545e83efb1da11fa435f3aaaa6f6ec0d168cedb8 (patch)
treed2e780bccca89dae781b1d4d877a5ddcd305a788 /src/client
parentExploreページを実装 (diff)
downloadsharkey-545e83efb1da11fa435f3aaaa6f6ec0d168cedb8.tar.gz
sharkey-545e83efb1da11fa435f3aaaa6f6ec0d168cedb8.tar.bz2
sharkey-545e83efb1da11fa435f3aaaa6f6ec0d168cedb8.zip
:art:
Diffstat (limited to 'src/client')
-rw-r--r--src/client/app/common/size.ts18
-rw-r--r--src/client/app/common/views/components/user-list.vue62
-rw-r--r--src/client/app/init.ts2
-rw-r--r--src/client/app/mobile/views/components/ui-container.vue3
4 files changed, 64 insertions, 21 deletions
diff --git a/src/client/app/common/size.ts b/src/client/app/common/size.ts
new file mode 100644
index 0000000000..6abb305747
--- /dev/null
+++ b/src/client/app/common/size.ts
@@ -0,0 +1,18 @@
+export default {
+ install(Vue) {
+ Vue.directive('size', {
+ inserted(el, binding) {
+ const query = binding.value;
+ const width = el.clientWidth;
+ for (const q of query) {
+ if (q.lt && (width <= q.lt)) {
+ el.classList.add(q.class);
+ }
+ if (q.gt && (width >= q.gt)) {
+ el.classList.add(q.class);
+ }
+ }
+ }
+ });
+ }
+};
diff --git a/src/client/app/common/views/components/user-list.vue b/src/client/app/common/views/components/user-list.vue
index 35569687ba..3147fbe371 100644
--- a/src/client/app/common/views/components/user-list.vue
+++ b/src/client/app/common/views/components/user-list.vue
@@ -1,12 +1,17 @@
<template>
<ui-container :body-togglable="true">
<template slot="header"><slot></slot></template>
- <div class="efvhhmdq">
- <div class="user" v-for="friend in users">
- <mk-avatar class="avatar" :user="friend"/>
+ <div class="efvhhmdq" v-size="[{ lt: 500, class: 'narrow' }]">
+ <div class="user" v-for="user in users">
+ <mk-avatar class="avatar" :user="user"/>
<div class="body">
- <router-link class="name" :to="friend | userPage" v-user-preview="friend.id"><mk-user-name :user="friend"/></router-link>
- <p class="username">@{{ friend | acct }}</p>
+ <div class="name">
+ <router-link class="name" :to="user | userPage" v-user-preview="user.id"><mk-user-name :user="user"/></router-link>
+ <p class="username">@{{ user | acct }}</p>
+ </div>
+ <div class="description" v-if="user.description">
+ <mfm :text="user.description" :author="user" :i="$store.state.i" :custom-emojis="user.emojis" :should-break="false"/>
+ </div>
</div>
</div>
</div>
@@ -32,42 +37,57 @@ export default Vue.extend({
<style lang="stylus" scoped>
.efvhhmdq
+ &.narrow
+ > .user > .body > .name
+ width 100%
+
+ > .user > .body > .description
+ display none
+
> .user
+ display flex
padding 16px
border-bottom solid 1px var(--faceDivider)
&:last-child
border-bottom none
- &:after
- content ""
- display block
- clear both
-
> .avatar
display block
- float left
+ flex-shrink 0
margin 0 12px 0 0
width 42px
height 42px
border-radius 8px
> .body
- float left
+ display flex
width calc(100% - 54px)
> .name
- margin 0
- font-size 16px
- line-height 24px
- color var(--text)
+ width 45%
+
+ > .name
+ margin 0
+ font-size 16px
+ line-height 24px
+ color var(--text)
+
+ > .username
+ display block
+ margin 0
+ font-size 15px
+ line-height 16px
+ color var(--text)
+ opacity 0.7
- > .username
- display block
- margin 0
- font-size 15px
- line-height 16px
+ > .description
+ width 55%
color var(--text)
+ line-height 42px
+ white-space nowrap
+ overflow hidden
+ text-overflow ellipsis
opacity 0.7
</style>
diff --git a/src/client/app/init.ts b/src/client/app/init.ts
index 710bef8b65..22285aa992 100644
--- a/src/client/app/init.ts
+++ b/src/client/app/init.ts
@@ -11,6 +11,7 @@ import VueI18n from 'vue-i18n';
import SequentialEntrance from 'vue-sequential-entrance';
import VueHotkey from './common/hotkey';
+import VueSize from './common/size';
import App from './app.vue';
import checkForUpdate from './common/scripts/check-for-update';
import MiOS from './mios';
@@ -291,6 +292,7 @@ Vue.use(VueRouter);
Vue.use(VAnimateCss);
Vue.use(VModal);
Vue.use(VueHotkey);
+Vue.use(VueSize);
Vue.use(VueI18n);
Vue.use(SequentialEntrance);
diff --git a/src/client/app/mobile/views/components/ui-container.vue b/src/client/app/mobile/views/components/ui-container.vue
index 2dcd83f586..63ca28cbca 100644
--- a/src/client/app/mobile/views/components/ui-container.vue
+++ b/src/client/app/mobile/views/components/ui-container.vue
@@ -46,6 +46,9 @@ export default Vue.extend({
box-shadow 0 4px 16px rgba(#000, 0.1)
overflow hidden
+ & + .ukygtjoj
+ margin-top 16px
+
&.naked
background transparent !important
box-shadow none !important