Files
MikrotikManager/lib/alerts-telegram-checkpoint.ts
T

7 lines
808 B
TypeScript

// Shared between Telegram settings and rule preview; never stores credentials.
const pending=new Set<string>(),listeners=new Set<()=>void>()
const key=(source:string)=>"mm:alerts-telegram-pending:"+source
export function telegramPending(source:string){try{return pending.has(source)||sessionStorage.getItem(key(source))==="true"}catch{return pending.has(source)}}
export function subscribeTelegramPending(listener:()=>void){listeners.add(listener);return()=>{listeners.delete(listener)}}
export function setTelegramPending(source:string,value:boolean){if(value)pending.add(source);else pending.delete(source);try{if(value)sessionStorage.setItem(key(source),"true");else sessionStorage.removeItem(key(source))}catch{/* Memory guard survives section navigation. */}for(const listener of listeners)listener()}