refactor(client): use composition api

This commit is contained in:
syuilo 2022-01-07 13:26:12 +09:00
parent 436fd8d112
commit 5a8a0e5b4d

View File

@ -5,41 +5,33 @@
</button>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
<script lang="ts" setup>
import { computed } from 'vue';
import { length } from 'stringz';
import * as misskey from 'misskey-js';
import { concat } from '@/scripts/array';
import { i18n } from '@/i18n';
export default defineComponent({
props: {
modelValue: {
type: Boolean,
required: true
},
note: {
type: Object,
required: true
}
},
const props = defineProps<{
modelValue: boolean;
note: misskey.entities.Note;
}>();
computed: {
label(): string {
return concat([
this.note.text ? [this.$t('_cw.chars', { count: length(this.note.text) })] : [],
this.note.files && this.note.files.length !== 0 ? [this.$t('_cw.files', { count: this.note.files.length }) ] : [],
this.note.poll != null ? [this.$ts.poll] : []
] as string[][]).join(' / ');
}
},
const emit = defineEmits<{
(e: 'update:modelValue', v: boolean): void;
}>();
methods: {
length,
toggle() {
this.$emit('update:modelValue', !this.modelValue);
}
}
const label = computed(() => {
return concat([
props.note.text ? [i18n.t('_cw.chars', { count: length(props.note.text) })] : [],
props.note.files && props.note.files.length !== 0 ? [i18n.t('_cw.files', { count: props.note.files.length }) ] : [],
props.note.poll != null ? [i18n.locale.poll] : []
] as string[][]).join(' / ');
});
const toggle = () => {
emit('update:modelValue', !props.modelValue);
};
</script>
<style lang="scss" scoped>