1234567891011121314151617181920212223242526 |
- class LocationStatus extends HTMLElement {
- connectedCallback() {
- this.url = this.getAttribute('url');
- this.updateStatus();
- }
- async updateStatus() {
- const data = await this.fetchPage();
- if (!data || typeof data.is_open !== 'boolean') {
- this.textContent =
- "Sorry, we couldn't retrieve the status of this location.";
- } else if (data.is_open) {
- this.textContent = 'This location is currently open.';
- } else {
- this.textContent = 'Sorry, this location is currently closed.';
- }
- }
- fetchPage() {
- return fetch(this.url)
- .then((response) => response.json())
- .catch(() => null);
- }
- }
- window.customElements.define('location-status', LocationStatus);
|