IKHSAN
EN Read in EnglishID

opendesk

Publik
Branch
main
Commit terakhir
08d9f3328 Oktober 2026

useBanners.ts

Buka raw
import { globalStore } from "@/stores/globalStore";
import { createResource } from "frappe-ui";

export type BannerName = "customer_portal_permission" | "ticket_field_permission";

const banners = createResource({
  url: "opendesk.api.banners.get_banners",
  initialData: [],
});
const dismissResource = createResource({
  url: "opendesk.api.banners.dismiss_banner",
});
let started = false;

export function useBanners() {
  if (!started) {
    started = true;
    banners.fetch();
    globalStore().$socket.on("opendesk:settings-updated", () =>
      banners.reload()
    );
  }

  function isVisible(banner: BannerName): boolean {
    return banners.data.includes(banner);
  }

  async function dismiss(banner: BannerName): Promise<void> {
    await dismissResource.submit({ banner });
    banners.reload();
  }

  return { isVisible, dismiss };
}
byte
851
baris
35
Jenis
ts
Commit terakhir
28 Oktober 2026