Newer
Older
import { convertThemeToColorWhiteDefault, editEntity } from '@/app/helpers';
import { useVModel } from '@vueuse/core';
import { useDataStore } from '@/app/stores/data';
import type { IParagraph } from '@/app/interfaces/entities';
import type { IEntity } from '@/app/interfaces/environment';
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import cookies from '@/app/plugins/Cookie';
interface Props {
entityData: IParagraph;
}
const props = defineProps<Props>();
const emit = defineEmits(['update:entityData']);
const entityData = useVModel(props, 'entityData', emit);
const isModal = ref<boolean>(false);
const addTitle = () => {
editEntity({ ...entityData.value, title: 'Title', entity_title_position: 'center' });
entityData.value = { ...entityData.value, title: 'Title', entity_title_position: 'center' };
};
const removeTitle = () => {
const newState = { ...entityData.value };
newState.title = null;
editEntity({ ...newState });
entityData.value = newState;
};
const editPosition = (position: 'left' | 'center' | 'right') => {
entityData.value.entity_position = position;
editEntity({ ...entityData.value, entity_position: position });
};
const editTitlePosition = (position: 'left' | 'center' | 'right') => {
entityData.value.entity_title_position = position;
editEntity({ ...entityData.value, entity_title_position: position });
};
const changeFontSize = (newSize: '16' | '20' | '24' | '40' | '64') => {
entityData.value.font_size = newSize;
editEntity({ ...entityData.value, font_size: newSize });
};
const editParagraphWidth = (widthMode: 'full' | 'half') => {
entityData.value.paragraph_size = widthMode;
editEntity({ ...entityData.value, paragraph_size: widthMode });
};
const themeColor = convertThemeToColorWhiteDefault(cookies.get('favorite_color'));
<button
:style="`background-color: ${themeColor}`"
class="settings absolute left-2 top-0 transition-all select-none size-12 flex justify-center items-center rounded-full hover:brightness-75 cursor-pointer"
@click.prevent="isModal = true"
>
<SettingsIcon color="white" size="25" />
</button>
<Modal v-model:isVisible="isModal" theme="black"
><template #header>Edit paragraph</template>
<div>
<select id="" name="textSize">
<option></option>
</select></div
></Modal>
<!-- <div class="speedDial absolute left-2 top-0 transition-all select-none">-->
<!-- <TextStateMenu-->
<!-- :entityData="entityData"-->
<!-- @deleteEntity="deleteEntity"-->
<!-- @addTitle="addTitle"-->
<!-- @removeTitle="removeTitle"-->
<!-- />-->
<!-- </div>-->
<!-- <div class="speedDial h-12 absolute left-2 top-0 translate-y-full transition-all select-none">-->
<!-- <TextFontMenu :entityData="entityData" @changeFontSize="changeFontSize" />-->
<!-- </div>-->
<!-- <div class="speedDial absolute left-2 top-0 translate-y-24 transition-all select-none">-->
<!-- <TextPositionMenu-->
<!-- :entityData="entityData"-->
<!-- @editPosition="editPosition"-->
<!-- @editTitlePosition="editTitlePosition"-->
<!-- @editParagraphWidth="editParagraphWidth"-->
<!-- />-->
<!-- </div>-->
</template>
<style scoped></style>