UNPKG

nuxt-live-editor

Version:
50 lines (49 loc) 2 kB
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 }; };