odoo18/addons/im_livechat/static/src/embed/external/boot.js

33 lines
1.2 KiB
JavaScript

import { LivechatButton } from "@im_livechat/embed/common/livechat_button";
import { makeShadow, makeRoot } from "@im_livechat/embed/common/boot_helpers";
import { mount, whenReady } from "@odoo/owl";
import { _t } from "@web/core/l10n/translation";
import { getTemplate } from "@web/core/templates";
import { MainComponentsContainer } from "@web/core/main_components_container";
import { Deferred } from "@web/core/utils/concurrency";
import { registry } from "@web/core/registry";
import { makeEnv, startServices } from "@web/env";
import { session } from "@web/session";
odoo.livechatReady = new Deferred();
(async function boot() {
session.origin = session.livechatData.serverUrl;
await whenReady();
const mainComponentsRegistry = registry.category("main_components");
mainComponentsRegistry.add("LivechatRoot", { Component: LivechatButton });
const env = Object.assign(makeEnv(), { embedLivechat: true });
await startServices(env);
odoo.isReady = true;
const target = await makeShadow(makeRoot(document.body));
await mount(MainComponentsContainer, target, {
env,
getTemplate,
translateFn: _t,
dev: env.debug,
});
odoo.livechatReady.resolve();
})();