refactor(client): use composition api

This commit is contained in:
syuilo 2022-01-07 13:26:12 +09:00
parent 3b1961bb3d
commit 1622dfcb53

View file

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