diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx')
-rw-r--r-- | packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx | 149 |
1 files changed, 81 insertions, 68 deletions
diff --git a/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx b/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx index 5c435a9a5..205e42d20 100644 --- a/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx +++ b/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx @@ -31,6 +31,86 @@ export interface Props { onDismiss: () => Promise<void>; } +function ContentByUriType({ + type, + onConfirm, +}: { + type: TalerUriType; + onConfirm: () => Promise<void>; +}) { + const { i18n } = useTranslationContext(); + switch (type) { + case TalerUriType.TalerWithdraw: + return ( + <div> + <p> + <i18n.Translate>This page has a withdrawal action.</i18n.Translate> + </p> + <Button variant="contained" color="success" onClick={onConfirm}> + <i18n.Translate>Open withdraw page</i18n.Translate> + </Button> + </div> + ); + + case TalerUriType.TalerPayTemplate: + case TalerUriType.TalerPay: + return ( + <div> + <p> + <i18n.Translate>This page has pay action.</i18n.Translate> + </p> + <Button variant="contained" color="success" onClick={onConfirm}> + <i18n.Translate>Open pay page</i18n.Translate> + </Button> + </div> + ); + case TalerUriType.TalerTip: + return ( + <div> + <p> + <i18n.Translate>This page has a tip action.</i18n.Translate> + </p> + <Button variant="contained" color="success" onClick={onConfirm}> + <i18n.Translate>Open tip page</i18n.Translate> + </Button> + </div> + ); + + case TalerUriType.TalerRefund: + return ( + <div> + <p> + <i18n.Translate>This page has a refund action.</i18n.Translate> + </p> + <Button variant="contained" color="success" onClick={onConfirm}> + <i18n.Translate>Open refund page</i18n.Translate> + </Button> + </div> + ); + + case TalerUriType.TalerDevExperiment: + case TalerUriType.TalerTemplate: + case TalerUriType.TalerPayPull: + case TalerUriType.TalerPayPush: + case TalerUriType.TalerRecovery: + case TalerUriType.Unknown: + return ( + <div> + <p> + <i18n.Translate> + This page has a malformed taler uri. + </i18n.Translate> + </p> + </div> + ); + + default: { + const error: never = type; + return null; + } + } +} + export function TalerActionFound({ url, onDismiss }: Props): VNode { const uriType = classifyTalerUri(url); const { i18n } = useTranslationContext(); @@ -43,74 +123,7 @@ export function TalerActionFound({ url, onDismiss }: Props): VNode { <Title> <i18n.Translate>Taler Action</i18n.Translate> </Title> - {uriType === TalerUriType.TalerPay && ( - <div> - <p> - <i18n.Translate>This page has pay action.</i18n.Translate> - </p> - <Button - variant="contained" - color="success" - onClick={redirectToWallet} - > - <i18n.Translate>Open pay page</i18n.Translate> - </Button> - </div> - )} - {uriType === TalerUriType.TalerWithdraw && ( - <div> - <p> - <i18n.Translate> - This page has a withdrawal action. - </i18n.Translate> - </p> - <Button - variant="contained" - color="success" - onClick={redirectToWallet} - > - <i18n.Translate>Open withdraw page</i18n.Translate> - </Button> - </div> - )} - {uriType === TalerUriType.TalerTip && ( - <div> - <p> - <i18n.Translate>This page has a tip action.</i18n.Translate> - </p> - <Button - variant="contained" - color="success" - onClick={redirectToWallet} - > - <i18n.Translate>Open tip page</i18n.Translate> - </Button> - </div> - )} - {uriType === TalerUriType.TalerRefund && ( - <div> - <p> - <i18n.Translate>This page has a refund action.</i18n.Translate> - </p> - <Button - variant="contained" - color="success" - onClick={redirectToWallet} - > - <i18n.Translate>Open refund page</i18n.Translate> - </Button> - </div> - )} - {uriType === TalerUriType.Unknown && ( - <div> - <p> - <i18n.Translate> - This page has a malformed taler uri. - </i18n.Translate> - </p> - <p>{url}</p> - </div> - )} + <ContentByUriType type={uriType} onConfirm={redirectToWallet} /> </section> <footer> <div /> |