47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
from hacs_frontend.version import VERSION as FE_VERSION
|
|
|
|
from custom_components.hacs.helpers.classes.frontend_view import HacsFrontend
|
|
from custom_components.hacs.helpers.functions.information import get_frontend_version
|
|
from custom_components.hacs.share import get_hacs
|
|
from ...enums import HacsSetupTask
|
|
|
|
|
|
async def async_setup_frontend():
|
|
"""Configure the HACS frontend elements."""
|
|
hacs = get_hacs()
|
|
hacs.log.info("Setup task %s", HacsSetupTask.FRONTEND)
|
|
|
|
# Custom view
|
|
hacs.hass.http.register_view(HacsFrontend())
|
|
|
|
# Custom iconset
|
|
if "frontend_extra_module_url" not in hacs.hass.data:
|
|
hacs.hass.data["frontend_extra_module_url"] = set()
|
|
hacs.hass.data["frontend_extra_module_url"].add("/hacsfiles/iconset.js")
|
|
|
|
hacs.frontend.version_running = FE_VERSION
|
|
hacs.frontend.version_expected = await hacs.hass.async_add_executor_job(
|
|
get_frontend_version
|
|
)
|
|
|
|
# Add to sidepanel
|
|
if "hacs" not in hacs.hass.data.get("frontend_panels", {}):
|
|
custom_panel_config = {
|
|
"name": "hacs-frontend",
|
|
"embed_iframe": True,
|
|
"trust_external": False,
|
|
"js_url": "/hacsfiles/frontend/entrypoint.js",
|
|
}
|
|
|
|
config = {}
|
|
config["_panel_custom"] = custom_panel_config
|
|
|
|
hacs.hass.components.frontend.async_register_built_in_panel(
|
|
component_name="custom",
|
|
sidebar_title=hacs.configuration.sidepanel_title,
|
|
sidebar_icon=hacs.configuration.sidepanel_icon,
|
|
frontend_url_path="hacs",
|
|
config=config,
|
|
require_admin=True,
|
|
)
|