diff options
| author | Adam Soltys <[email protected]> | 2026-10-15 15:24:25 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-15 15:24:25 -0700 |
| commit | 38ce0b441505d0bdd048d38c82ac95afe4d3b407 (patch) | |
| tree | 111711030a02cd8eec42c8e75c5de8c8ed1bacc5 /src/style.css | |
| parent | 46829a7a54bf21138d8bb068966f7f083ac8df4c (diff) | |
| download | coinosv3-38ce0b441505d0bdd048d38c82ac95afe4d3b407.tar.gz coinosv3-38ce0b441505d0bdd048d38c82ac95afe4d3b407.zip | |
Lightning withdraw (LNURL-withdraw): a site's withdraw lnurl in Send gets paid to you; the media pager says when a picture can't be loaded. (1) LUD-03 (Adam, 2026-10-16: "add lnurlw support"): an lnurl whose terms are a withdrawRequest — found when the pay fetch meets one (fetchPayParams throws with the terms attached, resolve() takes them up) — shows the site, their range (or the fixed amount) and description, the amount field at their max; Withdraw makes an invoice over Ark for the amount (arkLnInvoice), hands it to their callback with k1 (submitWithdraw), and watches it (arkLnWatch): "has your invoice for…", then "Received …" on settlement; their refusal in their words, with Try again; Back before it is paid stops watching. An amount outside their range is told the range, nothing sent; a watch-only device says it can't receive. LUD-17 schemes lnurlw:// and lnurlp:// (and lightning: before them) are the URL over https, http on an onion (parseZapTarget). (2) A pager slide whose picture can't load — the server copy and then the original both failing (isolabellart's relay answering 502 that afternoon: the broken-picture glyph sat in the corner of a black slide) — hides the <img> and says "This picture couldn't be loaded" with the host, caption and controls kept (mp-gone / .mp-missing). tools/lnurl-auth-unit-test.js (lnurlw:// and lnurlp://, an onion, the terms, a pay fetch that finds a withdraw, the callback's k1 and pr, a refusal); tools/lnurl-withdraw-test.js (the zaps feature against a faked Ark and a stand-in site: the terms, max prefilled, out of range refused unsent, the invoice at the callback and watched, Received on settlement, a fixed amount with no field, Back unwatches, a refusal's reason); tools/pager-gone-picture-test.js; lnurl-auth and feed-picture-pager tests pass.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01J1Kon8bxJoHRpJdSzshCkp
Diffstat (limited to 'src/style.css')
| -rw-r--r-- | src/style.css | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/style.css b/src/style.css index 15fe4a6..4a9b191 100644 --- a/src/style.css +++ b/src/style.css @@ -1510,6 +1510,9 @@ body::after { kept a full-size texture per slide, and a flight past them stuttered. */ .mp-slide img.mp-media { touch-action: pan-x pan-y; transform-origin: center center; } .mp-slide.mp-cur img.mp-media { will-change: transform; } +.mp-slide.mp-gone img.mp-media { display: none; } +.mp-missing { display: flex; flex-direction: column; align-items: center; gap: 6px; color: rgba(255, 255, 255, .55); font-size: 15px; text-align: center; padding: 20px; } +.mp-missing-ico { font-size: 44px; opacity: .5; } /* nothing but the picture until a tap */ .mp-meta, .mp-top { opacity: 0; pointer-events: none; transition: opacity .18s; } .media-pager.show .mp-meta, .media-pager.show .mp-top { opacity: 1; pointer-events: auto; } |
