mirror of
https://github.com/getAlby/hub.git
synced 2026-08-13 12:33:39 +02:00
* feat: just in time channels with lsps2 * fix: clarify JIT receive channel fee * fix: fees * fix: fees 2 * fix: don't show low inbound when LSPS2 is active * fix: remove the receive limit below the input if LSPS2 is being used * fix: simplify * fix: bring back fee % for outgoing * fix: remove unneeded changes * fix: typo * fix: unneeded * fix: don't show open first channel is LSPS2 * feat: clearer JIT channel fee copy on receive screen * fix: add LSPS2 var info * fix: don't duplicate JIT fee hint on create invoice form * fix: make paymentDone a standard boolean * fix: update to golang:1.26 in Dockerfile * feat: read LSPS2 sources from channel suggestions, set minimum receive amount, update guide link * docs: update LDK_LSPS2_ADDRESSES to be used as an override * fix: only show minimum jit receive amount on validation error * fix: add more detail to receive error when receiving low amounts with jit * fix: do not use JIT when user has public channels * feat: add option to disable JIT * fix: isTrusted check, add jit property to event * fix: do not require node restart for toggling JIT * chore: simplify JIT alert * chore: add guide link on node settings JIT description * feat: fetch the lsp2info to have access to params like minimum/maximum payment size * refactor: share single learn-more link across JIT fee hint branches * fix: remove variable amount invoice support * fix: use lsps2info for min payment size and remove channelPeerSuggestion usage of minimumChannelSize * fix: only do amount validation according to lsps2Info values if jit is enabled in settings * feat: add jit first payment fee alert on receive via lightning address * fix: remove unnecessary conditional * fix: ensure at least one sat is left over when opening JIT channel * chore: remove hardcoded suggestions * chore: rename JIT enabled config variable * fix: ui checks when JIT is disabled * fix: amount input validation message * fix: formatting --------- Co-authored-by: anon <anon@anon.com> Co-authored-by: saunter <68239231+stackingsaunter@users.noreply.github.com> Co-authored-by: fmar <fmar@fmar> Co-authored-by: René Aaron <rene@twentyuno.net> Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
64 lines
2.2 KiB
TypeScript
64 lines
2.2 KiB
TypeScript
import { CopyIcon, LinkIcon, ReceiptTextIcon, ZapIcon } from "lucide-react";
|
|
import FirstChannelJitAlert from "src/components/FirstChannelJitAlert";
|
|
import Loading from "src/components/Loading";
|
|
import QRCode from "src/components/QRCode";
|
|
import { Button } from "src/components/ui/button";
|
|
import { Card, CardContent, CardFooter } from "src/components/ui/card";
|
|
import { LinkButton } from "src/components/ui/custom/link-button";
|
|
import { Separator } from "src/components/ui/separator";
|
|
import { useAlbyMe } from "src/hooks/useAlbyMe";
|
|
import { useInfo } from "src/hooks/useInfo";
|
|
import { copyToClipboard } from "src/lib/clipboard";
|
|
|
|
export function ReceiveToLightning() {
|
|
const { data: info } = useInfo();
|
|
const { data: me } = useAlbyMe();
|
|
|
|
if (!info || !me) {
|
|
return <Loading />;
|
|
}
|
|
|
|
return (
|
|
<div className="grid gap-2">
|
|
<FirstChannelJitAlert />
|
|
<Card>
|
|
<CardContent className="flex flex-col items-center gap-6">
|
|
<QRCode value={me.lightning_address} className="w-full h-auto" />
|
|
<p className="text-center font-medium text-lg break-all">
|
|
{me.lightning_address}
|
|
</p>
|
|
</CardContent>
|
|
<CardFooter className="flex flex-col gap-2 pt-2">
|
|
<Button
|
|
variant="secondary"
|
|
onClick={() => {
|
|
copyToClipboard(me.lightning_address);
|
|
}}
|
|
className="w-full"
|
|
>
|
|
<CopyIcon className="size-4" /> Copy Lightning Address
|
|
</Button>
|
|
<Separator className="my-4" />
|
|
<LinkButton to="invoice" variant="outline" className="w-full">
|
|
<ZapIcon className="w-4 h-4 mr-2" />
|
|
Create Invoice
|
|
</LinkButton>
|
|
{info.supportsBolt12 && (
|
|
<LinkButton
|
|
to="/wallet/receive/offer"
|
|
variant="outline"
|
|
className="w-full"
|
|
>
|
|
<ReceiptTextIcon className="h-4 w-4 mr-2" />
|
|
Lightning Offer
|
|
</LinkButton>
|
|
)}
|
|
<LinkButton to="onchain" variant="outline" className="w-full">
|
|
<LinkIcon className="w-4 h-4 mr-2" />
|
|
Receive from On-chain / Other Cryptocurrency
|
|
</LinkButton>
|
|
</CardFooter>
|
|
</Card>
|
|
</div>
|
|
);
|
|
}
|