|
- import {createMessenger, loadWidgetConfig} from '@userlike/messenger';
-
- $(document).ready(function () {
- const userlikeCustomButtonSelector = document.querySelector(".userlike-custom-button");
- const widgetConfig = loadWidgetConfig(ihk.settings.userlikeWidgetKey);
- let api;
-
- // Get the config and check if the button should be shown
- widgetConfig.then((config) => {
- if (!config.hide_button) {
- if (userlikeCustomButtonSelector) {
- if (!userlikeCustomButtonSelector.classList.contains("initialized")) {
- userlikeCustomButtonSelector.addEventListener("click", userlikeInitClickHandler);
- }
-
- } else {
- createUserlikeMessenger();
- }
- }
-
- }).catch((error) => {
- console.log(error);
- });
-
- function userlikeInitClickHandler() {
- createUserlikeMessenger();
- userlikeCustomButtonSelector.classList.add("initialized");
- userlikeCustomButtonSelector.removeEventListener("click", userlikeInitClickHandler);
- }
-
- function createUserlikeMessenger() {
-
- const result = createMessenger({
- version: 1,
- widgetKey: ihk.settings.userlikeWidgetKey,
- });
- result.then((result) => {
- if (result.kind === "error") throw new Error(result.error);
- api = result.value.api;
- api.mount().then(() => {
- requestAnimationFrame(() => {
- if (ihk.settings.useOriginalChattoolButton) {
- // Show userlike original button
- api.setVisibility({
- main: true,
- button: true,
- notifications: true,
- });
- } else {
- // Show gfi button and listen to the click
- api.setVisibility({
- main: true,
- button: false,
- notifications: true,
- }).then(() => {
- setTimeout(() => {
- api.maximize();
- }, 1000);
- });
-
-
- userlikeCustomButtonSelector.addEventListener("click", () => {
- api.maximize();
- });
- }
-
-
- });
- }
- );
-
- // React to changes, for example mum of nottifications
- // api.state$.subscribe({
- // next: (state) => console.log("next", state),
- // complete: () => console.log("complete"),
- // });
-
- }).catch((error) => {
- console.log(error);
- });
- }
-
- });
-
-
|