iceshrimp/packages/client/src/pages/page-editor/els/page-editor.el.radio-button.vue
2023-04-07 17:01:42 -07:00

66 lines
1.4 KiB
Vue

<template>
<XContainer :draggable="true" @remove="() => $emit('remove')">
<template #header
><i class="ph-lightning ph-bold ph-lg"></i>
{{ i18n.ts._pages.blocks.radioButton }}</template
>
<section style="padding: 0 16px 16px 16px">
<MkInput v-model="value.name"
><template #prefix
><i class="ph-magic-wand ph-bold ph-lg"></i></template
><template #label>{{
i18n.ts._pages.blocks._radioButton.name
}}</template></MkInput
>
<MkInput v-model="value.title"
><template #label>{{
i18n.ts._pages.blocks._radioButton.title
}}</template></MkInput
>
<MkTextarea v-model="values"
><template #label>{{
i18n.ts._pages.blocks._radioButton.values
}}</template></MkTextarea
>
<MkInput v-model="value.default"
><template #label>{{
i18n.ts._pages.blocks._radioButton.default
}}</template></MkInput
>
</section>
</XContainer>
</template>
<script lang="ts" setup>
import { watch } from "vue";
import XContainer from "../page-editor.container.vue";
import MkTextarea from "@/components/form/textarea.vue";
import MkInput from "@/components/form/input.vue";
import { i18n } from "@/i18n";
const props = withDefaults(
defineProps<{
value: any;
}>(),
{
value: {
name: "",
title: "",
values: [],
},
}
);
let values: string = $ref(props.value.values.join("\n"));
watch(
values,
() => {
props.value.values = values.split("\n");
},
{
deep: true,
}
);
</script>