summaryrefslogtreecommitdiff
path: root/packages/anastasis-webui/src/pages/home/CountrySelectionScreen.tsx
blob: 417c0863351f73d06ca47dd6114ae7bec21be11f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* eslint-disable @typescript-eslint/camelcase */
import { h, VNode } from "preact";
import { useAnastasisContext } from "../../context/anastasis";
import { AnastasisClientFrame, withProcessLabel } from "./index";

export function CountrySelectionScreen(): VNode {
  const reducer = useAnastasisContext()
  if (!reducer) {
    return <div>no reducer in context</div>
  }
  if (!reducer.currentReducerState || !("countries" in reducer.currentReducerState)) {
    return <div>invalid state</div>
  }
  const sel = (x: any): void => reducer.transition("select_country", {
    country_code: x.code,
    currencies: [x.currency],
  });
  return (
    <AnastasisClientFrame hideNext title={withProcessLabel(reducer, "Select Country")} >
      <div style={{ display: 'flex', flexDirection: 'column' }}>
        {reducer.currentReducerState.countries.map((x: any) => (
          <div key={x.name}>
            <button class="button" onClick={() => sel(x)} >
              {x.name} ({x.currency})
            </button>
          </div>
        ))}
      </div>
    </AnastasisClientFrame>
  );
}