diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-01-04 23:37:26 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2022-01-04 23:37:26 +0900 |
| commit | 5e4877b8a4edaa89d2550e7c03c861536762ea7a (patch) | |
| tree | ad903b14df2aede8f7c9ee59d664a1933d67b059 /packages/client/src/components | |
| parent | tweak ui (diff) | |
| download | misskey-5e4877b8a4edaa89d2550e7c03c861536762ea7a.tar.gz misskey-5e4877b8a4edaa89d2550e7c03c861536762ea7a.tar.bz2 misskey-5e4877b8a4edaa89d2550e7c03c861536762ea7a.zip | |
tweak ui
Diffstat (limited to 'packages/client/src/components')
| -rw-r--r-- | packages/client/src/components/object-view.value.vue | 108 | ||||
| -rw-r--r-- | packages/client/src/components/object-view.vue | 8 |
2 files changed, 114 insertions, 2 deletions
diff --git a/packages/client/src/components/object-view.value.vue b/packages/client/src/components/object-view.value.vue new file mode 100644 index 0000000000..6f388636dd --- /dev/null +++ b/packages/client/src/components/object-view.value.vue @@ -0,0 +1,108 @@ +<template> +<div class="igpposuu _monospace"> + <div v-if="value === null" class="null">null</div> + <div v-else-if="typeof value === 'boolean'" class="boolean">{{ value ? 'true' : 'false' }}</div> + <div v-else-if="typeof value === 'string'" class="string">"{{ value }}"</div> + <div v-else-if="typeof value === 'number'" class="number">{{ number(value) }}</div> + <div v-else-if="Array.isArray(value)" class="array"> + <button @click="collapsed_ = !collapsed_">[ {{ collapsed_ ? '+' : '-' }} ]</button> + <template v-if="!collapsed_"> + <div v-for="i in value.length" class="element"> + {{ i }}: <XValue :value="value[i - 1]" collapsed/> + </div> + </template> + </div> + <div v-else-if="typeof value === 'object'" class="object"> + <button @click="collapsed_ = !collapsed_">{ {{ collapsed_ ? '+' : '-' }} }</button> + <template v-if="!collapsed_"> + <div v-for="k in Object.keys(value)" class="kv"> + <div class="k">{{ k }}:</div> + <div class="v"><XValue :value="value[k]" collapsed/></div> + </div> + </template> + </div> +</div> +</template> + +<script lang="ts"> +import { computed, defineComponent, ref } from 'vue'; +import number from '@/filters/number'; + +export default defineComponent({ + name: 'XValue', + + props: { + value: { + type: Object, + required: true, + }, + collapsed: { + type: Boolean, + required: false, + default: false, + }, + }, + + setup(props) { + const collapsed_ = ref(props.collapsed); + + return { + number, + collapsed_, + }; + } +}); +</script> + +<style lang="scss" scoped> +.igpposuu { + display: inline; + + > .null { + display: inline; + opacity: 0.7; + } + + > .boolean { + display: inline; + color: var(--codeBoolean); + } + + > .string { + display: inline; + color: var(--codeString); + } + + > .number { + display: inline; + color: var(--codeNumber); + } + + > .array { + display: inline; + + > .element { + display: block; + padding-left: 16px; + } + } + + > .object { + display: inline; + + > .kv { + display: block; + padding-left: 16px; + + > .k { + display: inline; + margin-right: 8px; + } + + > .v { + display: inline; + } + } + } +} +</style> diff --git a/packages/client/src/components/object-view.vue b/packages/client/src/components/object-view.vue index 4334917e6b..e9db96de8c 100644 --- a/packages/client/src/components/object-view.vue +++ b/packages/client/src/components/object-view.vue @@ -1,14 +1,18 @@ <template> <div class="zhyxdalp"> - + <XValue :value="value" :collapsed="false"/> </div> </template> <script lang="ts"> import { computed, defineComponent } from 'vue'; -import number from '@/filters/number'; +import XValue from './object-view.value.vue'; export default defineComponent({ + components: { + XValue + }, + props: { value: { type: Object, |