diff options
| author | Florian Dold <florian.dold@gmail.com> | 2020-05-15 12:53:35 +0530 | 
|---|---|---|
| committer | Florian Dold <florian.dold@gmail.com> | 2020-05-15 12:53:35 +0530 | 
| commit | 35c83414f9e0af11012c1a2e00672d2a7c1856ae (patch) | |
| tree | be7d1ad1787706400aaac931c00778b7699a1d1b /src/webex | |
| parent | cda75feb5bf7623439f3f5f8da0c6da0c164b3fb (diff) | |
fix issues in the webextension refund UI
Diffstat (limited to 'src/webex')
| -rw-r--r-- | src/webex/messages.ts | 6 | ||||
| -rw-r--r-- | src/webex/pageEntryPoint.ts | 4 | ||||
| -rw-r--r-- | src/webex/pages/refund.tsx | 4 | ||||
| -rw-r--r-- | src/webex/wxApi.ts | 15 | ||||
| -rw-r--r-- | src/webex/wxBackend.ts | 11 | 
5 files changed, 25 insertions, 15 deletions
| diff --git a/src/webex/messages.ts b/src/webex/messages.ts index 179eec88a..932636f1a 100644 --- a/src/webex/messages.ts +++ b/src/webex/messages.ts @@ -122,7 +122,7 @@ export interface MessageMap {      response: void;    };    "get-purchase-details": { -    request: { contractTermsHash: string }; +    request: { proposalId: string };      response: walletTypes.PurchaseDetails;    };    "accept-tip": { @@ -135,7 +135,7 @@ export interface MessageMap {    };    "accept-refund": {      request: { refundUrl: string }; -    response: string; +    response: { contractTermsHash: string; proposalId: string };    };    "abort-failed-payment": {      request: { contractTermsHash: string }; @@ -169,7 +169,7 @@ export interface MessageMap {      response: walletTypes.ExtendedPermissionsResponse;    };    "get-extended-permissions": { -    request: { }; +    request: {};      response: walletTypes.ExtendedPermissionsResponse;    };  } diff --git a/src/webex/pageEntryPoint.ts b/src/webex/pageEntryPoint.ts index b9bdba06e..9fd1d36f1 100644 --- a/src/webex/pageEntryPoint.ts +++ b/src/webex/pageEntryPoint.ts @@ -25,6 +25,7 @@ import { createPopup } from "./pages/popup";  import { createWithdrawPage } from "./pages/withdraw";  import { createWelcomePage } from "./pages/welcome";  import { createPayPage } from "./pages/pay"; +import { createRefundPage } from "./pages/refund";  function main(): void {    try { @@ -47,6 +48,9 @@ function main(): void {        case "pay.html":          mainElement = createPayPage();          break; +      case "refund.html": +        mainElement = createRefundPage(); +        break;        default:          throw Error(`page '${page}' not implemented`);      } diff --git a/src/webex/pages/refund.tsx b/src/webex/pages/refund.tsx index 621a286bb..c5d6a00df 100644 --- a/src/webex/pages/refund.tsx +++ b/src/webex/pages/refund.tsx @@ -36,9 +36,9 @@ function RefundStatusView(props: { talerRefundUri: string }): JSX.Element {    useEffect(() => {      const doFetch = async (): Promise<void> => {        try { -        const hc = await wxApi.applyRefund(props.talerRefundUri); +        const result = await wxApi.applyRefund(props.talerRefundUri);          setApplied(true); -        const r = await wxApi.getPurchaseDetails(hc); +        const r = await wxApi.getPurchaseDetails(result.proposalId);          setPurchaseDetails(r);        } catch (e) {          console.error(e); diff --git a/src/webex/wxApi.ts b/src/webex/wxApi.ts index 0bd444856..1823f662c 100644 --- a/src/webex/wxApi.ts +++ b/src/webex/wxApi.ts @@ -246,9 +246,9 @@ export function returnCoins(args: {   * the contract terms hash.   */  export function getPurchaseDetails( -  contractTermsHash: string, +  proposalId: string,  ): Promise<PurchaseDetails> { -  return callBackend("get-purchase-details", { contractTermsHash }); +  return callBackend("get-purchase-details", { proposalId });  }  /** @@ -268,7 +268,9 @@ export function acceptTip(talerTipUri: string): Promise<void> {  /**   * Download a refund and accept it.   */ -export function applyRefund(refundUrl: string): Promise<string> { +export function applyRefund( +  refundUrl: string, +): Promise<{ contractTermsHash: string; proposalId: string }> {    return callBackend("accept-refund", { refundUrl });  } @@ -329,7 +331,9 @@ export function getDiagnostics(): Promise<WalletDiagnostics> {  /**   * Get diagnostics information   */ -export function setExtendedPermissions(value: boolean): Promise<ExtendedPermissionsResponse> { +export function setExtendedPermissions( +  value: boolean, +): Promise<ExtendedPermissionsResponse> {    return callBackend("set-extended-permissions", { value });  } @@ -340,7 +344,6 @@ export function getExtendedPermissions(): Promise<ExtendedPermissionsResponse> {    return callBackend("get-extended-permissions", {});  } -  export function onUpdateNotification(f: () => void): () => void {    const port = chrome.runtime.connect({ name: "notifications" });    const listener = (): void => { @@ -350,4 +353,4 @@ export function onUpdateNotification(f: () => void): () => void {    return () => {      port.onMessage.removeListener(listener);    }; -}
\ No newline at end of file +} diff --git a/src/webex/wxBackend.ts b/src/webex/wxBackend.ts index f56cba176..0e8b53070 100644 --- a/src/webex/wxBackend.ts +++ b/src/webex/wxBackend.ts @@ -212,11 +212,14 @@ async function handleMessage(        return resp;      }      case "get-purchase-details": { -      const contractTermsHash = detail.contractTermsHash; -      if (!contractTermsHash) { -        throw Error("contractTermsHash missing"); +      const proposalId = detail.proposalId; +      if (!proposalId) { +        throw Error("proposalId missing");        } -      return needsWallet().getPurchaseDetails(contractTermsHash); +      if (typeof proposalId !== "string")  { +        throw Error("proposalId must be a string"); +      } +      return needsWallet().getPurchaseDetails(proposalId);      }      case "accept-refund":        return needsWallet().applyRefund(detail.refundUrl); | 
