chore: split app to commons and web (squash commit)

This commit is contained in:
Andrew Bastin
2022-12-02 02:57:46 -05:00
parent fb827e3586
commit 3d004f2322
535 changed files with 1487 additions and 501 deletions

View File

@@ -0,0 +1,40 @@
import { distinctUntilChanged, pluck } from "rxjs"
import DispatchingStore, { defineDispatchers } from "./DispatchingStore"
export type ExtensionStatus = "available" | "unknown-origin" | "waiting"
type InitialState = {
extensionStatus: ExtensionStatus
}
const initialState: InitialState = {
extensionStatus: "waiting",
}
const dispatchers = defineDispatchers({
changeExtensionStatus(
_,
{ extensionStatus }: { extensionStatus: ExtensionStatus }
) {
return {
extensionStatus,
}
},
})
export const hoppExtensionStore = new DispatchingStore(
initialState,
dispatchers
)
export const extensionStatus$ = hoppExtensionStore.subject$.pipe(
pluck("extensionStatus"),
distinctUntilChanged()
)
export function changeExtensionStatus(extensionStatus: ExtensionStatus) {
hoppExtensionStore.dispatch({
dispatcher: "changeExtensionStatus",
payload: { extensionStatus },
})
}