summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkCwButton.vue
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-12-27 14:36:33 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-12-27 14:36:33 +0900
commit9384f5399da39e53855beb8e7f8ded1aa56bf72e (patch)
treece5959571a981b9c4047da3c7b3fd080aa44222c /packages/frontend/src/components/MkCwButton.vue
parentwip: retention for dashboard (diff)
downloadsharkey-9384f5399da39e53855beb8e7f8ded1aa56bf72e.tar.gz
sharkey-9384f5399da39e53855beb8e7f8ded1aa56bf72e.tar.bz2
sharkey-9384f5399da39e53855beb8e7f8ded1aa56bf72e.zip
rename: client -> frontend
Diffstat (limited to 'packages/frontend/src/components/MkCwButton.vue')
-rw-r--r--packages/frontend/src/components/MkCwButton.vue62
1 files changed, 62 insertions, 0 deletions
diff --git a/packages/frontend/src/components/MkCwButton.vue b/packages/frontend/src/components/MkCwButton.vue
new file mode 100644
index 0000000000..ee611921ef
--- /dev/null
+++ b/packages/frontend/src/components/MkCwButton.vue
@@ -0,0 +1,62 @@
+<template>
+<button class="nrvgflfu _button" @click="toggle">
+ <b>{{ modelValue ? i18n.ts._cw.hide : i18n.ts._cw.show }}</b>
+ <span v-if="!modelValue">{{ label }}</span>
+</button>
+</template>
+
+<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';
+
+const props = defineProps<{
+ modelValue: boolean;
+ note: misskey.entities.Note;
+}>();
+
+const emit = defineEmits<{
+ (ev: 'update:modelValue', v: boolean): void;
+}>();
+
+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.ts.poll] : [],
+ ] as string[][]).join(' / ');
+});
+
+const toggle = () => {
+ emit('update:modelValue', !props.modelValue);
+};
+</script>
+
+<style lang="scss" scoped>
+.nrvgflfu {
+ display: inline-block;
+ padding: 4px 8px;
+ font-size: 0.7em;
+ color: var(--cwFg);
+ background: var(--cwBg);
+ border-radius: 2px;
+
+ &:hover {
+ background: var(--cwHoverBg);
+ }
+
+ > span {
+ margin-left: 4px;
+
+ &:before {
+ content: '(';
+ }
+
+ &:after {
+ content: ')';
+ }
+ }
+}
+</style>