diff options
author | Sebastian <sebasjm@gmail.com> | 2024-04-16 13:04:31 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2024-04-16 13:04:31 -0300 |
commit | 80fee4ee613ccfcbf951636eaac7ef61957d312d (patch) | |
tree | 6abb2a6af02f8d7a7b2c401c9bb90cc95681bb85 /packages/taler-wallet-webextension/src/NavigationBar.tsx | |
parent | 6bb782677cd14e3ec6af249f5d8a2e93dc8e8b5f (diff) | |
download | wallet-core-80fee4ee613ccfcbf951636eaac7ef61957d312d.tar.gz wallet-core-80fee4ee613ccfcbf951636eaac7ef61957d312d.tar.bz2 wallet-core-80fee4ee613ccfcbf951636eaac7ef61957d312d.zip |
fix #8735
Diffstat (limited to 'packages/taler-wallet-webextension/src/NavigationBar.tsx')
-rw-r--r-- | packages/taler-wallet-webextension/src/NavigationBar.tsx | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/packages/taler-wallet-webextension/src/NavigationBar.tsx b/packages/taler-wallet-webextension/src/NavigationBar.tsx index 527600c96..fe348f7fb 100644 --- a/packages/taler-wallet-webextension/src/NavigationBar.tsx +++ b/packages/taler-wallet-webextension/src/NavigationBar.tsx @@ -34,6 +34,7 @@ import { } from "./components/styled/index.js"; import { useBackendContext } from "./context/backend.js"; import { useAsyncAsHook } from "./hooks/useAsyncAsHook.js"; +import searchIcon from "./svg/search_24px.inline.svg"; import qrIcon from "./svg/qr_code_24px.inline.svg"; import settingsIcon from "./svg/settings_black_24dp.inline.svg"; import warningIcon from "./svg/warning_24px.inline.svg"; @@ -55,7 +56,7 @@ type PageLocation<DynamicPart extends object> = { function replaceAll( pattern: string, vars: Record<string, string>, - values: Record<string, any>, + values: Record<string, string>, ): string { let result = pattern; for (const v in vars) { @@ -75,16 +76,20 @@ function pageDefinition<T extends object>(pattern: string): PageLocation<T> { `page definition pattern ${pattern} doesn't have any parameter`, ); - const vars = patternParams.reduce((prev, cur) => { - const pName = cur.match(/(\w+)/g); + const vars = patternParams.reduce( + (prev, cur) => { + const pName = cur.match(/(\w+)/g); - //skip things like :? in the path pattern - if (!pName || !pName[0]) return prev; - const name = pName[0]; - return { ...prev, [name]: cur }; - }, {} as Record<string, string>); + //skip things like :? in the path pattern + if (!pName || !pName[0]) return prev; + const name = pName[0]; + return { ...prev, [name]: cur }; + }, + {} as Record<string, string>, + ); - const f = (values: T): string => replaceAll(pattern, vars, values ?? {}); + const f = (values: T): string => + replaceAll(pattern, vars, (values ?? {}) as Record<string, string>); f.pattern = pattern; return f; } @@ -95,6 +100,9 @@ export const Pages = { balanceHistory: pageDefinition<{ currency?: string }>( "/balance/history/:currency?", ), + searchHistory: pageDefinition<{ currency?: string }>( + "/search/history/:currency?", + ), balanceDeposit: pageDefinition<{ amount: string }>( "/balance/deposit/:amount", ), @@ -268,6 +276,13 @@ export function WalletNavBar({ path }: { path?: WalletNavBarOptions }): VNode { <div style={{ display: "flex", paddingTop: 4, justifyContent: "right" }} > + <a href={Pages.searchHistory({})}> + <SvgIcon + title={i18n.str`Search transactions`} + dangerouslySetInnerHTML={{ __html: searchIcon }} + color="white" + /> + </a> <a href={Pages.qr}> <SvgIcon title={i18n.str`QR Reader and Taler URI`} |