From 8144b0f5535c3d00c1e508cddce3cd88a153a581 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 5 Sep 2019 16:10:53 +0200 Subject: welcome page with error diagnostics / react refactoring --- src/webex/pages/payback.tsx | 87 ++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 53 deletions(-) (limited to 'src/webex/pages/payback.tsx') diff --git a/src/webex/pages/payback.tsx b/src/webex/pages/payback.tsx index f69a33493..934c28c0a 100644 --- a/src/webex/pages/payback.tsx +++ b/src/webex/pages/payback.tsx @@ -20,73 +20,54 @@ * @author Florian Dold */ - /** * Imports. */ -import { - ReserveRecord, -} from "../../dbTypes"; +import { ReserveRecord } from "../../dbTypes"; +import { renderAmount, registerMountPage } from "../renderHtml"; +import { getPaybackReserves, withdrawPaybackReserve } from "../wxApi"; +import * as React from "react"; +import { useState } from "react"; -import { ImplicitStateComponent, StateHolder } from "../components"; -import { renderAmount } from "../renderHtml"; -import { - getPaybackReserves, - withdrawPaybackReserve, -} from "../wxApi"; +function Payback() { + const [reserves, setReserves] = useState(null); -import * as React from "react"; -import * as ReactDOM from "react-dom"; + useState(() => { + const update = async () => { + const r = await getPaybackReserves(); + setReserves(r); + }; -class Payback extends ImplicitStateComponent<{}> { - private reserves: StateHolder = this.makeState(null); - constructor(props: {}) { - super(props); const port = chrome.runtime.connect(); port.onMessage.addListener((msg: any) => { if (msg.notify) { console.log("got notified"); - this.update(); + update(); } }); - this.update(); - } + }); - async update() { - const reserves = await getPaybackReserves(); - this.reserves(reserves); + if (!reserves) { + return loading ...; } - - withdrawPayback(pub: string) { - withdrawPaybackReserve(pub); + if (reserves.length === 0) { + return No reserves with payback available.; } - - render(): JSX.Element { - const reserves = this.reserves(); - if (!reserves) { - return loading ...; - } - if (reserves.length === 0) { - return No reserves with payback available.; - } - return ( -
- {reserves.map((r) => ( -
-

Reserve for ${renderAmount(r.current_amount!)}

-
    -
  • Exchange: ${r.exchange_base_url}
  • -
- -
- ))} -
- ); - } -} - -function main() { - ReactDOM.render(, document.getElementById("container")!); + return ( +
+ {reserves.map(r => ( +
+

Reserve for ${renderAmount(r.current_amount!)}

+
    +
  • Exchange: ${r.exchange_base_url}
  • +
+ +
+ ))} +
+ ); } -document.addEventListener("DOMContentLoaded", main); +registerMountPage(() => ); -- cgit v1.2.3