Merge pull request #3605 from ajaysehwal/fix-bbqr

fix: Add share icon for BBQr codes and remove speed control
This commit is contained in:
Evan Kaloudis
2026-01-30 14:41:49 -05:00
committed by GitHub
3 changed files with 43 additions and 21 deletions
+22 -18
View File
@@ -185,7 +185,8 @@ export default class CashuTokenView extends React.Component<
selectedIndex,
cashuBBQrParts,
cashuFrameIndex,
cashuBcurPart
cashuBcurPart,
isTokenTooLarge
} = this.state;
const { mintUrls, addMint, claimToken, loading, errorAddingMint } =
CashuStore!!;
@@ -208,6 +209,14 @@ export default class CashuTokenView extends React.Component<
const haveMint = mintUrls.includes(mint);
const hasOpenChannels = ChannelsStore?.channels?.length > 0;
const isSingleFrameSelected = !isTokenTooLarge && selectedIndex === 0;
const isBcurSelected =
(!isTokenTooLarge && selectedIndex === 1) ||
(isTokenTooLarge && selectedIndex === 0);
const isBbqrSelected =
(!isTokenTooLarge && selectedIndex === 2) ||
(isTokenTooLarge && selectedIndex === 1);
const qrButton = () => (
<Text
style={{
@@ -254,7 +263,7 @@ export default class CashuTokenView extends React.Component<
</Text>
);
const bcurButton = () => {
const bcurIndex = this.state.isTokenTooLarge ? 0 : 1;
const bcurIndex = isTokenTooLarge ? 0 : 1;
return (
<Text
style={{
@@ -271,7 +280,7 @@ export default class CashuTokenView extends React.Component<
};
const bbqrButton = () => {
const bbqrIndex = this.state.isTokenTooLarge ? 1 : 2;
const bbqrIndex = isTokenTooLarge ? 1 : 2;
return (
<Text
style={{
@@ -288,7 +297,7 @@ export default class CashuTokenView extends React.Component<
};
const qrButtons: any = [
!this.state.isTokenTooLarge && { element: singleButton },
!isTokenTooLarge && { element: singleButton },
{ element: bcurButton },
{ element: bbqrButton }
].filter(Boolean);
@@ -481,28 +490,23 @@ export default class CashuTokenView extends React.Component<
>
<CollapsedQR
value={
!this.state.isTokenTooLarge
? selectedIndex === 0
? `cashu:${token}`
: selectedIndex === 1
? cashuBcurPart
: cashuBBQrParts[
cashuFrameIndex
]
: selectedIndex === 0
isSingleFrameSelected
? `cashu:${token}`
: isBcurSelected
? cashuBcurPart
: cashuBBQrParts[cashuFrameIndex]
}
copyValue={`cashu:${token}`}
iconOnly
showShare={
!this.state.isTokenTooLarge &&
selectedIndex === 0
isSingleFrameSelected ||
(isBbqrSelected &&
cashuBBQrParts.length === 1)
}
showSpeed={
this.state.isTokenTooLarge ||
(!this.state.isTokenTooLarge &&
selectedIndex > 0)
isBcurSelected ||
(isBbqrSelected &&
cashuBBQrParts.length === 1)
}
truncateLongValue
expanded
+10 -1
View File
@@ -376,7 +376,16 @@ export default class PSBT extends React.Component<PSBTProps, PSBTState> {
? bbqrParts[frameIndex]
: bcurPart
}
showSpeed={selectedIndex !== 0}
showSpeed={
selectedIndex === 1 ||
(selectedIndex === 2 &&
bbqrParts.length > 1)
}
showShare={
selectedIndex === 0 ||
(selectedIndex === 2 &&
bbqrParts.length === 1)
}
copyValue={fundedPsbt}
truncateLongValue
expanded
+11 -2
View File
@@ -451,11 +451,20 @@ export default class TxHex extends React.Component<TxHexProps, TxHexState> {
? bbqrParts[frameIndex]
: bcurPart
}
showSpeed={selectedIndex !== 0}
showSpeed={
selectedIndex === 1 ||
(selectedIndex === 2 &&
bbqrParts.length > 1)
}
showShare={
selectedIndex === 0 ||
(selectedIndex === 2 &&
bbqrParts.length === 1)
}
copyValue={txHex}
truncateLongValue
expanded
iconOnly={selectedIndex !== 0}
iconOnly
qrAnimationSpeed={qrAnimationSpeed}
onQRAnimationSpeedChange={(
speed