UNPKG

ziko

Version:

A versatile JavaScript library offering a rich set of Hyperscript Based UI components, advanced mathematical utilities, interactivity ,animations, client side routing and more ...

30 lines 912 B
import { useEventEmitter } from "../../../hooks/use-event-emitter.js"; class ZikoUseTitle{ constructor(title=document.title,useEventEmitter=true){ this.cache={ Emitter:null } if(useEventEmitter)this.useEventEmitter(); this.set(title); } useEventEmitter(){ this.cache.Emitter=useEventEmitter(); return this; } set(title){ if(title!==document.title){ document.title=title; if(this.cache.Emitter)this.cache.Emitter.emit("ziko:title-changed"); } return this; } get current(){ return document.title; } onChange(callback){ if(this.cache.Emitter)this.cache.Emitter.on("ziko:title-changed",callback); return this; } } const useTitle=(title, useEventEmitter)=>new ZikoUseTitle(title, useEventEmitter); export{ useTitle }