Re: [w3c/payment-request] Dont block UI if .updateWith() not called (closes #589) (#591)

marcoscaceres commented on this pull request.



> +              need to call <a>updateWith()</a> and provide a
+              <a>PaymentDetailsUpdate</a> dictionary, or a promise for one,
+              containing changed values that the <a>user agent</a> presents to
+              the user.
+            </p>
+            <p>
+              To prevent the user interface from blocking (and to reflect
+              changes made by the end-user through the UI), developers need to
+              immediately call <a>updateWith()</a>. If they don't,
+              <a>[[\didUpdate]]</a> becomes true and <a>updateWith()</a>
+              will throw.
+            </p>
+            <pre class="example" title="how to use `updateWith()` correctly.">
+              // ❌ Bad - this won't work!
+              request.onshippingaddresschange = async ev =&gt; {
+                // `await` goes to next tick, so [[didUpdate]] is now true.

> Although that calls into question whether didUpdate is the right name, since nothing actually updated.

Rethinking this: it actually did update... but instead of using the developer's `details`, the sheet used the details that were provided by the payment sheet itself. So maybe `updatedUI` might be better.
 
@dlongley, I'd prefer not to flip it. I don't want to rewrite it :( 

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/payment-request/pull/591#discussion_r135438654

Received on Monday, 28 August 2017 04:10:54 UTC