diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet/Send')
5 files changed, 0 insertions, 251 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/Send/index.ts b/packages/taler-wallet-webextension/src/wallet/Send/index.ts deleted file mode 100644 index fb69c6280..000000000 --- a/packages/taler-wallet-webextension/src/wallet/Send/index.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2022 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -import { Loading } from "../../components/Loading.js"; -import { HookError } from "../../hooks/useAsyncAsHook.js"; -import { compose, StateViewMap } from "../../utils/index.js"; -import { LoadingUriView, ReadyView } from "./views.js"; -import * as wxApi from "../../wxApi.js"; -import { useComponentState } from "./state.js"; -import { AmountJson } from "@gnu-taler/taler-util"; -import { SelectFieldHandler, TextFieldHandler } from "../../mui/handlers.js"; - -export interface Props { - p: string; -} - -export type State = - | State.Loading - | State.LoadingUriError - | State.Ready; - -export namespace State { - - export interface Loading { - status: "loading"; - error: undefined; - } - - export interface LoadingUriError { - status: "loading-uri"; - error: HookError; - } - - export interface BaseInfo { - error: undefined; - } - export interface Ready extends BaseInfo { - status: "ready"; - amount: AmountJson; - exchange: SelectFieldHandler, - subject: TextFieldHandler, - error: undefined; - } -} - -const viewMapping: StateViewMap<State> = { - loading: Loading, - "loading-uri": LoadingUriView, - "ready": ReadyView, -}; - - -export const SendPage = compose("SendPage", (p: Props) => useComponentState(p, wxApi), viewMapping) - diff --git a/packages/taler-wallet-webextension/src/wallet/Send/state.ts b/packages/taler-wallet-webextension/src/wallet/Send/state.ts deleted file mode 100644 index 1359c1804..000000000 --- a/packages/taler-wallet-webextension/src/wallet/Send/state.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2022 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -import { Amounts } from "@gnu-taler/taler-util"; -import { useState } from "preact/hooks"; -import { useAsyncAsHook } from "../../hooks/useAsyncAsHook.js"; -import * as wxApi from "../../wxApi.js"; -import { Props, State } from "./index.js"; - -export function useComponentState( - { p }: Props, - api: typeof wxApi, -): State { - const [subject, setSubject] = useState(""); - const amount = Amounts.parseOrThrow("ARS:0") - - const hook = useAsyncAsHook(api.listExchanges); - const [exchangeIdx, setExchangeIdx] = useState("0") - - if (!hook) { - return { - status: "loading", - error: undefined, - } - } - if (hook.hasError) { - return { - status: "loading-uri", - error: hook, - }; - } - - const exchanges = hook.response.exchanges; - const exchangeMap = exchanges.reduce((prev, cur, idx) => ({ ...prev, [cur.exchangeBaseUrl]: String(idx) }), {} as Record<string, string>) - const selected = exchanges[Number(exchangeIdx)]; - - return { - status: "ready", - exchange: { - list: exchangeMap, - value: exchangeIdx, - onChange: async (v) => { - setExchangeIdx(v) - } - }, - subject: { - value: subject, - onInput: async (e) => setSubject(e) - }, - amount, - error: undefined, - } -} diff --git a/packages/taler-wallet-webextension/src/wallet/Send/stories.tsx b/packages/taler-wallet-webextension/src/wallet/Send/stories.tsx deleted file mode 100644 index 75f78be1d..000000000 --- a/packages/taler-wallet-webextension/src/wallet/Send/stories.tsx +++ /dev/null @@ -1,29 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2022 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -/** - * - * @author Sebastian Javier Marchano (sebasjm) - */ - -import { createExample } from "../../test-utils.js"; -import { ReadyView } from "./views.js"; - -export default { - title: "wallet/invoice", -}; - -export const Ready = createExample(ReadyView, {}); diff --git a/packages/taler-wallet-webextension/src/wallet/Send/test.ts b/packages/taler-wallet-webextension/src/wallet/Send/test.ts deleted file mode 100644 index 631e76d01..000000000 --- a/packages/taler-wallet-webextension/src/wallet/Send/test.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2022 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -/** - * - * @author Sebastian Javier Marchano (sebasjm) - */ - -import { expect } from "chai"; - -describe("test description", () => { - - it("should assert", () => { - - expect([]).deep.equals([]) - }); -}) - diff --git a/packages/taler-wallet-webextension/src/wallet/Send/views.tsx b/packages/taler-wallet-webextension/src/wallet/Send/views.tsx deleted file mode 100644 index 63310f443..000000000 --- a/packages/taler-wallet-webextension/src/wallet/Send/views.tsx +++ /dev/null @@ -1,58 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2022 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -import { Amounts } from "@gnu-taler/taler-util"; -import { styled } from "@linaria/react"; -import { h, VNode } from "preact"; -import { useState } from "preact/hooks"; -import { LoadingError } from "../../components/LoadingError.js"; -import { SelectList } from "../../components/SelectList.js"; -import { Input } from "../../components/styled/index.js"; -import { useTranslationContext } from "../../context/translation.js"; -import { Button } from "../../mui/Button.js"; -import { TextField } from "../../mui/TextField.js"; -import { State } from "./index.js"; - -export function LoadingUriView({ error }: State.LoadingUriError): VNode { - const { i18n } = useTranslationContext(); - - return ( - <LoadingError - title={<i18n.Translate>Could not load</i18n.Translate>} - error={error} - /> - ); -} - -const Container = styled.div``; - -export function ReadyView({ amount, exchange, subject }: State.Ready): VNode { - const { i18n } = useTranslationContext(); - return ( - <Container> - <p>Sending {Amounts.stringify(amount)}</p> - <TextField - label="Subject" - variant="filled" - required - value={subject.value} - onChange={subject.onInput} - /> - <p>to:</p> - <Button>Scan QR code</Button> - </Container> - ); -} |