aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-07-16 12:00:39 -0300
committerSebastian <sebasjm@gmail.com>2021-07-16 12:00:41 -0300
commit56902288c6ce498cdfbd80ac9036cd457872a73b (patch)
treed8c6fa70edcaadc33859df4817ab40c4f469057e /packages/taler-wallet-webextension
parent2b9686ccc69d39140d83efe0bfc6ebb2b77ff140 (diff)
added fake header to stories
Diffstat (limited to 'packages/taler-wallet-webextension')
-rw-r--r--packages/taler-wallet-webextension/.storybook/preview.js36
-rw-r--r--packages/taler-wallet-webextension/src/components/styled/index.tsx19
-rw-r--r--packages/taler-wallet-webextension/src/popup/Balance.stories.tsx4
-rw-r--r--packages/taler-wallet-webextension/src/popup/BalancePage.tsx3
-rw-r--r--packages/taler-wallet-webextension/src/popup/Popup.stories.tsx50
-rw-r--r--packages/taler-wallet-webextension/src/popup/popup.tsx23
6 files changed, 112 insertions, 23 deletions
diff --git a/packages/taler-wallet-webextension/.storybook/preview.js b/packages/taler-wallet-webextension/.storybook/preview.js
index 0fda6ac0e..af768dde8 100644
--- a/packages/taler-wallet-webextension/.storybook/preview.js
+++ b/packages/taler-wallet-webextension/.storybook/preview.js
@@ -15,7 +15,9 @@
*/
import { setupI18n } from "@gnu-taler/taler-util"
+import { Fragment } from "preact"
import { strings } from '../src/i18n/strings.ts'
+import { NavBar } from '../src/popup/popup'
const mockConfig = {
backendURL: 'http://demo.taler.net',
@@ -45,12 +47,28 @@ export const globalTypes = {
export const decorators = [
- (Story, { globals }) => {
- setupI18n(globals.locale, strings);
- return <Story />
- },
(Story, { kind }) => {
if (kind.startsWith('popup')) {
+
+ function Body() {
+ const isTestingHeader = (/.*\/header\/?.*/.test(kind));
+ if (isTestingHeader) {
+ // simple box with correct width and height
+ return <div style={{ width: 400, height: 320 }}>
+ <Story />
+ </div>
+ } else {
+ const path = !isTestingHeader ? /popup(\/.*)\/.*/.exec(kind)[1] : ''
+ // add a fake header so it looks similar
+ return <Fragment>
+ <NavBar path={path} devMode={path === '/dev'} />
+ <div style={{ padding: 8, width: 'calc(400px - 16px)', height: 'calc(320px - 34px - 16px)' }}>
+ <Story />
+ </div>
+ </Fragment>
+ }
+ }
+
return <div class="popup-container">
<style>{`
html {
@@ -78,8 +96,8 @@ export const decorators = [
font-family: Arial, Helvetica, sans-serif;
}`}
</style>
- <div style={{ padding: 8, width: 'calc(400px - 16px - 2px)', height: 'calc(320px - 34px - 16px - 2px)', border: 'black solid 1px' }}>
- <Story />
+ <div style={{ width: 400, border: 'black solid 1px' }}>
+ <Body />
</div>
</div>
}
@@ -94,6 +112,10 @@ export const decorators = [
<h1>this story is not under wallet or popup, check title property</h1>
<Story />
</div>
- }
+ },
+ (Story, { globals }) => {
+ setupI18n(globals.locale, strings);
+ return <Story />
+ },
// (Story) => <ConfigContextProvider value={mockConfig}> <Story /> </ConfigContextProvider>
];
diff --git a/packages/taler-wallet-webextension/src/components/styled/index.tsx b/packages/taler-wallet-webextension/src/components/styled/index.tsx
index 11a0d014f..8afbb6c9a 100644
--- a/packages/taler-wallet-webextension/src/components/styled/index.tsx
+++ b/packages/taler-wallet-webextension/src/components/styled/index.tsx
@@ -240,4 +240,23 @@ export const ErrorBox = styled.div`
}
}
`
+export const PopupNavigation = styled.div`
+ background-color: #033;
+
+ & > a {
+ color: #f8faf7;
+ padding-top: 0.7em;
+ display: inline-block;
+ width: calc(400px / 5);
+ padding-bottom: 0.7em;
+ text-align: center;
+ text-decoration: none;
+ }
+
+ & > a.active {
+ background-color: #f8faf7;
+ color: #000;
+ font-weight: bold;
+ }
+`
diff --git a/packages/taler-wallet-webextension/src/popup/Balance.stories.tsx b/packages/taler-wallet-webextension/src/popup/Balance.stories.tsx
index b661ac679..a1b5e7c52 100644
--- a/packages/taler-wallet-webextension/src/popup/Balance.stories.tsx
+++ b/packages/taler-wallet-webextension/src/popup/Balance.stories.tsx
@@ -19,9 +19,7 @@
* @author Sebastian Javier Marchano (sebasjm)
*/
-import { ProviderPaymentType } from '@gnu-taler/taler-wallet-core';
-import { addDays } from 'date-fns';
-import { ComponentChild, ComponentChildren, FunctionalComponent, h } from 'preact';
+import { ComponentChildren, FunctionalComponent, h } from 'preact';
import { BalanceView as TestedComponent } from './BalancePage';
export default {
diff --git a/packages/taler-wallet-webextension/src/popup/BalancePage.tsx b/packages/taler-wallet-webextension/src/popup/BalancePage.tsx
index 24744d3f2..cff17af1a 100644
--- a/packages/taler-wallet-webextension/src/popup/BalancePage.tsx
+++ b/packages/taler-wallet-webextension/src/popup/BalancePage.tsx
@@ -16,7 +16,6 @@
import {
amountFractionalBase, Amounts,
-
Balance, BalancesResponse,
i18n
} from "@gnu-taler/taler-util";
@@ -41,7 +40,7 @@ export function BalanceView({ balance, Linker }: BalanceViewProps) {
if (balance.error) {
return (
- <div class="balance">
+ <div>
<p>{i18n.str`Error: could not retrieve balance information.`}</p>
<p>
Click <Linker pageName="welcome.html">here</Linker> for help and
diff --git a/packages/taler-wallet-webextension/src/popup/Popup.stories.tsx b/packages/taler-wallet-webextension/src/popup/Popup.stories.tsx
new file mode 100644
index 000000000..ec3634d9b
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/popup/Popup.stories.tsx
@@ -0,0 +1,50 @@
+/*
+ This file is part of GNU Taler
+ (C) 2021 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 { Fragment, FunctionalComponent } from 'preact';
+import { NavBar as TestedComponent } from './popup';
+
+export default {
+ title: 'popup/header',
+ // component: TestedComponent,
+ argTypes: {
+ onRetry: { action: 'onRetry' },
+ onDelete: { action: 'onDelete' },
+ onBack: { action: 'onBack' },
+ }
+};
+
+
+function createExample<Props>(Component: FunctionalComponent<Props>, props: Partial<Props>) {
+ const r = (args: any) => <Component {...args} />
+ r.args = props
+ return r
+}
+
+export const OnBalance = createExample(TestedComponent, {
+ devMode:false,
+ path:'/balance'
+});
+
+export const OnHistoryWithDevMode = createExample(TestedComponent, {
+ devMode:true,
+ path:'/history'
+});
diff --git a/packages/taler-wallet-webextension/src/popup/popup.tsx b/packages/taler-wallet-webextension/src/popup/popup.tsx
index f7b3cec94..32ff10a85 100644
--- a/packages/taler-wallet-webextension/src/popup/popup.tsx
+++ b/packages/taler-wallet-webextension/src/popup/popup.tsx
@@ -28,6 +28,7 @@ import { i18n } from "@gnu-taler/taler-util";
import { ComponentChildren, JSX } from "preact";
import Match from "preact-router/match";
import { useDevContext } from "../context/useDevContext";
+import { PopupNavigation } from '../components/styled'
export enum Pages {
balance = '/balance',
@@ -58,18 +59,18 @@ function Tab(props: TabProps): JSX.Element {
);
}
+export function NavBar({devMode, path}:{path:string, devMode:boolean}) {
+ return <PopupNavigation>
+ <Tab target="/balance" current={path}>{i18n.str`Balance`}</Tab>
+ <Tab target="/history" current={path}>{i18n.str`History`}</Tab>
+ <Tab target="/backup" current={path}>{i18n.str`Backup`}</Tab>
+ <Tab target="/settings" current={path}>{i18n.str`Settings`}</Tab>
+ {devMode && <Tab target="/dev" current={path}>{i18n.str`Dev`}</Tab>}
+ </PopupNavigation>
+}
+
export function WalletNavBar() {
const { devMode } = useDevContext()
- return <Match>{({ path }: any) => {
- return (
- <div class="nav" id="header">
- <Tab target="/balance" current={path}>{i18n.str`Balance`}</Tab>
- <Tab target="/history" current={path}>{i18n.str`History`}</Tab>
- <Tab target="/backup" current={path}>{i18n.str`Backup`}</Tab>
- <Tab target="/settings" current={path}>{i18n.str`Settings`}</Tab>
- {devMode && <Tab target="/dev" current={path}>{i18n.str`Dev`}</Tab>}
- </div>
- )
- }}</Match>
+ return <Match>{({ path }: any) => <NavBar devMode={devMode} path={path} />}</Match>
}