valaxy-addon-artalk
Version:
Artalk Composition API for Valaxy
29 lines (25 loc) • 848 B
text/typescript
import { onMounted, computed, ComputedRef, onUnmounted } from "vue";
import { useI18n } from "vue-i18n";
import { useAddonArtalk } from "./options";
import type { ArtalkOptions } from "../types";
import Artalk from "artalk";
export function useArtalk(options: ComputedRef<ArtalkOptions | undefined>) {
const { locale } = useI18n();
let artalk: Artalk;
onMounted(() => {
const defaultOptions = {
el: "#ArtalkComment",
locale: locale.value,
};
const newArtalkOptions = Object.assign(defaultOptions, options.value || {});
artalk = Artalk.init(newArtalkOptions);
});
onUnmounted(() => {
artalk.destroy();
});
}
export function useArtalkWithOptions() {
const addonArtalk = useAddonArtalk();
const options = computed(() => addonArtalk.value.options);
useArtalk(options);
}