From d94223a61e29defb95cc64f5b81a8681c627b223 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 30 May 2019 08:41:32 -0700 Subject: [PATCH] Dynamic update panels (#3227) --- src/data/ws-panels.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/data/ws-panels.ts b/src/data/ws-panels.ts index 88ec490d06..a38c4ed252 100644 --- a/src/data/ws-panels.ts +++ b/src/data/ws-panels.ts @@ -1,14 +1,25 @@ import { createCollection, Connection } from "home-assistant-js-websocket"; import { Panels } from "../types"; +const fetchPanels = (conn) => + conn.sendMessagePromise({ + type: "get_panels", + }); + +const subscribeUpdates = (conn, store) => + conn.subscribeEvents( + () => fetchPanels(conn).then((panels) => store.setState(panels, true)), + "panels_updated" + ); + export const subscribePanels = ( conn: Connection, onChange: (panels: Panels) => void ) => createCollection( "_pnl", - () => conn.sendMessagePromise({ type: "get_panels" }), - undefined, + fetchPanels, + subscribeUpdates, conn, onChange );