misskey/src/client/app/desktop/views/components/user-lists-window.vue

86 lines
1.7 KiB
Vue
Raw Normal View History

2018-04-24 23:34:50 +02:00
<template>
<mk-window ref="window" width="450px" height="500px" @closed="destroyDom">
2019-02-18 03:13:56 +01:00
<template #header><fa icon="list"/> {{ $t('title') }}</template>
2018-04-24 23:34:50 +02:00
2018-09-28 07:26:20 +02:00
<div class="xkxvokkjlptzyewouewmceqcxhpgzprp">
<button class="ui" @click="add">{{ $t('create-list') }}</button>
2018-04-26 04:19:57 +02:00
<a v-for="list in lists" :key="list.id" @click="choice(list)">{{ list.title }}</a>
</div>
2018-04-24 23:34:50 +02:00
</mk-window>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
2018-04-24 23:34:50 +02:00
export default Vue.extend({
i18n: i18n('desktop/views/components/user-lists-window.vue'),
2018-04-24 23:34:50 +02:00
data() {
return {
fetching: true,
lists: []
};
},
mounted() {
2018-11-09 00:13:34 +01:00
this.$root.api('users/lists/list').then(lists => {
2018-04-24 23:34:50 +02:00
this.fetching = false;
this.lists = lists;
});
},
methods: {
2018-04-25 05:36:54 +02:00
add() {
2018-12-02 12:10:53 +01:00
this.$root.dialog({
title: this.$t('list-name'),
2018-12-02 12:10:53 +01:00
input: true
}).then(async ({ canceled, result: title }) => {
if (canceled) return;
2018-11-09 00:13:34 +01:00
const list = await this.$root.api('users/lists/create', {
2018-04-25 05:36:54 +02:00
title
});
2018-04-25 16:08:40 +02:00
this.$emit('choosen', list);
2018-04-25 05:36:54 +02:00
});
},
2018-04-25 16:08:40 +02:00
choice(list) {
this.$emit('choosen', list);
},
2018-04-24 23:34:50 +02:00
close() {
(this as any).$refs.window.close();
}
}
});
</script>
<style lang="stylus" scoped>
2018-09-28 08:34:34 +02:00
.xkxvokkjlptzyewouewmceqcxhpgzprp
2018-04-26 04:19:57 +02:00
padding 16px
> button
display block
2018-04-26 04:19:57 +02:00
margin-bottom 16px
color var(--primaryForeground)
background var(--primary)
width 100%
border-radius 38px
user-select none
cursor pointer
padding 0 16px
min-width 100px
line-height 38px
font-size 14px
font-weight 700
&:hover
background var(--primaryLighten10)
&:active
background var(--primaryDarken10)
2018-04-26 04:19:57 +02:00
> a
display block
padding 16px
2018-09-28 08:34:34 +02:00
border solid 1px var(--faceDivider)
2018-04-26 04:19:57 +02:00
border-radius 4px
2018-04-24 23:34:50 +02:00
</style>