You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
888 B
32 lines
888 B
import { ISprinklersApi } from "@common/sprinklers"; |
|
import { MqttApiClient } from "@common/sprinklers/mqtt"; |
|
import { WebApiClient } from "./websocket"; |
|
|
|
import { UiMessage, UiStore } from "./ui"; |
|
export { UiMessage, UiStore }; |
|
export * from "./inject"; |
|
|
|
export abstract class StateBase { |
|
abstract readonly sprinklersApi: ISprinklersApi; |
|
uiStore = new UiStore(); |
|
|
|
constructor() { |
|
this.uiStore.addMessage({ header: "asdf", content: "boo!", error: true }); |
|
} |
|
|
|
start() { |
|
this.sprinklersApi.start(); |
|
} |
|
} |
|
|
|
const isDev = process.env.NODE_ENV === "development"; |
|
|
|
export class MqttApiState extends StateBase { |
|
sprinklersApi = new MqttApiClient(`ws://${location.hostname}:1884`); |
|
} |
|
|
|
export class WebApiState extends StateBase { |
|
sprinklersApi = new WebApiClient(isDev ? |
|
`ws://${location.hostname}:8080` : |
|
`ws://${location.host}`); |
|
}
|
|
|