diff options
Diffstat (limited to 'app/javascript/controllers/content_loader_controller.js')
| -rw-r--r-- | app/javascript/controllers/content_loader_controller.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/app/javascript/controllers/content_loader_controller.js b/app/javascript/controllers/content_loader_controller.js new file mode 100644 index 0000000..37e51df --- /dev/null +++ b/app/javascript/controllers/content_loader_controller.js @@ -0,0 +1,35 @@ +import ApplicationController from './application_controller'; + +export default class extends ApplicationController { + connect() { + this.load() + + if (this.data.has("refreshInterval")) { + this.startRefreshing() + } + } + + disconnect() { + this.stopRefreshing() + } + + load() { + fetch(this.data.get("url")) + .then(response => response.text()) + .then(html => { + this.element.innerHTML = html + }) + } + + startRefreshing() { + this.refreshTimer = setInterval(() => { + this.load() + }, this.data.get("refreshInterval")) + } + + stopRefreshing() { + if (this.refreshTimer) { + clearInterval(this.refreshTimer) + } + } +} |
