aboutsummaryrefslogtreecommitdiff
path: root/packages/anastasis-webui
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2022-06-06 00:04:53 -0300
committerSebastian <sebasjm@gmail.com>2022-06-06 00:04:53 -0300
commite3c92b6080f4b2c7f146bd84953ef51114b23cdb (patch)
tree72391332d5a949bf2c7009d56ad633f3d4c1a30e /packages/anastasis-webui
parent1c1384d7c8193aa17375e630a960644f669d2b48 (diff)
updating package
Diffstat (limited to 'packages/anastasis-webui')
-rw-r--r--packages/anastasis-webui/package.json36
-rw-r--r--packages/anastasis-webui/src/components/picker/DurationPicker.tsx2
-rw-r--r--packages/anastasis-webui/src/hooks/use-anastasis-reducer.ts4
-rw-r--r--packages/anastasis-webui/src/pages/home/AddingProviderScreen.tsx58
-rw-r--r--packages/anastasis-webui/src/pages/home/style.css0
-rw-r--r--packages/anastasis-webui/src/utils/index.tsx44
-rw-r--r--packages/anastasis-webui/tsconfig.json5
7 files changed, 57 insertions, 92 deletions
diff --git a/packages/anastasis-webui/package.json b/packages/anastasis-webui/package.json
index 0cdb1be71..e60d505bc 100644
--- a/packages/anastasis-webui/package.json
+++ b/packages/anastasis-webui/package.json
@@ -4,26 +4,12 @@
"version": "0.0.2",
"license": "MIT",
"scripts": {
- "build": "preact build --no-sw --no-esm --no-inline-css",
- "serve": "sirv build --port ${PORT:=8080} --cors --single",
- "dev": "preact watch --port ${PORT:=8080} --no-sw --no-esm",
+ "compile": "tsc",
+ "dev": "./dev.mjs",
+ "prepare": "pnpm compile",
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
"test": "echo no tests",
- "build-storybook": "build-storybook",
- "build-single": "preact build --no-sw --no-esm -c preact.single-config.js --dest single && sh remove-link-stylesheet.sh",
- "serve-single": "sirv single --port ${PORT:=8080} --cors --single",
- "pretty": "prettier --write src",
- "storybook": "start-storybook -p 6006"
- },
- "eslintConfig": {
- "parser": "@typescript-eslint/parser",
- "extends": [
- "preact",
- "plugin:@typescript-eslint/recommended"
- ],
- "ignorePatterns": [
- "build/"
- ]
+ "pretty": "prettier --write src"
},
"dependencies": {
"@gnu-taler/anastasis-core": "workspace:*",
@@ -41,27 +27,13 @@
},
"devDependencies": {
"@creativebulma/bulma-tooltip": "^1.2.0",
- "@storybook/addon-a11y": "^6.3.12",
- "@storybook/addon-actions": "^6.3.12",
- "@storybook/addon-essentials": "^6.3.12",
- "@storybook/addon-links": "^6.3.12",
- "@storybook/preact": "^6.3.12",
- "@storybook/preset-scss": "^1.0.3",
- "@types/enzyme": "^3.10.11",
- "@typescript-eslint/eslint-plugin": "^5.3.0",
- "@typescript-eslint/parser": "^5.3.0",
"bulma": "^0.9.3",
"bulma-checkbox": "^1.1.1",
"bulma-radio": "^1.1.1",
- "enzyme": "^3.11.0",
- "enzyme-adapter-preact-pure": "^3.2.0",
- "eslint": "^8.1.0",
- "eslint-config-preact": "^1.2.0",
"jssha": "^3.2.0",
"preact-cli": "^3.3.1",
"sass": "1.32.13",
"sass-loader": "^10",
- "sirv-cli": "^1.0.14",
"typescript": "^4.5.4"
}
}
diff --git a/packages/anastasis-webui/src/components/picker/DurationPicker.tsx b/packages/anastasis-webui/src/components/picker/DurationPicker.tsx
index 8a1faf4d0..dc4a13a44 100644
--- a/packages/anastasis-webui/src/components/picker/DurationPicker.tsx
+++ b/packages/anastasis-webui/src/components/picker/DurationPicker.tsx
@@ -21,7 +21,7 @@
import { h, VNode } from "preact";
import { useState } from "preact/hooks";
-import { useTranslator } from "../../i18n";
+import { useTranslator } from "../../i18n/index.js";
import "../../scss/DurationPicker.scss";
export interface Props {
diff --git a/packages/anastasis-webui/src/hooks/use-anastasis-reducer.ts b/packages/anastasis-webui/src/hooks/use-anastasis-reducer.ts
index 1b77db38f..1ff3f66fa 100644
--- a/packages/anastasis-webui/src/hooks/use-anastasis-reducer.ts
+++ b/packages/anastasis-webui/src/hooks/use-anastasis-reducer.ts
@@ -323,7 +323,7 @@ export function useAnastasisReducer(): AnastasisReducerApi {
},
});
},
- async discoverMore(): Promise<void> {},
+ async discoverMore(): Promise<void> { },
async startRecover() {
let s: ReducerState;
if (remoteReducer) {
@@ -403,7 +403,7 @@ export function useAnastasisReducer(): AnastasisReducerApi {
}
class ReducerTxImpl implements ReducerTransactionHandle {
- constructor(public transactionState: ReducerState) {}
+ constructor(public transactionState: ReducerState) { }
async transition(action: string, args: any): Promise<ReducerState> {
let s: ReducerState;
if (remoteReducer) {
diff --git a/packages/anastasis-webui/src/pages/home/AddingProviderScreen.tsx b/packages/anastasis-webui/src/pages/home/AddingProviderScreen.tsx
index d85aa5974..3f3abdb54 100644
--- a/packages/anastasis-webui/src/pages/home/AddingProviderScreen.tsx
+++ b/packages/anastasis-webui/src/pages/home/AddingProviderScreen.tsx
@@ -59,6 +59,26 @@ export function AddingProviderScreen({ providerType, onCancel }: Props): VNode {
? authMethods[providerType].label
: undefined;
+ const allAuthProviders =
+ !reducer ||
+ !reducer.currentReducerState ||
+ reducer.currentReducerState.reducer_type === "error" ||
+ !reducer.currentReducerState.authentication_providers
+ ? {}
+ : reducer.currentReducerState.authentication_providers;
+ const authProviders = Object.keys(allAuthProviders).filter((provUrl) => {
+ const p = allAuthProviders[provUrl];
+ if (!providerLabel) {
+ return p && "currency" in p;
+ } else {
+ return (
+ p &&
+ "currency" in p &&
+ p.methods.findIndex((m) => m.type === providerType) !== -1
+ );
+ }
+ });
+
//FIXME: move this timeout logic into a hook
const timeout = useRef<number | undefined>(undefined);
useEffect(() => {
@@ -69,17 +89,22 @@ export function AddingProviderScreen({ providerType, onCancel }: Props): VNode {
try {
setTesting(true);
await testProvider(url, providerType);
- // this is use as tested but everything when ok
- // undefined will mean that the field is not dirty
setError("");
} catch (e) {
- console.log("tuvieja", e);
if (e instanceof Error) setError(e.message);
}
setTesting(false);
}, 200);
}, [providerURL, reducer]);
+ async function addProvider(provider_url: string): Promise<void> {
+ await reducer?.transition("add_provider", { provider_url });
+ onCancel();
+ }
+ function deleteProvider(provider_url: string): void {
+ reducer?.transition("delete_provider", { provider_url });
+ }
+
if (!reducer) {
return <div>no reducer in context</div>;
}
@@ -91,29 +116,6 @@ export function AddingProviderScreen({ providerType, onCancel }: Props): VNode {
return <div>invalid state</div>;
}
- async function addProvider(provider_url: string): Promise<void> {
- await reducer?.transition("add_provider", { provider_url });
- onCancel();
- }
- function deleteProvider(provider_url: string): void {
- reducer?.transition("delete_provider", { provider_url });
- }
-
- const allAuthProviders =
- reducer.currentReducerState.authentication_providers || {};
- const authProviders = Object.keys(allAuthProviders).filter((provUrl) => {
- const p = allAuthProviders[provUrl];
- if (!providerLabel) {
- return p && "currency" in p;
- } else {
- return (
- p &&
- "currency" in p &&
- p.methods.findIndex((m) => m.type === providerType) !== -1
- );
- }
- });
-
let errors = !providerURL ? "Add provider URL" : undefined;
let url: string | undefined;
try {
@@ -190,7 +192,9 @@ export function AddingProviderScreen({ providerType, onCancel }: Props): VNode {
{authProviders.map((k) => {
const p = allAuthProviders[k] as AuthenticationProviderStatusOk;
- return <TableRow url={k} info={p} onDelete={deleteProvider} />;
+ return (
+ <TableRow key={k} url={k} info={p} onDelete={deleteProvider} />
+ );
})}
</div>
</AnastasisClientFrame>
diff --git a/packages/anastasis-webui/src/pages/home/style.css b/packages/anastasis-webui/src/pages/home/style.css
deleted file mode 100644
index e69de29bb..000000000
--- a/packages/anastasis-webui/src/pages/home/style.css
+++ /dev/null
diff --git a/packages/anastasis-webui/src/utils/index.tsx b/packages/anastasis-webui/src/utils/index.tsx
index 2e502cacb..a59b19323 100644
--- a/packages/anastasis-webui/src/utils/index.tsx
+++ b/packages/anastasis-webui/src/utils/index.tsx
@@ -1,6 +1,4 @@
-/* eslint-disable @typescript-eslint/camelcase */
import {
- AuthenticationProviderStatus,
AuthenticationProviderStatusError,
AuthenticationProviderStatusOk,
BackupStates,
@@ -9,7 +7,11 @@ import {
ReducerStateRecovery,
} from "@gnu-taler/anastasis-core";
import { FunctionalComponent, h, VNode } from "preact";
-import { AnastasisProvider } from "../context/anastasis";
+import { AnastasisProvider } from "../context/anastasis.js";
+
+const noop = async (): Promise<void> => {
+ return;
+};
export function createExample<Props>(
Component: FunctionalComponent<Props>,
@@ -21,39 +23,23 @@ export function createExample<Props>(
<AnastasisProvider
value={{
currentReducerState,
- discoverMore: async () => {},
- discoverStart: async () => {},
+ discoverMore: noop,
+ discoverStart: noop,
discoveryState: {
state: "none",
},
currentError: undefined,
- back: async () => {
- null;
- },
- dismissError: async () => {
- null;
- },
- reset: () => {
- null;
- },
- runTransaction: async () => {
- null;
- },
- startBackup: () => {
- null;
- },
- startRecover: () => {
- null;
- },
- transition: async () => {
- null;
- },
+ back: noop,
+ dismissError: noop,
+ reset: noop,
+ runTransaction: noop,
+ startBackup: noop,
+ startRecover: noop,
+ transition: noop,
exportState: () => {
return "{}";
},
- importState(s: string) {
- /* do nothing */
- },
+ importState: noop,
}}
>
<Component {...args} />
diff --git a/packages/anastasis-webui/tsconfig.json b/packages/anastasis-webui/tsconfig.json
index b21a04318..2d60fd47a 100644
--- a/packages/anastasis-webui/tsconfig.json
+++ b/packages/anastasis-webui/tsconfig.json
@@ -3,7 +3,10 @@
/* Basic Options */
"target": "ES6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */,
"module": "ESNext" /* Specify module code generation: 'none', commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */,
- // "lib": [], /* Specify library files to be included in the compilation: */
+ "lib": [
+ "es2021",
+ "dom"
+ ], /* Specify library files to be included in the compilation: */
// "allowJs": true /* Allow javascript files to be compiled. */,
// "checkJs": true, /* Report errors in .js files. */
"jsx": "react" /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */,