Skip to content

Commit bf8dd8c

Browse files
Merge pull request #59 from spknetwork/copy-btc-info
copy btc info
2 parents fd9654e + 2c95f38 commit bf8dd8c

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

src/common/components/profile-card/_index.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@
114114
.b-info{
115115
background-color: rgb(14, 13, 13);
116116
padding: 5px;
117+
cursor: pointer;
117118
// background-color: black;
118119
}
119120
}

src/common/components/profile-card/index.tsx

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ import { getRelationshipBetweenAccounts } from "../../api/bridge";
4040
import { Skeleton } from "../skeleton";
4141
import { ResourceCreditsInfo } from "../resource-credits";
4242
import { getBtcWalletBalance, getUserByUsername } from "../../api/breakaway";
43+
import { copyContent } from "../../img/svg";
44+
import { Button } from "react-bootstrap";
45+
import { success } from "../feedback";
4346

4447
interface Props {
4548
global: Global;
@@ -172,6 +175,16 @@ export const ProfileCard = (props: Props) => {
172175

173176
const formatString = (str: string) => str?.length <= 20 ? str : str?.slice(0, 10) + "..." + str?.slice(-10);
174177

178+
const copyToClipboard = (text: string) => {
179+
const textField = document.createElement('textarea');
180+
textField.innerText = text;
181+
document.body.appendChild(textField);
182+
textField.select();
183+
document.execCommand('copy');
184+
textField.remove();
185+
success("Copied to clipboard");
186+
}
187+
175188
const vPower = votingPower(account);
176189

177190
const isMyProfile = activeUser && activeUser.username === account.name && activeUser.data.__loaded && activeUser.data.profile;
@@ -212,19 +225,22 @@ export const ProfileCard = (props: Props) => {
212225
<h5>BTC info</h5>
213226
<div className="btc-info">
214227
<span>Address:</span>
215-
<span className="b-info">{formatString(jsonMetaData?.bitcoin.address)}</span>
228+
<span className="b-info" onClick={()=> copyToClipboard(jsonMetaData?.bitcoin.address)}>{formatString(jsonMetaData?.bitcoin.address)}{copyContent}</span>
216229
</div>
217230
<div className="btc-info">
218231
<span>Btc Balance:</span>
219232
<span className="b-info">{btcBalance?.toFixed(2)}</span>
220233
</div>
221234
<div className="btc-info">
222235
<span>Message:</span>
223-
<span className="b-info">{jsonMetaData?.bitcoin.message}</span>
236+
<span className="b-info" onClick={()=> copyToClipboard(jsonMetaData?.bitcoin.message)}>{jsonMetaData?.bitcoin.message}{copyContent}</span>
224237
</div>
225238
<div className="btc-info">
226239
<span>Signature:</span>
227-
<span className="b-info">{formatString(jsonMetaData?.bitcoin.signature)}</span>
240+
<span className="b-info" onClick={()=> copyToClipboard(jsonMetaData?.bitcoin.signature)}>{formatString(jsonMetaData?.bitcoin.signature)}{copyContent}</span>
241+
<a href="https://www.verifybitcoinmessage.com/" target="_blank" rel="noopener noreferrer">
242+
Click to Verify signature
243+
</a>
228244
</div>
229245
</div> : <></>) }
230246

0 commit comments

Comments
 (0)