nuxt-live-editor
Version:
My new Nuxt module
50 lines (49 loc) • 2 kB
JavaScript
import { storeToRefs } from "pinia";
import { useDefaultValue } from "./useDefaultValue.mjs";
import { useLiveEditorStore } from "../stores/useLiveEditorStore.mjs";
export const useKey = (option_key) => {
const { data_live_editor, data_live_editor_async, data_keys_used } = storeToRefs(useLiveEditorStore());
const { DEFAULT_CONTENT, DEFAULT_CONTENT_IMAGE, DEFAULT_CONTENT_LINK, DEFAULT_CONTENT_ICON } = useDefaultValue();
const getTypeKey = () => {
let key = option_key?.split("__")[0];
if (["IMAGE-LINK", "ICON-LINK", "TEXT-LINK", "CONTENT-LINK"].includes(key)) return "LINK";
return key;
};
const getValueKey = () => {
return option_key?.split("__")[1];
};
const addTypeKey = (type) => {
return `${type}__${option_key}`;
};
const getKeyLink = () => {
return `${getTypeKey()}-LINK__${getValueKey()}`;
};
const checkNewOptionKey = (default_value) => {
!data_keys_used.value.includes(option_key) && data_keys_used.value.push(option_key);
let is_new_key = data_live_editor.value.find((item) => item.option_key === option_key);
if (!is_new_key) {
if (useKey(option_key).getTypeKey() === "ICON") {
data_live_editor_async.value[option_key] = DEFAULT_CONTENT_ICON;
}
if (useKey(option_key).getTypeKey() === "CONTENT" || useKey(option_key).getTypeKey() === "TEXT") {
data_live_editor_async.value[option_key] = DEFAULT_CONTENT;
}
if (useKey(option_key).getTypeKey() === "IMAGE") {
data_live_editor_async.value[option_key] = DEFAULT_CONTENT_IMAGE;
}
if (["IMAGE-LINK", "ICON-LINK", "TEXT-LINK", "CONTENT-LINK"].includes(useKey(option_key).getTypeKey())) {
data_live_editor_async.value[option_key] = DEFAULT_CONTENT_LINK;
}
if (useKey(option_key).getTypeKey() === "LIST") {
data_live_editor_async.value[option_key] = default_value;
}
}
};
return {
getTypeKey,
addTypeKey,
getValueKey,
checkNewOptionKey,
getKeyLink
};
};