Changing options when navigating to a panel
· One min read
It is possible to change Custom Sidebar
options when navigating through Home Assistant panels. You can dinamically change all the options that accept a template to react to changes in the Home Assistant URL.
To make use of this feature you need to use JavaScript templates and use the special variable panel_url
. This variable is dynamic and will make the template get re-evaluated every time that the panel URL changes.
panel_url
In the next example, the option sidebar_background
is using a JavaScript
template that will return a different value depending on the panel_url
variable.
- YAML
- JSON
<config directory>/www/sidebar-config.yaml
js_variables:
background_image: 'https://cdn.jsdelivr.net/gh/basnijholt/lovelace-ios-themes@a37376d918fcfe4785be99910dc9a7200ac37da9/themes/homekit-bg-blue-red.jpg'
sidebar_background: |
[[[
if (panel_url.startsWith('/lovelace')) {
return `center / cover no-repeat fixed url('${background_image}')`;
}
if (panel_url.startsWith('/5c53de3b_esphome')) {
return '#DAD8DA';
}
return '#2C2C2E';
]]]
<config directory>/www/sidebar-config.json
{
"js_variables": {
"background_image": "https://cdn.jsdelivr.net/gh/basnijholt/lovelace-ios-themes@a37376d918fcfe4785be99910dc9a7200ac37da9/themes/homekit-bg-blue-red.jpg"
},
"sidebar_background": "if (panel_url.startsWith('/lovelace')) { return `center / cover no-repeat fixed url('${background_image}')`; } if (panel_url.startsWith('/5c53de3b_esphome')) { return '#DAD8DA'; } return '#2C2C2E';"
}
Custom Sidebar
options changing depending on the panel_url
variable