new lbc icon
This commit is contained in:
parent
c9d7b46372
commit
83a6589cd0
60 changed files with 502 additions and 375 deletions
|
@ -50,7 +50,7 @@
|
||||||
"The LBRY URL is the exact address where people find your content (ex. lbry://myvideo).": "The LBRY URL is the exact address where people find your content (ex. lbry://myvideo).",
|
"The LBRY URL is the exact address where people find your content (ex. lbry://myvideo).": "The LBRY URL is the exact address where people find your content (ex. lbry://myvideo).",
|
||||||
"Learn more": "Learn more",
|
"Learn more": "Learn more",
|
||||||
"Name": "Name",
|
"Name": "Name",
|
||||||
"Deposit (LBC)": "Deposit (LBC)",
|
"Deposit": "Deposit",
|
||||||
"Language": "Language",
|
"Language": "Language",
|
||||||
"English": "English",
|
"English": "English",
|
||||||
"Chinese": "Chinese",
|
"Chinese": "Chinese",
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
"Enter a thumbnail URL": "Enter a thumbnail URL",
|
"Enter a thumbnail URL": "Enter a thumbnail URL",
|
||||||
"Anonymous": "Anonymous",
|
"Anonymous": "Anonymous",
|
||||||
"New channel...": "New channel...",
|
"New channel...": "New channel...",
|
||||||
"This LBC remains yours and the deposit can be undone at any time.": "This LBC remains yours and the deposit can be undone at any time.",
|
"These LBRY Credits remain yours and the deposit can be undone at any time.": "These LBRY Credits remain yours and the deposit can be undone at any time.",
|
||||||
"License (Optional)": "License (Optional)",
|
"License (Optional)": "License (Optional)",
|
||||||
"None": "None",
|
"None": "None",
|
||||||
"Public Domain": "Public Domain",
|
"Public Domain": "Public Domain",
|
||||||
|
@ -82,8 +82,6 @@
|
||||||
"Rewards": "Rewards",
|
"Rewards": "Rewards",
|
||||||
"You have": "You have",
|
"You have": "You have",
|
||||||
"Claim Rewards": "Claim Rewards",
|
"Claim Rewards": "Claim Rewards",
|
||||||
"LBC": "LBC",
|
|
||||||
"Earned From Rewards": "Earned From Rewards",
|
|
||||||
"Invite a Friend": "Invite a Friend",
|
"Invite a Friend": "Invite a Friend",
|
||||||
"Checking your invite status": "Checking your invite status",
|
"Checking your invite status": "Checking your invite status",
|
||||||
"View Rewards": "View Rewards",
|
"View Rewards": "View Rewards",
|
||||||
|
@ -104,8 +102,7 @@
|
||||||
"Balance": "Balance",
|
"Balance": "Balance",
|
||||||
"Full History": "Full History",
|
"Full History": "Full History",
|
||||||
"Refresh": "Refresh",
|
"Refresh": "Refresh",
|
||||||
"Send credits": "Send credits",
|
"Send LBRY Credits to your friends or favorite creators": "Send LBRY Credits to your friends or favorite creators",
|
||||||
"Send LBC to your friends or favorite creators": "Send LBC to your friends or favorite creators",
|
|
||||||
"Amount": "Amount",
|
"Amount": "Amount",
|
||||||
"Recipient address": "Recipient address",
|
"Recipient address": "Recipient address",
|
||||||
"Send": "Send",
|
"Send": "Send",
|
||||||
|
@ -156,10 +153,8 @@
|
||||||
"Application cache": "Application cache",
|
"Application cache": "Application cache",
|
||||||
"Clear Cache": "Clear Cache",
|
"Clear Cache": "Clear Cache",
|
||||||
"Currency": "Currency",
|
"Currency": "Currency",
|
||||||
"LBRY Credits (LBC)": "LBRY Credits (LBC)",
|
|
||||||
"US Dollars": "US Dollars",
|
"US Dollars": "US Dollars",
|
||||||
"There's nothing available at this location.": "There's nothing available at this location.",
|
"There's nothing available at this location.": "There's nothing available at this location.",
|
||||||
"Loading decentralized data...": "Loading decentralized data...",
|
|
||||||
"Confirm File Remove": "Confirm File Remove",
|
"Confirm File Remove": "Confirm File Remove",
|
||||||
"Remove": "Remove",
|
"Remove": "Remove",
|
||||||
"Less": "Less",
|
"Less": "Less",
|
||||||
|
@ -195,7 +190,7 @@
|
||||||
"View": "View",
|
"View": "View",
|
||||||
"Edit": "Edit",
|
"Edit": "Edit",
|
||||||
"Copied": "Copied",
|
"Copied": "Copied",
|
||||||
"The publisher has chosen to charge LBC to view this content. Your balance is currently too low to view it. Check out %reward_link% for free LBC or send more LBC to your wallet. You can also %buy_link% more LBC.": "The publisher has chosen to charge LBC to view this content. Your balance is currently too low to view it. Check out %reward_link% for free LBC or send more LBC to your wallet. You can also %buy_link% more LBC.",
|
"The publisher has chosen to charge %lbc% to view this content. Your balance is currently too low to view it.": " Check out %reward_link% for free %lbc% or send more %lbc% to your wallet. You can also %buy_link% more %lbc%.",
|
||||||
"Connecting...": "Connecting...",
|
"Connecting...": "Connecting...",
|
||||||
"Comments": "Comments",
|
"Comments": "Comments",
|
||||||
"Comment": "Comment",
|
"Comment": "Comment",
|
||||||
|
@ -237,7 +232,7 @@
|
||||||
"Installation ID": "Installation ID",
|
"Installation ID": "Installation ID",
|
||||||
"Access Token": "Access Token",
|
"Access Token": "Access Token",
|
||||||
"Backup your LBRY wallet": "Backup your LBRY wallet",
|
"Backup your LBRY wallet": "Backup your LBRY wallet",
|
||||||
"Your LBRY credits, channels, and publishes are controllable by you and only you, via wallet file(s) stored locally on your computer.": "Your LBRY credits, channels, and publishes are controllable by you and only you, via wallet file(s) stored locally on your computer.",
|
"Your LBRY Credits, channels, and publishes are controllable by you and only you, via wallet file(s) stored locally on your computer.": "Your LBRY Credits, channels, and publishes are controllable by you and only you, via wallet file(s) stored locally on your computer.",
|
||||||
"Currently, there is no automatic wallet backup. If you lose access to these files, you will lose your credits permanently, as well as control of your channels and publishes.": "Currently, there is no automatic wallet backup. If you lose access to these files, you will lose your credits permanently, as well as control of your channels and publishes.",
|
"Currently, there is no automatic wallet backup. If you lose access to these files, you will lose your credits permanently, as well as control of your channels and publishes.": "Currently, there is no automatic wallet backup. If you lose access to these files, you will lose your credits permanently, as well as control of your channels and publishes.",
|
||||||
"However, it is fairly easy to back up manually. To backup your wallet, make a copy of the folder listed below:": "However, it is fairly easy to back up manually. To backup your wallet, make a copy of the folder listed below:",
|
"However, it is fairly easy to back up manually. To backup your wallet, make a copy of the folder listed below:": "However, it is fairly easy to back up manually. To backup your wallet, make a copy of the folder listed below:",
|
||||||
"Access to these files is equivalent to having access to your credits, channels, and publishes. Keep any copies you make of your wallet in a secure place.": "Access to these files are equivalent to having access to your credits, channels, and publishes. Keep any copies you make of your wallet in a secure place.",
|
"Access to these files is equivalent to having access to your credits, channels, and publishes. Keep any copies you make of your wallet in a secure place.": "Access to these files are equivalent to having access to your credits, channels, and publishes. Keep any copies you make of your wallet in a secure place.",
|
||||||
|
@ -271,7 +266,6 @@
|
||||||
"Done": "Done",
|
"Done": "Done",
|
||||||
"You can't upload things quite yet": "You can't upload things quite yet",
|
"You can't upload things quite yet": "You can't upload things quite yet",
|
||||||
"LBRY uses a blockchain, which is a fancy way of saying that users (you) are in control of your data.": "LBRY uses a blockchain, which is a fancy way of saying that users (you) are in control of your data.",
|
"LBRY uses a blockchain, which is a fancy way of saying that users (you) are in control of your data.": "LBRY uses a blockchain, which is a fancy way of saying that users (you) are in control of your data.",
|
||||||
"Because of the blockchain, some actions require LBRY credits": "Because of the blockchain, some actions require LBRY credits",
|
|
||||||
"allows you to do some neat things, like paying your favorite creators for their content. And no company can stop you.": "allows you to do some neat things, like paying your favorite creators for their content. And no company can stop you.",
|
"allows you to do some neat things, like paying your favorite creators for their content. And no company can stop you.": "allows you to do some neat things, like paying your favorite creators for their content. And no company can stop you.",
|
||||||
"LBRY Credits Required": "LBRY Credits Required",
|
"LBRY Credits Required": "LBRY Credits Required",
|
||||||
"Choose a file": "Choose a file",
|
"Choose a file": "Choose a file",
|
||||||
|
@ -324,7 +318,7 @@
|
||||||
"Take a snapshot from your video": "Take a snapshot from your video",
|
"Take a snapshot from your video": "Take a snapshot from your video",
|
||||||
"Upload your thumbnail to": "Upload your thumbnail to",
|
"Upload your thumbnail to": "Upload your thumbnail to",
|
||||||
"Add a price to this file": "Add a price to this file",
|
"Add a price to this file": "Add a price to this file",
|
||||||
"All content fees are charged in LBC. For non-LBC payment methods, the number of credits charged will be adjusted based on the value of LBRY credits at the time of purchase.": "All content fees are charged in LBC. For non-LBC payment methods, the number of credits charged will be adjusted based on the value of LBRY credits at the time of purchase.",
|
"All content fees are charged in LBRY Credits. For alternative payment methods, the number of LBRY Credits charged will be adjusted based on the value of LBRY Credits at the time of purchase.": "All content fees are charged in LBRY Credits. For alternative payment methods, the number of LBRY Credits charged will be adjusted based on the value of LBRY Credits at the time of purchase.",
|
||||||
"Additional Options": "Additional Options",
|
"Additional Options": "Additional Options",
|
||||||
"A URL is required": "A URL is required",
|
"A URL is required": "A URL is required",
|
||||||
"A name is required": "A name is required",
|
"A name is required": "A name is required",
|
||||||
|
@ -363,7 +357,7 @@
|
||||||
"Got it": "Got it",
|
"Got it": "Got it",
|
||||||
"View your channels": "View your channels",
|
"View your channels": "View your channels",
|
||||||
"Unfollow": "Unfollow",
|
"Unfollow": "Unfollow",
|
||||||
"This LBC remains yours. It is a deposit to reserve the name and can be undone at any time.": "This LBC remains yours. It is a deposit to reserve the name and can be undone at any time.",
|
"These LBRY Credits remain yours. It is a deposit to reserve the name and can be undone at any time.": "These LBRY Credits remain yours. It is a deposit to reserve the name and can be undone at any time.",
|
||||||
"Create channel": "Create channel",
|
"Create channel": "Create channel",
|
||||||
"Uh oh. The flux in our Retro Encabulator must be out of whack. Try refreshing to fix it.": "Uh oh. The flux in our Retro Encabulator must be out of whack. Try refreshing to fix it.",
|
"Uh oh. The flux in our Retro Encabulator must be out of whack. Try refreshing to fix it.": "Uh oh. The flux in our Retro Encabulator must be out of whack. Try refreshing to fix it.",
|
||||||
"Read the App Basics FAQ": "Read the App Basics FAQ",
|
"Read the App Basics FAQ": "Read the App Basics FAQ",
|
||||||
|
@ -383,7 +377,6 @@
|
||||||
"Confirm Tip Unlock": "Confirm Tip Unlock",
|
"Confirm Tip Unlock": "Confirm Tip Unlock",
|
||||||
"Confirm Support Revoke": "Confirm Support Revoke",
|
"Confirm Support Revoke": "Confirm Support Revoke",
|
||||||
"Are you sure you want to remove this support?": "Are you sure you want to remove this support?",
|
"Are you sure you want to remove this support?": "Are you sure you want to remove this support?",
|
||||||
"These credits are permanently yours and can be removed at any time. Removing this support will reduce the claim's discoverability and return the LBC to your spendable balance.": "These credits are permanently yours and can be removed at any time. Removing this support will reduce the claim's discoverability and return the LBC to your spendable balance.",
|
|
||||||
"Are you sure you want to unlock these credits?": "Are you sure you want to unlock these credits?",
|
"Are you sure you want to unlock these credits?": "Are you sure you want to unlock these credits?",
|
||||||
"These credits are permanently yours and can be unlocked at any time. Unlocking them allows you to spend them, but can hurt the performance of your content in lookups and search results. It is recommended you leave tips locked until you need or want to spend them.": "These credits are permanently yours and can be unlocked at any time. Unlocking them allows you to spend them, but can hurt the performance of your content in lookups and search results. It is recommended you leave tips locked until you need or want to spend them.",
|
"These credits are permanently yours and can be unlocked at any time. Unlocking them allows you to spend them, but can hurt the performance of your content in lookups and search results. It is recommended you leave tips locked until you need or want to spend them.": "These credits are permanently yours and can be unlocked at any time. Unlocking them allows you to spend them, but can hurt the performance of your content in lookups and search results. It is recommended you leave tips locked until you need or want to spend them.",
|
||||||
"Mature": "Mature",
|
"Mature": "Mature",
|
||||||
|
@ -391,7 +384,7 @@
|
||||||
"Mature content may include nudity, intense sexuality, profanity, or other adult content. By displaying mature content, you are affirming you are of legal age to view mature content in your country or jurisdiction. ": "Mature content may include nudity, intense sexuality, profanity, or other adult content. By displaying mature content, you are affirming you are of legal age to view mature content in your country or jurisdiction. ",
|
"Mature content may include nudity, intense sexuality, profanity, or other adult content. By displaying mature content, you are affirming you are of legal age to view mature content in your country or jurisdiction. ": "Mature content may include nudity, intense sexuality, profanity, or other adult content. By displaying mature content, you are affirming you are of legal age to view mature content in your country or jurisdiction. ",
|
||||||
"Encrypt my wallet with a custom password": "Encrypt my wallet with a custom password",
|
"Encrypt my wallet with a custom password": "Encrypt my wallet with a custom password",
|
||||||
"Enable claim support": "Enable claim support",
|
"Enable claim support": "Enable claim support",
|
||||||
"Send LBC to your friends or favorite creators.": "Send LBC to your friends or favorite creators.",
|
"Send %lbc% to your friends or favorite creators.": "Send %lbc% to your friends or favorite creators.",
|
||||||
"Your Address": "Your Address",
|
"Your Address": "Your Address",
|
||||||
"Support this claim": "Support this claim",
|
"Support this claim": "Support this claim",
|
||||||
"content viewing preferences": "content viewing preferences",
|
"content viewing preferences": "content viewing preferences",
|
||||||
|
@ -416,7 +409,6 @@
|
||||||
"Not Accepted": "Not Accepted",
|
"Not Accepted": "Not Accepted",
|
||||||
"Unclaimable": "Unclaimable",
|
"Unclaimable": "Unclaimable",
|
||||||
"Enter reward code": "Enter reward code",
|
"Enter reward code": "Enter reward code",
|
||||||
"Redeem a custom reward code for LBC": "Redeem a custom reward code for LBC",
|
|
||||||
"Redeem": "Redeem",
|
"Redeem": "Redeem",
|
||||||
"Code": "Code",
|
"Code": "Code",
|
||||||
"Nothing here": "Nothing here",
|
"Nothing here": "Nothing here",
|
||||||
|
@ -473,7 +465,7 @@
|
||||||
"Max Connections": "Max Connections",
|
"Max Connections": "Max Connections",
|
||||||
"For users with good bandwidth, try a higher value to improve streaming and download speeds. Low bandwidth users may benefit from a lower setting. Default is 4.": "For users with good bandwidth, try a higher value to improve streaming and download speeds. Low bandwidth users may benefit from a lower setting. Default is 4.",
|
"For users with good bandwidth, try a higher value to improve streaming and download speeds. Low bandwidth users may benefit from a lower setting. Default is 4.": "For users with good bandwidth, try a higher value to improve streaming and download speeds. Low bandwidth users may benefit from a lower setting. Default is 4.",
|
||||||
"Show All": "Show All",
|
"Show All": "Show All",
|
||||||
"Claim ??? LBC": "Claim ??? LBC",
|
"Claim ???": "Claim ???",
|
||||||
"LBRY names cannot contain spaces or reserved symbols": "LBRY names cannot contain spaces or reserved symbols",
|
"LBRY names cannot contain spaces or reserved symbols": "LBRY names cannot contain spaces or reserved symbols",
|
||||||
"Creating channel...": "Creating channel...",
|
"Creating channel...": "Creating channel...",
|
||||||
"Remember Password": "Remember Password",
|
"Remember Password": "Remember Password",
|
||||||
|
@ -492,14 +484,13 @@
|
||||||
"light": "light",
|
"light": "light",
|
||||||
"dark": "dark",
|
"dark": "dark",
|
||||||
"Live help is available most hours in the %channel% channel of our Discord chat room. Or you can always email us at help@lbry.com.": "Live help is available most hours in the %channel% channel of our Discord chat room. Or you can always email us at help@lbry.com.",
|
"Live help is available most hours in the %channel% channel of our Discord chat room. Or you can always email us at help@lbry.com.": "Live help is available most hours in the %channel% channel of our Discord chat room. Or you can always email us at help@lbry.com.",
|
||||||
"Your LBRY credits, channels, and publishes are controllable by you and only you, via a wallet file stored locally on your computer.": "Your LBRY credits, channels, and publishes are controllable by you and only you, via a wallet file stored locally on your computer.",
|
"Your LBRY Credits, channels, and publishes are controllable by you and only you, via a wallet file stored locally on your computer.": "Your LBRY Credits, channels, and publishes are controllable by you and only you, via a wallet file stored locally on your computer.",
|
||||||
"However, it is easy to back up manually. To backup your wallet, make a copy of the folder listed below:": "However, it is easy to back up manually. To backup your wallet, make a copy of the folder listed below:",
|
"However, it is easy to back up manually. To backup your wallet, make a copy of the folder listed below:": "However, it is easy to back up manually. To backup your wallet, make a copy of the folder listed below:",
|
||||||
"Access to these files are equivalent to having access to your credits, channels, and publishes. Keep any copies you make of your wallet in a secure place. For more details on backing up and best practices %helpLink%.": "Access to these files are equivalent to having access to your credits, channels, and publishes. Keep any copies you make of your wallet in a secure place. For more details on backing up and best practices %helpLink%.",
|
"Access to these files are equivalent to having access to your credits, channels, and publishes. Keep any copies you make of your wallet in a secure place. For more details on backing up and best practices %helpLink%.": "Access to these files are equivalent to having access to your credits, channels, and publishes. Keep any copies you make of your wallet in a secure place. For more details on backing up and best practices %helpLink%.",
|
||||||
"Your channels": "Your channels",
|
"Your channels": "Your channels",
|
||||||
"Add Tags": "Add Tags",
|
"Add Tags": "Add Tags",
|
||||||
"Available Balance": "Available Balance",
|
"Available Balance": "Available Balance",
|
||||||
"Earned and bound in tips": "Earned and bound in tips",
|
"Earned and bound in tips": "Earned and bound in tips",
|
||||||
"LBC Currently Staked": "LBC Currently Staked",
|
|
||||||
"... in your publishes": "... in your publishes",
|
"... in your publishes": "... in your publishes",
|
||||||
"... in your supports": "... in your supports",
|
"... in your supports": "... in your supports",
|
||||||
"Add a tag": "Add a tag",
|
"Add a tag": "Add a tag",
|
||||||
|
@ -586,7 +577,7 @@
|
||||||
"Sync balance and preferences across devices.": "Sync balance and preferences across devices.",
|
"Sync balance and preferences across devices.": "Sync balance and preferences across devices.",
|
||||||
"By creating an account, you agree to our %terms% and confirm you're over the age of 13.": "By creating an account, you agree to our %terms% and confirm you're over the age of 13.",
|
"By creating an account, you agree to our %terms% and confirm you're over the age of 13.": "By creating an account, you agree to our %terms% and confirm you're over the age of 13.",
|
||||||
"Advanced Editor": "Advanced Editor",
|
"Advanced Editor": "Advanced Editor",
|
||||||
"If you bid more than %amount% LBC, when someone navigates to %uri%, it will load your published content. However, you can get a longer version of this URL for any bid.": "If you bid more than %amount% LBC, when someone navigates to %uri%, it will load your published content. However, you can get a longer version of this URL for any bid.",
|
"If you bid more than %amount% LBRY Credits, when someone navigates to %uri%, it will load your published content. However, you can get a longer version of this URL for any bid.": "If you bid more than %amount% LBRY Credits, when someone navigates to %uri%, it will load your published content. However, you can get a longer version of this URL for any bid.",
|
||||||
"%nameOrTitle% has been published to lbry://%name%. Click here to view it.": "%nameOrTitle% has been published to lbry://%name%. Click here to view it.",
|
"%nameOrTitle% has been published to lbry://%name%. Click here to view it.": "%nameOrTitle% has been published to lbry://%name%. Click here to view it.",
|
||||||
"If you don't choose a file, the file from your existing claim %name% will be used": "If you don't choose a file, the file from your existing claim %name% will be used",
|
"If you don't choose a file, the file from your existing claim %name% will be used": "If you don't choose a file, the file from your existing claim %name% will be used",
|
||||||
"To enable this feature, check 'Save Password' the next time you start the app.": "To enable this feature, check 'Save Password' the next time you start the app.",
|
"To enable this feature, check 'Save Password' the next time you start the app.": "To enable this feature, check 'Save Password' the next time you start the app.",
|
||||||
|
@ -616,13 +607,12 @@
|
||||||
"Your file is now pending on LBRY. It will take a few minutes to appear for other users.": "Your file is now pending on LBRY. It will take a few minutes to appear for other users.",
|
"Your file is now pending on LBRY. It will take a few minutes to appear for other users.": "Your file is now pending on LBRY. It will take a few minutes to appear for other users.",
|
||||||
"Upload will continue in the background, please do not shut down immediately. Leaving the app running helps the network, thank you!": "Upload will continue in the background, please do not shut down immediately. Leaving the app running helps the network, thank you!",
|
"Upload will continue in the background, please do not shut down immediately. Leaving the app running helps the network, thank you!": "Upload will continue in the background, please do not shut down immediately. Leaving the app running helps the network, thank you!",
|
||||||
"Are you sure want to revoke this claim?": "Are you sure want to revoke this claim?",
|
"Are you sure want to revoke this claim?": "Are you sure want to revoke this claim?",
|
||||||
"This will prevent others from resolving and accessing the content you published. It will return the LBC to your spendable balance, less a small transaction fee.": "This will prevent others from resolving and accessing the content you published. It will return the LBC to your spendable balance, less a small transaction fee.",
|
|
||||||
"No results for %query%": "No results for %query%",
|
"No results for %query%": "No results for %query%",
|
||||||
"You haven't downloaded anything from LBRY yet": "You haven't downloaded anything from LBRY yet",
|
"You haven't downloaded anything from LBRY yet": "You haven't downloaded anything from LBRY yet",
|
||||||
"You haven't purchased anything yet": "You haven't purchased anything yet",
|
"You haven't purchased anything yet": "You haven't purchased anything yet",
|
||||||
"Explore new content": "Explore new content",
|
"Explore new content": "Explore new content",
|
||||||
"Explore New Content": "Explore New Content",
|
"Explore New Content": "Explore New Content",
|
||||||
"Use this address to receive LBC.": "Use this address to receive LBC.",
|
"Use this address to receive LBRY Credits.": "Use this address to receive LBRY Credits.",
|
||||||
"Embedded": "Embedded",
|
"Embedded": "Embedded",
|
||||||
"Failed to load %language% translations.": "Failed to load %language% translations.",
|
"Failed to load %language% translations.": "Failed to load %language% translations.",
|
||||||
"contact support": "contact support",
|
"contact support": "contact support",
|
||||||
|
@ -708,10 +698,9 @@
|
||||||
"Your deposit must be higher": "Your deposit must be higher",
|
"Your deposit must be higher": "Your deposit must be higher",
|
||||||
"%view_count% views": "%view_count% views",
|
"%view_count% views": "%view_count% views",
|
||||||
"1 view": "1 view",
|
"1 view": "1 view",
|
||||||
"Claim %amount% LBC": "Claim %amount% LBC",
|
"Claim %amount%": "Claim %amount%",
|
||||||
"Claim %range% LBC": "Claim %range% LBC",
|
"Claim %range%": "Claim %range%",
|
||||||
"Did something go wrong? Have a look in your log file, or send it to %support_link%.": "Did something go wrong? Have a look in your log file, or send it to %support_link%.",
|
"Did something go wrong? Have a look in your log file, or send it to %support_link%.": "Did something go wrong? Have a look in your log file, or send it to %support_link%.",
|
||||||
"%amount% LBC": "%amount% LBC",
|
|
||||||
"%amount% fee": "%amount% fee",
|
"%amount% fee": "%amount% fee",
|
||||||
"Thumbnail": "Thumbnail",
|
"Thumbnail": "Thumbnail",
|
||||||
"This Week": "This Week",
|
"This Week": "This Week",
|
||||||
|
@ -735,7 +724,6 @@
|
||||||
"refreshing the app": "refreshing the app",
|
"refreshing the app": "refreshing the app",
|
||||||
"Follower": "Follower",
|
"Follower": "Follower",
|
||||||
"%repost_channel_link% reposted": "%repost_channel_link% reposted",
|
"%repost_channel_link% reposted": "%repost_channel_link% reposted",
|
||||||
"Abandon on blockchain (reclaim %amount% LBC)": "Abandon on blockchain (reclaim %amount% LBC)",
|
|
||||||
"This channel may have been unpublished.": "This channel may have been unpublished.",
|
"This channel may have been unpublished.": "This channel may have been unpublished.",
|
||||||
"Custom": "Custom",
|
"Custom": "Custom",
|
||||||
"Playing in %seconds_left% seconds": "Playing in %seconds_left% seconds",
|
"Playing in %seconds_left% seconds": "Playing in %seconds_left% seconds",
|
||||||
|
@ -755,7 +743,7 @@
|
||||||
"Official YouTube Creator - Last checked %time_ago%": "Official YouTube Creator - Last checked %time_ago%",
|
"Official YouTube Creator - Last checked %time_ago%": "Official YouTube Creator - Last checked %time_ago%",
|
||||||
"Install Now": "Install Now",
|
"Install Now": "Install Now",
|
||||||
"Invite Link": "Invite Link",
|
"Invite Link": "Invite Link",
|
||||||
"Earn LBC for inviting subscribers, followers, fans, friends, etc. to join and follow you on %SITE_NAME%. You can use invites just like affiliate links.": "Earn LBC for inviting subscribers, followers, fans, friends, etc. to join and follow you on %SITE_NAME%. You can use invites just like affiliate links.",
|
"Earn LBRY Credits for inviting subscribers, followers, fans, friends, etc. to join and follow you on %SITE_NAME%. You can use invites just like affiliate links.": "Earn LBRY Credits for inviting subscribers, followers, fans, friends, etc. to join and follow you on %SITE_NAME%. You can use invites just like affiliate links.",
|
||||||
"Your invite link": "Your invite link",
|
"Your invite link": "Your invite link",
|
||||||
"Customize link": "Customize link",
|
"Customize link": "Customize link",
|
||||||
"rewards": "rewards",
|
"rewards": "rewards",
|
||||||
|
@ -829,7 +817,6 @@
|
||||||
"You aren’t blocking any channels": "You aren’t blocking any channels",
|
"You aren’t blocking any channels": "You aren’t blocking any channels",
|
||||||
"When you block a channel, all content from that channel will be hidden.": "When you block a channel, all content from that channel will be hidden.",
|
"When you block a channel, all content from that channel will be hidden.": "When you block a channel, all content from that channel will be hidden.",
|
||||||
"View top claims for %normalized_uri%": "View top claims for %normalized_uri%",
|
"View top claims for %normalized_uri%": "View top claims for %normalized_uri%",
|
||||||
"Staked LBC": "Staked LBC",
|
|
||||||
"view all claims": "view all claims",
|
"view all claims": "view all claims",
|
||||||
"Top claims at lbry://%name%": "Top claims at lbry://%name%",
|
"Top claims at lbry://%name%": "Top claims at lbry://%name%",
|
||||||
"Last Updated": "Last Updated",
|
"Last Updated": "Last Updated",
|
||||||
|
@ -844,7 +831,6 @@
|
||||||
"other rewards": "other rewards",
|
"other rewards": "other rewards",
|
||||||
"This step is not mandatory and not required in order for you to use %SITE_NAME%.": "This step is not mandatory and not required in order for you to use %SITE_NAME%.",
|
"This step is not mandatory and not required in order for you to use %SITE_NAME%.": "This step is not mandatory and not required in order for you to use %SITE_NAME%.",
|
||||||
"A moderator can approve you within our discord server. Please review the instructions within #rewards-approval carefully.": "A moderator can approve you within our discord server. Please review the instructions within #rewards-approval carefully.",
|
"A moderator can approve you within our discord server. Please review the instructions within #rewards-approval carefully.": "A moderator can approve you within our discord server. Please review the instructions within #rewards-approval carefully.",
|
||||||
"Verifying is optional. If you skip this, it just means you can't earn LBC.": "Verifying is optional. If you skip this, it just means you can't earn LBC.",
|
|
||||||
"Continue Without Verifying": "Continue Without Verifying",
|
"Continue Without Verifying": "Continue Without Verifying",
|
||||||
"Validated accounts can earn for views and are eligible for %rewards_program%. Please complete one of the steps below. %Refresh% or %Skip%.": "Validated accounts can earn for views and are eligible for %rewards_program%. Please complete one of the steps below. %Refresh% or %Skip%.",
|
"Validated accounts can earn for views and are eligible for %rewards_program%. Please complete one of the steps below. %Refresh% or %Skip%.": "Validated accounts can earn for views and are eligible for %rewards_program%. Please complete one of the steps below. %Refresh% or %Skip%.",
|
||||||
"verify your account": "verify your account",
|
"verify your account": "verify your account",
|
||||||
|
@ -874,7 +860,7 @@
|
||||||
"Kannada": "Kannada",
|
"Kannada": "Kannada",
|
||||||
"Transcoding this %size%MB file should take under %processTime% %units%.": "Transcoding this %size%MB file should take under %processTime% %units%.",
|
"Transcoding this %size%MB file should take under %processTime% %units%.": "Transcoding this %size%MB file should take under %processTime% %units%.",
|
||||||
"FFmpeg not configured. More in %settings_link%.": "FFmpeg not configured. More in %settings_link%.",
|
"FFmpeg not configured. More in %settings_link%.": "FFmpeg not configured. More in %settings_link%.",
|
||||||
"LBC Details": "LBC Details",
|
"Credit details": "Credit details",
|
||||||
"Publish Amount": "Publish Amount",
|
"Publish Amount": "Publish Amount",
|
||||||
"Supports and Tips": "Supports and Tips",
|
"Supports and Tips": "Supports and Tips",
|
||||||
"Amount must be a number": "Amount must be a number",
|
"Amount must be a number": "Amount must be a number",
|
||||||
|
@ -909,7 +895,7 @@
|
||||||
"Don't have an account? %sign_up%": "Don't have an account? %sign_up%",
|
"Don't have an account? %sign_up%": "Don't have an account? %sign_up%",
|
||||||
"Preparing your content": "Preparing your content",
|
"Preparing your content": "Preparing your content",
|
||||||
"File details": "File details",
|
"File details": "File details",
|
||||||
"You can unlock all or some of this LBC at any time.": "You can unlock all or some of this LBC at any time.",
|
"You can unlock all or some of these LBRY Credits at any time.": "You can unlock all or some of these LBRY Credits at any time.",
|
||||||
"Keeping it locked improves the trust and discoverability of your content.": "Keeping it locked improves the trust and discoverability of your content.",
|
"Keeping it locked improves the trust and discoverability of your content.": "Keeping it locked improves the trust and discoverability of your content.",
|
||||||
"It's usually only worth unlocking what you intend to use immediately. %learn_more%": "It's usually only worth unlocking what you intend to use immediately. %learn_more%",
|
"It's usually only worth unlocking what you intend to use immediately. %learn_more%": "It's usually only worth unlocking what you intend to use immediately. %learn_more%",
|
||||||
"%amount% available to unlock": "%amount% available to unlock",
|
"%amount% available to unlock": "%amount% available to unlock",
|
||||||
|
@ -941,7 +927,6 @@
|
||||||
"Reposts": "Reposts",
|
"Reposts": "Reposts",
|
||||||
"lbry": "lbry",
|
"lbry": "lbry",
|
||||||
"Default": "Default",
|
"Default": "Default",
|
||||||
"Amount (LBC)": "Amount (LBC)",
|
|
||||||
"Successfully unlocked your tip!": "Successfully unlocked your tip!",
|
"Successfully unlocked your tip!": "Successfully unlocked your tip!",
|
||||||
"Successfully abandoned your claim.": "Successfully abandoned your claim.",
|
"Successfully abandoned your claim.": "Successfully abandoned your claim.",
|
||||||
"You have %count% blocked %channels%.": "You have %count% blocked %channels%.",
|
"You have %count% blocked %channels%.": "You have %count% blocked %channels%.",
|
||||||
|
@ -958,7 +943,6 @@
|
||||||
"%all_content_views% views": "%all_content_views% views",
|
"%all_content_views% views": "%all_content_views% views",
|
||||||
"+ %all_content_views_weekly_change% this week": "+ %all_content_views_weekly_change% this week",
|
"+ %all_content_views_weekly_change% this week": "+ %all_content_views_weekly_change% this week",
|
||||||
"%lbc_received_changed% this week": "%lbc_received_changed% this week",
|
"%lbc_received_changed% this week": "%lbc_received_changed% this week",
|
||||||
"Earnings may also include any LBC you've sent yourself or added as support. We are working on making this more accurate. Check your wallet page for the correct total balance.": "Earnings may also include any LBC you've sent yourself or added as support. We are working on making this more accurate. Check your wallet page for the correct total balance.",
|
|
||||||
"Your recent content": "Your recent content",
|
"Your recent content": "Your recent content",
|
||||||
"No recent uploads found for this channel. Upload something new and track how it's performing here.": "No recent uploads found for this channel. Upload something new and track how it's performing here.",
|
"No recent uploads found for this channel. Upload something new and track how it's performing here.": "No recent uploads found for this channel. Upload something new and track how it's performing here.",
|
||||||
"Most Viewed Content": "Most Viewed Content",
|
"Most Viewed Content": "Most Viewed Content",
|
||||||
|
@ -973,7 +957,6 @@
|
||||||
"Sorry about that. Try refreshing or something else.": "Sorry about that. Try refreshing or something else.",
|
"Sorry about that. Try refreshing or something else.": "Sorry about that. Try refreshing or something else.",
|
||||||
"You are not able to see this channel's stats. Make sure you are signed in with the correct email and have data sharing turned on.": "You are not able to see this channel's stats. Make sure you are signed in with the correct email and have data sharing turned on.",
|
"You are not able to see this channel's stats. Make sure you are signed in with the correct email and have data sharing turned on.": "You are not able to see this channel's stats. Make sure you are signed in with the correct email and have data sharing turned on.",
|
||||||
"%follower_count% followers": "%follower_count% followers",
|
"%follower_count% followers": "%follower_count% followers",
|
||||||
"%lbc_received% LBC Earned": "%lbc_received% LBC Earned",
|
|
||||||
"Sign Up": "Sign Up",
|
"Sign Up": "Sign Up",
|
||||||
"Add A Password": "Add A Password",
|
"Add A Password": "Add A Password",
|
||||||
"Hide reposts": "Hide reposts",
|
"Hide reposts": "Hide reposts",
|
||||||
|
@ -1056,7 +1039,6 @@
|
||||||
"Welcome!": "Welcome!",
|
"Welcome!": "Welcome!",
|
||||||
"We've followed your invitee for you. Check them out!": "We've followed your invitee for you. Check them out!",
|
"We've followed your invitee for you. Check them out!": "We've followed your invitee for you. Check them out!",
|
||||||
"Congrats": "Congrats",
|
"Congrats": "Congrats",
|
||||||
"Invite someone you know by email and earn LBC when they join lbry.tv.": "Invite someone you know by email and earn LBC when they join lbry.tv.",
|
|
||||||
"Transcoding this %size% MB file should take under %processTime% %units%.": "Transcoding this %size% MB file should take under %processTime% %units%.",
|
"Transcoding this %size% MB file should take under %processTime% %units%.": "Transcoding this %size% MB file should take under %processTime% %units%.",
|
||||||
"For video content, use MP4s in H264/AAC format and a friendly bitrate (under 5 Mbps) and resolution (720p) for more reliable streaming.": "For video content, use MP4s in H264/AAC format and a friendly bitrate (under 5 Mbps) and resolution (720p) for more reliable streaming.",
|
"For video content, use MP4s in H264/AAC format and a friendly bitrate (under 5 Mbps) and resolution (720p) for more reliable streaming.": "For video content, use MP4s in H264/AAC format and a friendly bitrate (under 5 Mbps) and resolution (720p) for more reliable streaming.",
|
||||||
"Your video may not be the best format. Use MP4s in H264/AAC format and a friendly bitrate (under 5 Mbps) and resolution (720p) for more reliable streaming.": "Your video may not be the best format. Use MP4s in H264/AAC format and a friendly bitrate (under 5 Mbps) and resolution (720p) for more reliable streaming.",
|
"Your video may not be the best format. Use MP4s in H264/AAC format and a friendly bitrate (under 5 Mbps) and resolution (720p) for more reliable streaming.": "Your video may not be the best format. Use MP4s in H264/AAC format and a friendly bitrate (under 5 Mbps) and resolution (720p) for more reliable streaming.",
|
||||||
|
@ -1107,7 +1089,6 @@
|
||||||
"Country": "Country",
|
"Country": "Country",
|
||||||
"Only some countries are eligible at this time. We are working to make this available to everyone.": "Only some countries are eligible at this time. We are working to make this available to everyone.",
|
"Only some countries are eligible at this time. We are working to make this available to everyone.": "Only some countries are eligible at this time. We are working to make this available to everyone.",
|
||||||
"Select your country": "Select your country",
|
"Select your country": "Select your country",
|
||||||
"LBRY, Inc. partners with Moonpay to provide the option to purchase LBC. %learn_more%.": "LBRY, Inc. partners with Moonpay to provide the option to purchase LBC. %learn_more%.",
|
|
||||||
"Try Anyway": "Try Anyway",
|
"Try Anyway": "Try Anyway",
|
||||||
"Purchase Amount": "Purchase Amount",
|
"Purchase Amount": "Purchase Amount",
|
||||||
"Your browser does not support iframes.": "Your browser does not support iframes.",
|
"Your browser does not support iframes.": "Your browser does not support iframes.",
|
||||||
|
@ -1120,7 +1101,6 @@
|
||||||
"Once the transaction is sent, it cannot be reversed.": "Once the transaction is sent, it cannot be reversed.",
|
"Once the transaction is sent, it cannot be reversed.": "Once the transaction is sent, it cannot be reversed.",
|
||||||
"Update Your Password": "Update Your Password",
|
"Update Your Password": "Update Your Password",
|
||||||
"Your Wallet is Empty": "Your Wallet is Empty",
|
"Your Wallet is Empty": "Your Wallet is Empty",
|
||||||
"Never fear though, there are tons of ways to earn LBC! You can earn or purchase LBC, or you can have your friends send you some.": "Never fear though, there are tons of ways to earn LBC! You can earn or purchase LBC, or you can have your friends send you some.",
|
|
||||||
"Buy Credits": "Buy Credits",
|
"Buy Credits": "Buy Credits",
|
||||||
"Earn Rewards": "Earn Rewards",
|
"Earn Rewards": "Earn Rewards",
|
||||||
"Rewards are currently disabled for your account. Turn on diagnostic data sharing, in %settings%, to re-enable them.": "Rewards are currently disabled for your account. Turn on diagnostic data sharing, in %settings%, to re-enable them.",
|
"Rewards are currently disabled for your account. Turn on diagnostic data sharing, in %settings%, to re-enable them.": "Rewards are currently disabled for your account. Turn on diagnostic data sharing, in %settings%, to re-enable them.",
|
||||||
|
@ -1161,12 +1141,11 @@
|
||||||
"Thanks for the feedback. Mark has been notified and is currently walking over to his computer to work on this.": "Thanks for the feedback. Mark has been notified and is currently walking over to his computer to work on this.",
|
"Thanks for the feedback. Mark has been notified and is currently walking over to his computer to work on this.": "Thanks for the feedback. Mark has been notified and is currently walking over to his computer to work on this.",
|
||||||
"Changelog": "Changelog",
|
"Changelog": "Changelog",
|
||||||
"Supporting content requires credits": "Supporting content requires credits",
|
"Supporting content requires credits": "Supporting content requires credits",
|
||||||
"With LBC, you can send tips to your favorite creators, or help boost their content for more people to see.": "With LBC, you can send tips to your favorite creators, or help boost their content for more people to see.",
|
|
||||||
"Boost your content": "Boost your content",
|
"Boost your content": "Boost your content",
|
||||||
"Send Revocable Support": "Send Revocable Support",
|
"Send Revocable Support": "Send Revocable Support",
|
||||||
"Send a %amount% Tip": "Send a %amount% Tip",
|
"Send a %amount% Tip": "Send a %amount% Tip",
|
||||||
"Channel to show support as": "Channel to show support as",
|
"Channel to show support as": "Channel to show support as",
|
||||||
"Buy more LBC": "Buy more LBC",
|
"Buy more LBRY Credits": "Buy more LBRY Credits",
|
||||||
"Support this content": "Support this content",
|
"Support this content": "Support this content",
|
||||||
"Make this a tip": "Make this a tip",
|
"Make this a tip": "Make this a tip",
|
||||||
"Custom support amount": "Custom support amount",
|
"Custom support amount": "Custom support amount",
|
||||||
|
|
|
@ -79,7 +79,7 @@ function ChannelAbout(props: Props) {
|
||||||
<div className="media__info-text media__info-text--constrained">{claim.claim_id}</div>
|
<div className="media__info-text media__info-text--constrained">{claim.claim_id}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<label>{__('Staked LBC')}</label>
|
<label>{__('Staked LBRY Credits')}</label>
|
||||||
<div className="media__info-text">
|
<div className="media__info-text">
|
||||||
<CreditAmount
|
<CreditAmount
|
||||||
badge={false}
|
badge={false}
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { isNameValid } from 'lbry-redux';
|
||||||
import { Form, FormField } from 'component/common/form';
|
import { Form, FormField } from 'component/common/form';
|
||||||
import Button from 'component/button';
|
import Button from 'component/button';
|
||||||
import analytics from 'analytics';
|
import analytics from 'analytics';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
import { MINIMUM_PUBLISH_BID, INVALID_NAME_ERROR } from 'constants/claim';
|
import { MINIMUM_PUBLISH_BID, INVALID_NAME_ERROR } from 'constants/claim';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
@ -112,11 +112,13 @@ class ChannelCreate extends React.PureComponent<Props, State> {
|
||||||
<FormField
|
<FormField
|
||||||
className="form-field--price-amount"
|
className="form-field--price-amount"
|
||||||
name="channel-deposit"
|
name="channel-deposit"
|
||||||
label={__('Deposit (LBC)')}
|
label={<LbcSymbol prefix={__('Deposit')} size={14} />}
|
||||||
step="any"
|
step="any"
|
||||||
min="0"
|
min="0"
|
||||||
type="number"
|
type="number"
|
||||||
helper={__('This LBC remains yours. It is a deposit to reserve the name and can be undone at any time.')}
|
helper={__(
|
||||||
|
'These LBRY Credits remain yours. It is a deposit to reserve the name and can be undone at any time.'
|
||||||
|
)}
|
||||||
error={newChannelBidError}
|
error={newChannelBidError}
|
||||||
value={newChannelBid}
|
value={newChannelBid}
|
||||||
onChange={event => this.handleNewChannelBidChange(parseFloat(event.target.value))}
|
onChange={event => this.handleNewChannelBidChange(parseFloat(event.target.value))}
|
||||||
|
|
|
@ -17,6 +17,7 @@ import { Tabs, TabList, Tab, TabPanels, TabPanel } from 'component/common/tabs';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
import * as PAGES from 'constants/pages';
|
import * as PAGES from 'constants/pages';
|
||||||
import analytics from 'analytics';
|
import analytics from 'analytics';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
const MAX_TAG_SELECT = 5;
|
const MAX_TAG_SELECT = 5;
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
@ -46,6 +47,7 @@ type Props = {
|
||||||
{ onUpdate: string => void, assetName: string, helpText: string, currentValue: string, title: string }
|
{ onUpdate: string => void, assetName: string, helpText: string, currentValue: string, title: string }
|
||||||
) => void,
|
) => void,
|
||||||
uri: string,
|
uri: string,
|
||||||
|
disabled: boolean,
|
||||||
};
|
};
|
||||||
|
|
||||||
function ChannelForm(props: Props) {
|
function ChannelForm(props: Props) {
|
||||||
|
@ -236,7 +238,7 @@ function ChannelForm(props: Props) {
|
||||||
<Tabs>
|
<Tabs>
|
||||||
<TabList className="tabs__list--channel-page">
|
<TabList className="tabs__list--channel-page">
|
||||||
<Tab>{__('General')}</Tab>
|
<Tab>{__('General')}</Tab>
|
||||||
<Tab>{__('LBC Details')}</Tab>
|
<Tab>{__('LBRY Credit Details')}</Tab>
|
||||||
<Tab>{__('Tags')}</Tab>
|
<Tab>{__('Tags')}</Tab>
|
||||||
<Tab>{__('Other')}</Tab>
|
<Tab>{__('Other')}</Tab>
|
||||||
</TabList>
|
</TabList>
|
||||||
|
@ -293,8 +295,7 @@ function ChannelForm(props: Props) {
|
||||||
type="number"
|
type="number"
|
||||||
name="content_bid2"
|
name="content_bid2"
|
||||||
step="any"
|
step="any"
|
||||||
label={__('Deposit (LBC)')}
|
label={<LbcSymbol prefix={__('Deposit')} size={14} />}
|
||||||
postfix="LBC"
|
|
||||||
value={params.amount}
|
value={params.amount}
|
||||||
error={bidError}
|
error={bidError}
|
||||||
min="0.0"
|
min="0.0"
|
||||||
|
|
|
@ -1,19 +1,20 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
uri: string,
|
uri: string,
|
||||||
claim: ?Claim,
|
claim: ?Claim,
|
||||||
};
|
};
|
||||||
|
|
||||||
function ClaimRepostAuthor(props: Props) {
|
function ClaimEffectiveAmount(props: Props) {
|
||||||
const { claim } = props;
|
const { claim } = props;
|
||||||
|
|
||||||
if (!claim) {
|
if (!claim) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return <span>{claim.meta.effective_amount} LBC</span>;
|
return <LbcSymbol prefix={claim.meta.effective_amount} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ClaimRepostAuthor;
|
export default ClaimEffectiveAmount;
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import Button from 'component/button';
|
import Button from 'component/button';
|
||||||
import I18nMessage from 'component/i18nMessage';
|
import I18nMessage from 'component/i18nMessage';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
uri: string,
|
uri: string,
|
||||||
|
@ -23,10 +24,11 @@ function ClaimInsufficientCredits(props: Props) {
|
||||||
tokens={{
|
tokens={{
|
||||||
reward_link: <Button button="link" navigate="/$/rewards" label={__('Rewards')} />,
|
reward_link: <Button button="link" navigate="/$/rewards" label={__('Rewards')} />,
|
||||||
buy_link: <Button button="link" navigate="/$/buy" label={__('buy')} />,
|
buy_link: <Button button="link" navigate="/$/buy" label={__('buy')} />,
|
||||||
|
lbc: <LbcSymbol />,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
The publisher has chosen to charge LBC to view this content. Your balance is currently too low to view it. Check
|
The publisher has chosen to charge %lbc% to view this content. Your balance is currently too low to view it.
|
||||||
out %reward_link% for free LBC or send more LBC to your wallet. You can also %buy_link% more LBC.
|
Check out %reward_link% for free %lbc% or send more %lbc% to your wallet. You can also %buy_link% more %lbc%.
|
||||||
</I18nMessage>
|
</I18nMessage>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -15,7 +15,7 @@ export default function ClaimSupportButton(props: Props) {
|
||||||
return (
|
return (
|
||||||
<Button
|
<Button
|
||||||
button="alt"
|
button="alt"
|
||||||
icon={ICONS.SUPPORT}
|
icon={ICONS.LBC}
|
||||||
label={__('Support')}
|
label={__('Support')}
|
||||||
requiresAuth={IS_WEB}
|
requiresAuth={IS_WEB}
|
||||||
title={__('Support this claim')}
|
title={__('Support this claim')}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
import { formatCredits, formatFullPrice } from 'lbry-redux';
|
import { formatCredits, formatFullPrice } from 'lbry-redux';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
@ -12,7 +13,6 @@ type Props = {
|
||||||
isEstimate?: boolean,
|
isEstimate?: boolean,
|
||||||
showLBC?: boolean,
|
showLBC?: boolean,
|
||||||
fee?: boolean,
|
fee?: boolean,
|
||||||
badge?: boolean,
|
|
||||||
className?: string,
|
className?: string,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,22 +23,10 @@ class CreditAmount extends React.PureComponent<Props> {
|
||||||
showFullPrice: false,
|
showFullPrice: false,
|
||||||
showPlus: false,
|
showPlus: false,
|
||||||
showLBC: true,
|
showLBC: true,
|
||||||
badge: true,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const {
|
const { amount, precision, showFullPrice, showFree, showPlus, isEstimate, fee, showLBC, className } = this.props;
|
||||||
amount,
|
|
||||||
precision,
|
|
||||||
showFullPrice,
|
|
||||||
showFree,
|
|
||||||
showPlus,
|
|
||||||
isEstimate,
|
|
||||||
fee,
|
|
||||||
showLBC,
|
|
||||||
badge,
|
|
||||||
className,
|
|
||||||
} = this.props;
|
|
||||||
|
|
||||||
const minimumRenderableAmount = 10 ** (-1 * precision);
|
const minimumRenderableAmount = 10 ** (-1 * precision);
|
||||||
const fullPrice = formatFullPrice(amount, 2);
|
const fullPrice = formatFullPrice(amount, 2);
|
||||||
|
@ -65,7 +53,7 @@ class CreditAmount extends React.PureComponent<Props> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (showLBC) {
|
if (showLBC) {
|
||||||
amountText = __('%amount% LBC', { amount: amountText });
|
amountText = <LbcSymbol prefix={amountText} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fee) {
|
if (fee) {
|
||||||
|
@ -74,14 +62,7 @@ class CreditAmount extends React.PureComponent<Props> {
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<span
|
<span title={fullPrice} className={classnames(className, {})}>
|
||||||
title={fullPrice}
|
|
||||||
className={classnames(className, {
|
|
||||||
badge,
|
|
||||||
'badge--cost': badge && amount > 0,
|
|
||||||
'badge--free': badge && isFree,
|
|
||||||
})}
|
|
||||||
>
|
|
||||||
<span className="credit-amount">{amountText}</span>
|
<span className="credit-amount">{amountText}</span>
|
||||||
|
|
||||||
{isEstimate ? (
|
{isEstimate ? (
|
||||||
|
|
|
@ -70,7 +70,7 @@ export class FormFieldPrice extends React.PureComponent<Props> {
|
||||||
onChange={this.handleCurrencyChange}
|
onChange={this.handleCurrencyChange}
|
||||||
value={price.currency}
|
value={price.currency}
|
||||||
>
|
>
|
||||||
<option value="LBC">{__('LBRY Credits (LBC)')}</option>
|
<option value="LBC">{__('LBRY Credits')}</option>
|
||||||
<option value="USD">{__('US Dollars')}</option>
|
<option value="USD">{__('US Dollars')}</option>
|
||||||
</FormField>
|
</FormField>
|
||||||
</fieldset-group>
|
</fieldset-group>
|
||||||
|
|
|
@ -41,6 +41,89 @@ export const icons = {
|
||||||
<path d="M294.3,150.9l2-12.6l-12.2-2.1l0.8-4.9l17.1,2.9l-2.8,17.5L294.3,150.9L294.3,150.9z" />
|
<path d="M294.3,150.9l2-12.6l-12.2-2.1l0.8-4.9l17.1,2.9l-2.8,17.5L294.3,150.9L294.3,150.9z" />
|
||||||
</svg>
|
</svg>
|
||||||
),
|
),
|
||||||
|
[ICONS.LBC]: buildIcon(
|
||||||
|
<>
|
||||||
|
<path
|
||||||
|
d="M17.2106 4.45688L17.1881 4.44L15.9131 3.3825L11.8331 0L1.43811 8.89875V14.5087L6.39749 19.0406L11.8219 24L22.5619 14.9044V8.895L17.2106 4.45688Z"
|
||||||
|
fill="black"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M14.6269 4.47001L11.8519 2.16751L3.0975 9.66188V13.7775L3.36938 14.0269L9.19125 9.06376L14.6269 4.47001Z"
|
||||||
|
// fill="url(#paint0_linear)"
|
||||||
|
fill="white"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M13.3444 13.1381L9.19126 9.06375L3.36938 14.0269L7.67063 17.9587L13.3444 13.1381Z"
|
||||||
|
// fill="url(#paint1_linear)"
|
||||||
|
fill="white"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M20.61 9.43125L15.9244 5.54437L11.6512 9.15562L15.8025 13.2262L20.6062 9.43312L20.61 9.43125Z"
|
||||||
|
// fill="url(#paint2_linear)"
|
||||||
|
fill="white"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M20.6062 9.43315L15.8025 13.2263L8.90436 19.0875L11.8631 21.7913L20.9025 14.1375V9.67502L20.61 9.43127L20.6062 9.43315Z"
|
||||||
|
// fill="url(#paint3_linear)"
|
||||||
|
fill="white"
|
||||||
|
/>
|
||||||
|
<defs>
|
||||||
|
<linearGradient
|
||||||
|
id="paint0_linear"
|
||||||
|
x1="3.0975"
|
||||||
|
y1="8.09813"
|
||||||
|
x2="14.6269"
|
||||||
|
y2="8.09813"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
>
|
||||||
|
<stop offset="0.42" stopColor="#FABD09" />
|
||||||
|
<stop offset="0.83" stopColor="#FA6B00" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="paint1_linear"
|
||||||
|
x1="3.09751"
|
||||||
|
y1="13.5112"
|
||||||
|
x2="14.6269"
|
||||||
|
y2="13.5112"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
>
|
||||||
|
<stop offset="0.25" stopColor="#E700FF" />
|
||||||
|
<stop offset="0.32" stopColor="#E804F9" />
|
||||||
|
<stop offset="0.41" stopColor="#E90EE8" />
|
||||||
|
<stop offset="0.52" stopColor="#EC1FCC" />
|
||||||
|
<stop offset="0.64" stopColor="#F037A5" />
|
||||||
|
<stop offset="0.76" stopColor="#F45672" />
|
||||||
|
<stop offset="0.89" stopColor="#FA7A36" />
|
||||||
|
<stop offset="1" stopColor="#FF9B00" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="paint2_linear"
|
||||||
|
x1="8.90437"
|
||||||
|
y1="9.38625"
|
||||||
|
x2="20.9025"
|
||||||
|
y2="9.38625"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
>
|
||||||
|
<stop stopColor="#BAFF8E" />
|
||||||
|
<stop offset="0.63" stopColor="#008EBB" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="paint3_linear"
|
||||||
|
x1="1220.59"
|
||||||
|
y1="418.3"
|
||||||
|
x2="608.328"
|
||||||
|
y2="1952.52"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
>
|
||||||
|
<stop stopColor="#BAFF8E" />
|
||||||
|
<stop offset="0.63" stopColor="#008EBB" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</>,
|
||||||
|
{
|
||||||
|
'stroke-width': 0,
|
||||||
|
}
|
||||||
|
),
|
||||||
[ICONS.REWARDS]: buildIcon(
|
[ICONS.REWARDS]: buildIcon(
|
||||||
<g fill="none" fillRule="evenodd" strokeLinecap="round">
|
<g fill="none" fillRule="evenodd" strokeLinecap="round">
|
||||||
<circle cx="12" cy="8" r="7" />
|
<circle cx="12" cy="8" r="7" />
|
||||||
|
|
|
@ -1,6 +1,28 @@
|
||||||
// @flow
|
// @flow
|
||||||
|
import * as ICONS from 'constants/icons';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
import classnames from 'classnames';
|
||||||
|
import Icon from 'component/common/icon';
|
||||||
|
|
||||||
const LbcSymbol = () => <span>LBC</span>; // ℄
|
type Props = {
|
||||||
|
withText?: boolean,
|
||||||
|
isTitle?: boolean,
|
||||||
|
size?: number,
|
||||||
|
prefix?: string | number,
|
||||||
|
};
|
||||||
|
|
||||||
|
const LbcSymbol = (props: Props) => {
|
||||||
|
const { prefix, size, isTitle = false } = props;
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{prefix}
|
||||||
|
<Icon
|
||||||
|
icon={ICONS.LBC}
|
||||||
|
size={isTitle ? 22 : size}
|
||||||
|
className={classnames('icon__lbc', { 'icon__lbc--with-text': prefix, 'icon__lbc--title': isTitle })}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
export default LbcSymbol;
|
export default LbcSymbol;
|
||||||
|
|
|
@ -88,17 +88,19 @@ export default function CreatorAnalytics(props: Props) {
|
||||||
? __('No recent uploads')
|
? __('No recent uploads')
|
||||||
: __("You haven't uploaded anything with this channel yet!")
|
: __("You haven't uploaded anything with this channel yet!")
|
||||||
}
|
}
|
||||||
subtitle={
|
actions={
|
||||||
<Button
|
<div className="section__actions">
|
||||||
button="primary"
|
<Button
|
||||||
label={__('Upload Something')}
|
button="primary"
|
||||||
onClick={() => {
|
label={__('Upload Something')}
|
||||||
if (claim) {
|
onClick={() => {
|
||||||
prepareEdit(claim.name);
|
if (claim) {
|
||||||
history.push(`/$/${PAGES.UPLOAD}`);
|
prepareEdit(claim.name);
|
||||||
}
|
history.push(`/$/${PAGES.UPLOAD}`);
|
||||||
}}
|
}
|
||||||
/>
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
@ -145,7 +147,7 @@ export default function CreatorAnalytics(props: Props) {
|
||||||
{/* <Card
|
{/* <Card
|
||||||
iconColor
|
iconColor
|
||||||
className="section"
|
className="section"
|
||||||
title={<span>{__('%lbc_received% LBC Earned', { lbc_received: stats.AllLBCReceived })}</span>}
|
title={<span>{__('%lbc_received% LBRY Credits Earned', { lbc_received: stats.AllLBCReceived })}</span>}
|
||||||
icon={ICONS.REWARDS}
|
icon={ICONS.REWARDS}
|
||||||
subtitle={
|
subtitle={
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
|
|
|
@ -65,7 +65,6 @@ class FilePrice extends React.PureComponent<Props> {
|
||||||
'file-price--modal': type === 'modal',
|
'file-price--modal': type === 'modal',
|
||||||
})}
|
})}
|
||||||
showFree
|
showFree
|
||||||
badge={false}
|
|
||||||
showLBC={showLBC}
|
showLBC={showLBC}
|
||||||
amount={costInfo.cost}
|
amount={costInfo.cost}
|
||||||
isEstimate={!costInfo.includesData}
|
isEstimate={!costInfo.includesData}
|
||||||
|
|
|
@ -25,7 +25,6 @@ function FileSubtitle(props: Props) {
|
||||||
{!SIMPLE_SITE && (
|
{!SIMPLE_SITE && (
|
||||||
<>
|
<>
|
||||||
<CreditAmount
|
<CreditAmount
|
||||||
badge={false}
|
|
||||||
amount={parseFloat(claim.amount) + parseFloat(pendingAmount || claim.meta.support_amount)}
|
amount={parseFloat(claim.amount) + parseFloat(pendingAmount || claim.meta.support_amount)}
|
||||||
precision={2}
|
precision={2}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -34,7 +34,7 @@ class FileValues extends PureComponent<Props> {
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<Card
|
<Card
|
||||||
title={__('LBC details')}
|
title={__('Credit details')}
|
||||||
defaultExpand={false}
|
defaultExpand={false}
|
||||||
actions={
|
actions={
|
||||||
<table className="table table--condensed table--fixed table--lbc-details">
|
<table className="table table--condensed table--fixed table--lbc-details">
|
||||||
|
@ -46,7 +46,7 @@ class FileValues extends PureComponent<Props> {
|
||||||
<Button
|
<Button
|
||||||
button="link"
|
button="link"
|
||||||
href={`https://explorer.lbry.com/tx/${purchaseReceipt.txid}`}
|
href={`https://explorer.lbry.com/tx/${purchaseReceipt.txid}`}
|
||||||
label={<CreditAmount badge={false} amount={Number(purchaseReceipt.amount)} precision={2} />}
|
label={<CreditAmount amount={Number(purchaseReceipt.amount)} precision={2} />}
|
||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -54,11 +54,7 @@ class FileValues extends PureComponent<Props> {
|
||||||
<tr>
|
<tr>
|
||||||
<td> {__('Original Publish Amount')}</td>
|
<td> {__('Original Publish Amount')}</td>
|
||||||
<td>
|
<td>
|
||||||
{claim && claim.amount ? (
|
{claim && claim.amount ? <CreditAmount amount={Number(claim.amount)} precision={2} /> : <p>...</p>}
|
||||||
<CreditAmount badge={false} amount={Number(claim.amount)} precision={2} />
|
|
||||||
) : (
|
|
||||||
<p>...</p>
|
|
||||||
)}
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -73,7 +69,7 @@ class FileValues extends PureComponent<Props> {
|
||||||
button="link"
|
button="link"
|
||||||
className="expandable__button"
|
className="expandable__button"
|
||||||
icon={ICONS.UNLOCK}
|
icon={ICONS.UNLOCK}
|
||||||
label={<CreditAmount badge={false} amount={Number(supportsAmount)} precision={2} />}
|
label={<CreditAmount amount={Number(supportsAmount)} precision={2} />}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
openModal(MODALS.LIQUIDATE_SUPPORTS, { uri });
|
openModal(MODALS.LIQUIDATE_SUPPORTS, { uri });
|
||||||
}}
|
}}
|
||||||
|
@ -81,7 +77,7 @@ class FileValues extends PureComponent<Props> {
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{(!claimIsMine || (claimIsMine && !pendingAmount && supportsAmount === 0)) && (
|
{(!claimIsMine || (claimIsMine && !pendingAmount && supportsAmount === 0)) && (
|
||||||
<CreditAmount badge={false} amount={Number(supportsAmount)} precision={2} />
|
<CreditAmount amount={Number(supportsAmount)} precision={2} />
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{claimIsMine && pendingAmount && <Spinner type={'small'} />}
|
{claimIsMine && pendingAmount && <Spinner type={'small'} />}
|
||||||
|
@ -95,7 +91,7 @@ class FileValues extends PureComponent<Props> {
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<CreditAmount badge={false} amount={Number(claim.meta.effective_amount)} precision={2} />
|
<CreditAmount amount={Number(claim.meta.effective_amount)} precision={2} />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -6,7 +6,6 @@ import React from 'react';
|
||||||
import { withRouter } from 'react-router';
|
import { withRouter } from 'react-router';
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
import Button from 'component/button';
|
import Button from 'component/button';
|
||||||
import LbcSymbol from 'component/common/lbc-symbol';
|
|
||||||
import WunderBar from 'component/wunderbar';
|
import WunderBar from 'component/wunderbar';
|
||||||
import Icon from 'component/common/icon';
|
import Icon from 'component/common/icon';
|
||||||
import { Menu, MenuList, MenuButton, MenuItem } from '@reach/menu-button';
|
import { Menu, MenuList, MenuButton, MenuItem } from '@reach/menu-button';
|
||||||
|
@ -152,13 +151,7 @@ const Header = (props: Props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getWalletTitle() {
|
function getWalletTitle() {
|
||||||
return hideBalance || Number(roundedBalance) === 0 ? (
|
return hideBalance || Number(roundedBalance) === 0 ? __('Your Wallet') : roundedBalance;
|
||||||
__('Your Wallet')
|
|
||||||
) : (
|
|
||||||
<React.Fragment>
|
|
||||||
{roundedBalance} <LbcSymbol />
|
|
||||||
</React.Fragment>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -190,6 +183,7 @@ const Header = (props: Props) => {
|
||||||
navigate={`/$/${PAGES.WALLET}`}
|
navigate={`/$/${PAGES.WALLET}`}
|
||||||
className="header__navigation-item menu__title header__navigation-item--balance"
|
className="header__navigation-item menu__title header__navigation-item--balance"
|
||||||
label={getWalletTitle()}
|
label={getWalletTitle()}
|
||||||
|
iconRight={ICONS.LBC}
|
||||||
// @if TARGET='app'
|
// @if TARGET='app'
|
||||||
onDoubleClick={e => {
|
onDoubleClick={e => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
@ -369,6 +363,7 @@ const Header = (props: Props) => {
|
||||||
navigate={`/$/${PAGES.WALLET}`}
|
navigate={`/$/${PAGES.WALLET}`}
|
||||||
className="header__navigation-item menu__title header__navigation-item--balance"
|
className="header__navigation-item menu__title header__navigation-item--balance"
|
||||||
label={getWalletTitle()}
|
label={getWalletTitle()}
|
||||||
|
iconRight={ICONS.LBC}
|
||||||
// @if TARGET='app'
|
// @if TARGET='app'
|
||||||
onDoubleClick={e => {
|
onDoubleClick={e => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
|
|
@ -46,7 +46,7 @@ class InviteList extends React.PureComponent<Props> {
|
||||||
{referralReward && showClaimable && (
|
{referralReward && showClaimable && (
|
||||||
<RewardLink
|
<RewardLink
|
||||||
button
|
button
|
||||||
label={__(`Claim Your ${rewardAmount} LBC Invite Reward`)}
|
label={__(`Claim Your ${rewardAmount} Credit Invite Reward`)}
|
||||||
claim_code={referralReward.claim_code}
|
claim_code={referralReward.claim_code}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
|
@ -75,7 +75,7 @@ function InviteNew(props: Props) {
|
||||||
<Card
|
<Card
|
||||||
title={__('Invites')}
|
title={__('Invites')}
|
||||||
subtitle={__(
|
subtitle={__(
|
||||||
'Earn LBC for inviting subscribers, followers, fans, friends, etc. to join and follow you on %SITE_NAME%. You can use invites just like affiliate links.',
|
'Earn LBRY Credits for inviting subscribers, followers, fans, friends, etc. to join and follow you on %SITE_NAME%. You can use invites just like affiliate links.',
|
||||||
{ SITE_NAME }
|
{ SITE_NAME }
|
||||||
)}
|
)}
|
||||||
actions={
|
actions={
|
||||||
|
@ -107,7 +107,9 @@ function InviteNew(props: Props) {
|
||||||
|
|
||||||
<Card
|
<Card
|
||||||
title={__('Invite by email')}
|
title={__('Invite by email')}
|
||||||
subtitle={__('Invite someone you know by email and earn LBC when they join %SITE_NAME%.', { SITE_NAME })}
|
subtitle={__('Invite someone you know by email and earn LBRY Credits when they join %SITE_NAME%.', {
|
||||||
|
SITE_NAME,
|
||||||
|
})}
|
||||||
actions={
|
actions={
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<Form onSubmit={handleSubmit}>
|
<Form onSubmit={handleSubmit}>
|
||||||
|
|
|
@ -21,7 +21,7 @@ function BidHelpText(props: Props) {
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
bidHelpText = __(
|
bidHelpText = __(
|
||||||
'If you bid more than %amount% LBC, when someone navigates to %uri%, it will load your published content. However, you can get a longer version of this URL for any bid.',
|
'If you bid more than %amount% LBRY Credits, when someone navigates to %uri%, it will load your published content. However, you can get a longer version of this URL for any bid.',
|
||||||
{
|
{
|
||||||
amount: amountNeededForTakeover,
|
amount: amountNeededForTakeover,
|
||||||
uri: uri,
|
uri: uri,
|
||||||
|
@ -29,7 +29,7 @@ function BidHelpText(props: Props) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
bidHelpText = __('This LBC remains yours and the deposit can be undone at any time.');
|
bidHelpText = __('These LBRY Credits remain yours and the deposit can be undone at any time.');
|
||||||
}
|
}
|
||||||
|
|
||||||
return bidHelpText;
|
return bidHelpText;
|
||||||
|
|
|
@ -6,6 +6,7 @@ import { FormField } from 'component/common/form';
|
||||||
import NameHelpText from './name-help-text';
|
import NameHelpText from './name-help-text';
|
||||||
import BidHelpText from './bid-help-text';
|
import BidHelpText from './bid-help-text';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
name: string,
|
name: string,
|
||||||
|
@ -89,7 +90,7 @@ function PublishName(props: Props) {
|
||||||
} else if (totalAvailableBidAmount < bid) {
|
} else if (totalAvailableBidAmount < bid) {
|
||||||
bidError = __('Deposit cannot be higher than your balance');
|
bidError = __('Deposit cannot be higher than your balance');
|
||||||
} else if (totalAvailableBidAmount <= bid + 0.05) {
|
} else if (totalAvailableBidAmount <= bid + 0.05) {
|
||||||
bidError = __('Please decrease your deposit to account for transaction fees or acquire more LBC.');
|
bidError = __('Please decrease your deposit to account for transaction fees or acquire more LBRY Credits.');
|
||||||
}
|
}
|
||||||
|
|
||||||
setBidError(bidError);
|
setBidError(bidError);
|
||||||
|
@ -131,8 +132,7 @@ function PublishName(props: Props) {
|
||||||
step="any"
|
step="any"
|
||||||
placeholder="0.123"
|
placeholder="0.123"
|
||||||
className="form-field--price-amount"
|
className="form-field--price-amount"
|
||||||
label={__('Deposit (LBC)')}
|
label={<LbcSymbol prefix={__('Deposit')} size={14} />}
|
||||||
postfix="LBC"
|
|
||||||
value={bid}
|
value={bid}
|
||||||
error={bidError}
|
error={bidError}
|
||||||
disabled={!name}
|
disabled={!name}
|
||||||
|
|
|
@ -45,7 +45,7 @@ function PublishPrice(props: Props) {
|
||||||
{fee && fee.currency !== 'LBC' && (
|
{fee && fee.currency !== 'LBC' && (
|
||||||
<p className="form-field__help">
|
<p className="form-field__help">
|
||||||
{__(
|
{__(
|
||||||
'All content fees are charged in LBC. For non-LBC payment methods, the number of credits charged will be adjusted based on the value of LBRY credits at the time of purchase.'
|
'All content fees are charged in LBRY Credits. For alternative payment methods, the number of LBRY Credits charged will be adjusted based on the value of LBRY Credits at the time of purchase.'
|
||||||
)}
|
)}
|
||||||
</p>
|
</p>
|
||||||
)}
|
)}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
|
import * as ICONS from 'constants/icons';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Button from 'component/button';
|
import Button from 'component/button';
|
||||||
|
|
||||||
|
@ -23,11 +24,11 @@ const RewardLink = (props: Props) => {
|
||||||
} else if (label) {
|
} else if (label) {
|
||||||
displayLabel = label;
|
displayLabel = label;
|
||||||
} else if (reward && reward.reward_range && reward.reward_range.includes('-')) {
|
} else if (reward && reward.reward_range && reward.reward_range.includes('-')) {
|
||||||
displayLabel = __('Claim %range% LBC', { range: reward.reward_range });
|
displayLabel = __('Claim %range%', { range: reward.reward_range });
|
||||||
} else if (reward && reward.reward_amount > 0) {
|
} else if (reward && reward.reward_amount > 0) {
|
||||||
displayLabel = __('Claim %amount% LBC', { amount: reward.reward_amount });
|
displayLabel = __('Claim %amount%', { amount: reward.reward_amount });
|
||||||
} else {
|
} else {
|
||||||
displayLabel = __('Claim ??? LBC');
|
displayLabel = __('Claim ???');
|
||||||
}
|
}
|
||||||
|
|
||||||
return !reward ? null : (
|
return !reward ? null : (
|
||||||
|
@ -35,6 +36,7 @@ const RewardLink = (props: Props) => {
|
||||||
button={button ? 'primary' : 'link'}
|
button={button ? 'primary' : 'link'}
|
||||||
disabled={isPending}
|
disabled={isPending}
|
||||||
label={displayLabel}
|
label={displayLabel}
|
||||||
|
iconRight={ICONS.LBC}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
claimReward(reward);
|
claimReward(reward);
|
||||||
}}
|
}}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import ButtonTransaction from 'component/common/transaction-link';
|
import ButtonTransaction from 'component/common/transaction-link';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Reward = {
|
type Reward = {
|
||||||
id: string,
|
id: string,
|
||||||
|
@ -42,7 +43,9 @@ const RewardListClaimed = (props: Props) => {
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{__('Title')}</th>
|
<th>{__('Title')}</th>
|
||||||
<th>{__('Amount')}</th>
|
<th>
|
||||||
|
<LbcSymbol size={20} />
|
||||||
|
</th>
|
||||||
<th>{__('Transaction')}</th>
|
<th>{__('Transaction')}</th>
|
||||||
<th>{__('Date')}</th>
|
<th>{__('Date')}</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import TotalBackground from './total-background.png';
|
import TotalBackground from './total-background.png';
|
||||||
import useTween from 'effects/use-tween';
|
import useTween from 'effects/use-tween';
|
||||||
|
import I18nMessage from 'component/i18nMessage';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
rewards: Array<Reward>,
|
rewards: Array<Reward>,
|
||||||
|
@ -16,7 +18,7 @@ function RewardTotal(props: Props) {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className="card card--section card--reward-total" style={{ backgroundImage: `url(${TotalBackground})` }}>
|
<section className="card card--section card--reward-total" style={{ backgroundImage: `url(${TotalBackground})` }}>
|
||||||
{integer} LBC {__('Earned From Rewards')}
|
<I18nMessage tokens={{ amount: integer, lbc: <LbcSymbol /> }}>%amount% %lbc% earned from rewards</I18nMessage>
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,7 @@ const SupportsLiquidate = (props: Props) => {
|
||||||
subtitle={
|
subtitle={
|
||||||
<>
|
<>
|
||||||
<p>
|
<p>
|
||||||
{__('You can unlock all or some of this LBC at any time.')}{' '}
|
{__('You can unlock all or some of these LBRY Credits at any time.')}{' '}
|
||||||
{__('Keeping it locked improves the trust and discoverability of your content.')}
|
{__('Keeping it locked improves the trust and discoverability of your content.')}
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
@ -107,60 +107,58 @@ const SupportsLiquidate = (props: Props) => {
|
||||||
</p>
|
</p>
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
body={
|
|
||||||
abandonClaimError ? (
|
|
||||||
<div className="error__wrapper--no-overflow">
|
|
||||||
<ErrorText>{abandonClaimError}</ErrorText>
|
|
||||||
</div>
|
|
||||||
) : (
|
|
||||||
<>
|
|
||||||
<div className="section">
|
|
||||||
<I18nMessage
|
|
||||||
tokens={{
|
|
||||||
amount: (
|
|
||||||
<strong>
|
|
||||||
<CreditAmount badge={false} amount={Number(previewBalance)} precision={8} />
|
|
||||||
</strong>
|
|
||||||
),
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
%amount% available to unlock
|
|
||||||
</I18nMessage>
|
|
||||||
</div>
|
|
||||||
<div className="section">
|
|
||||||
{previewBalance === 0 && <p>{__('No unlockable tips available')}</p>}
|
|
||||||
{previewBalance === undefined && <p>{__('Loading...')}</p>}
|
|
||||||
{previewBalance && (
|
|
||||||
<Form onSubmit={handleSubmit}>
|
|
||||||
<label htmlFor="supports_liquidate_range">{__('Amount to unlock')}</label>
|
|
||||||
<FormField
|
|
||||||
name="supports_liquidate_range"
|
|
||||||
type={'range'}
|
|
||||||
min={0}
|
|
||||||
step={0.01}
|
|
||||||
max={previewBalance}
|
|
||||||
value={Number(amount) >= 0 ? amount : previewBalance / 4} // by default, set it to 25% of available
|
|
||||||
onChange={e => handleChange(e.target.value)}
|
|
||||||
/>
|
|
||||||
<label className="range__label">
|
|
||||||
<span>0</span>
|
|
||||||
<span>{previewBalance / 2}</span>
|
|
||||||
<span>{previewBalance}</span>
|
|
||||||
</label>
|
|
||||||
<FormField
|
|
||||||
type="text"
|
|
||||||
value={amount >= 0 ? amount || '' : previewBalance && previewBalance / 4}
|
|
||||||
helper={message}
|
|
||||||
onChange={e => handleChange(e.target.value)}
|
|
||||||
/>
|
|
||||||
</Form>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
actions={
|
actions={
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
|
{abandonClaimError ? (
|
||||||
|
<div className="error__wrapper--no-overflow">
|
||||||
|
<ErrorText>{abandonClaimError}</ErrorText>
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
<div className="section">
|
||||||
|
<I18nMessage
|
||||||
|
tokens={{
|
||||||
|
amount: (
|
||||||
|
<strong>
|
||||||
|
<CreditAmount amount={Number(previewBalance)} precision={8} />
|
||||||
|
</strong>
|
||||||
|
),
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
%amount% available to unlock
|
||||||
|
</I18nMessage>
|
||||||
|
</div>
|
||||||
|
<div className="section">
|
||||||
|
{previewBalance === 0 && <p>{__('No unlockable tips available')}</p>}
|
||||||
|
{previewBalance === undefined && <p>{__('Loading...')}</p>}
|
||||||
|
{previewBalance && (
|
||||||
|
<Form onSubmit={handleSubmit}>
|
||||||
|
<label htmlFor="supports_liquidate_range">{__('Amount to unlock')}</label>
|
||||||
|
<FormField
|
||||||
|
name="supports_liquidate_range"
|
||||||
|
type={'range'}
|
||||||
|
min={0}
|
||||||
|
step={0.01}
|
||||||
|
max={previewBalance}
|
||||||
|
value={Number(amount) >= 0 ? amount : previewBalance / 4} // by default, set it to 25% of available
|
||||||
|
onChange={e => handleChange(e.target.value)}
|
||||||
|
/>
|
||||||
|
<label className="range__label">
|
||||||
|
<span>0</span>
|
||||||
|
<span>{previewBalance / 2}</span>
|
||||||
|
<span>{previewBalance}</span>
|
||||||
|
</label>
|
||||||
|
<FormField
|
||||||
|
type="text"
|
||||||
|
value={amount >= 0 ? amount || '' : previewBalance && previewBalance / 4}
|
||||||
|
helper={message}
|
||||||
|
onChange={e => handleChange(e.target.value)}
|
||||||
|
/>
|
||||||
|
</Form>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
<div className="section__actions">
|
<div className="section__actions">
|
||||||
<Button
|
<Button
|
||||||
disabled={error}
|
disabled={error}
|
||||||
|
|
|
@ -136,7 +136,6 @@ class TxoListItem extends React.PureComponent<Props, State> {
|
||||||
</td>
|
</td>
|
||||||
<td className="table__item--align-right">
|
<td className="table__item--align-right">
|
||||||
<CreditAmount
|
<CreditAmount
|
||||||
badge={false}
|
|
||||||
showPlus={isMinus}
|
showPlus={isMinus}
|
||||||
amount={isMinus ? Number(0 - amount) : Number(amount)}
|
amount={isMinus ? Number(0 - amount) : Number(amount)}
|
||||||
precision={8}
|
precision={8}
|
||||||
|
|
|
@ -3,6 +3,7 @@ import * as MODALS from 'constants/modal_types';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import TxoListItem from './internal/txo-list-item';
|
import TxoListItem from './internal/txo-list-item';
|
||||||
import Spinner from 'component/spinner';
|
import Spinner from 'component/spinner';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
emptyMessage: ?string,
|
emptyMessage: ?string,
|
||||||
|
@ -36,7 +37,9 @@ function TransactionListTable(props: Props) {
|
||||||
<th>{<>{__('Type')}</>}</th>
|
<th>{<>{__('Type')}</>}</th>
|
||||||
<th>{__('Details')} </th>
|
<th>{__('Details')} </th>
|
||||||
<th>{__('Transaction')}</th>
|
<th>{__('Transaction')}</th>
|
||||||
<th className="table__item--align-right">{__('Amount (LBC)')}</th>
|
<th className="table__item--align-right">
|
||||||
|
<LbcSymbol size={18} />
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
|
@ -7,6 +7,7 @@ import CardVerify from 'component/cardVerify';
|
||||||
import { Lbryio } from 'lbryinc';
|
import { Lbryio } from 'lbryinc';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
import I18nMessage from 'component/i18nMessage';
|
import I18nMessage from 'component/i18nMessage';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
errorMessage: ?string,
|
errorMessage: ?string,
|
||||||
|
@ -38,7 +39,16 @@ class UserVerify extends React.PureComponent<Props> {
|
||||||
return (
|
return (
|
||||||
<div className="main__auth-content">
|
<div className="main__auth-content">
|
||||||
<section className="section__header">
|
<section className="section__header">
|
||||||
<h1 className="section__title--large">{__('Verify to earn LBC')}</h1>
|
<h1 className="section__title--large">
|
||||||
|
{__('')}
|
||||||
|
<I18nMessage
|
||||||
|
tokens={{
|
||||||
|
lbc: <LbcSymbol size={48} />,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Verify to earn %lbc%
|
||||||
|
</I18nMessage>
|
||||||
|
</h1>
|
||||||
<p>
|
<p>
|
||||||
<I18nMessage
|
<I18nMessage
|
||||||
tokens={{
|
tokens={{
|
||||||
|
@ -50,8 +60,8 @@ class UserVerify extends React.PureComponent<Props> {
|
||||||
SITE_NAME,
|
SITE_NAME,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Verified accounts are eligible to earn LBC for views, watching and reposting content, sharing invite links
|
Verified accounts are eligible to earn LBRY Credits for views, watching and reposting content, sharing
|
||||||
etc. Verifying also helps us keep the %SITE_NAME% community safe too! %Refresh% or %Skip%.
|
invite links etc. Verifying also helps us keep the %SITE_NAME% community safe too! %Refresh% or %Skip%.
|
||||||
</I18nMessage>
|
</I18nMessage>
|
||||||
</p>
|
</p>
|
||||||
<p className="help">
|
<p className="help">
|
||||||
|
@ -138,7 +148,7 @@ class UserVerify extends React.PureComponent<Props> {
|
||||||
<Card
|
<Card
|
||||||
icon={ICONS.REMOVE}
|
icon={ICONS.REMOVE}
|
||||||
title={__('Skip')}
|
title={__('Skip')}
|
||||||
subtitle={__("Verifying is optional. If you skip this, it just means you can't earn LBC.")}
|
subtitle={__("Verifying is optional. If you skip this, it just means you can't earn LBRY Credits.")}
|
||||||
actions={
|
actions={
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<Button {...skipButtonProps} button="primary" label={__('Continue Without Verifying')} />
|
<Button {...skipButtonProps} button="primary" label={__('Continue Without Verifying')} />
|
||||||
|
|
|
@ -4,6 +4,7 @@ import Button from 'component/button';
|
||||||
import CopyableText from 'component/copyableText';
|
import CopyableText from 'component/copyableText';
|
||||||
import QRCode from 'component/common/qr-code';
|
import QRCode from 'component/common/qr-code';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
checkAddressIsMine: string => void,
|
checkAddressIsMine: string => void,
|
||||||
|
@ -48,8 +49,8 @@ class WalletAddress extends React.PureComponent<Props, State> {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card
|
<Card
|
||||||
title={__('Receive Credits')}
|
title={<LbcSymbol prefix={__('Receive')} isTitle />}
|
||||||
subtitle={__('Use this address to receive LBC.')}
|
subtitle={__('Use this address to receive LBRY Credits.')}
|
||||||
actions={
|
actions={
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<CopyableText
|
<CopyableText
|
||||||
|
|
|
@ -97,7 +97,7 @@ class WalletBackup extends React.PureComponent<Props, State> {
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
{__(
|
{__(
|
||||||
'Your LBRY credits, channels, and publishes are controllable by you and only you, via wallet file(s) stored locally on your computer.'
|
'Your LBRY Credits, channels, and publishes are controllable by you and only you, via wallet file(s) stored locally on your computer.'
|
||||||
)}
|
)}
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -8,6 +8,7 @@ import Button from 'component/button';
|
||||||
import Icon from 'component/common/icon';
|
import Icon from 'component/common/icon';
|
||||||
import HelpLink from 'component/common/help-link';
|
import HelpLink from 'component/common/help-link';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
balance: number,
|
balance: number,
|
||||||
|
@ -26,14 +27,7 @@ const WalletBalance = (props: Props) => {
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<section className="columns">
|
<section className="columns">
|
||||||
<Card
|
<Card
|
||||||
title={
|
title={<LbcSymbol prefix={balance} isTitle />}
|
||||||
<span>
|
|
||||||
{(balance || balance === 0) && (
|
|
||||||
<CreditAmount badge={false} amount={balance} precision={8} showLBC={false} />
|
|
||||||
)}{' '}
|
|
||||||
<span className="section__title--small">LBC</span>
|
|
||||||
</span>
|
|
||||||
}
|
|
||||||
subtitle={__('Available Balance')}
|
subtitle={__('Available Balance')}
|
||||||
actions={
|
actions={
|
||||||
<div className="section__actions">
|
<div className="section__actions">
|
||||||
|
@ -86,7 +80,7 @@ const WalletBalance = (props: Props) => {
|
||||||
<Icon sectionIcon icon={ICONS.SUPPORT} />
|
<Icon sectionIcon icon={ICONS.SUPPORT} />
|
||||||
<h2 className="section__title--small">
|
<h2 className="section__title--small">
|
||||||
<strong>
|
<strong>
|
||||||
<CreditAmount badge={false} amount={tipsBalance} precision={8} />
|
<CreditAmount amount={tipsBalance} precision={8} />
|
||||||
</strong>{' '}
|
</strong>{' '}
|
||||||
{__('earned and bound in tips')}
|
{__('earned and bound in tips')}
|
||||||
</h2>
|
</h2>
|
||||||
|
@ -99,7 +93,7 @@ const WalletBalance = (props: Props) => {
|
||||||
<div>
|
<div>
|
||||||
<h2 className="section__title--small">
|
<h2 className="section__title--small">
|
||||||
<strong>
|
<strong>
|
||||||
<CreditAmount badge={false} amount={claimsBalance + supportsBalance} precision={8} />
|
<CreditAmount amount={claimsBalance + supportsBalance} precision={8} />
|
||||||
</strong>{' '}
|
</strong>{' '}
|
||||||
{__('currently staked')}
|
{__('currently staked')}
|
||||||
</h2>
|
</h2>
|
||||||
|
@ -107,12 +101,12 @@ const WalletBalance = (props: Props) => {
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{__('... in your publishes')}</dt>
|
<dt>{__('... in your publishes')}</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<CreditAmount badge={false} amount={claimsBalance} precision={8} />
|
<CreditAmount amount={claimsBalance} precision={8} />
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>{__('... in your supports')}</dt>
|
<dt>{__('... in your supports')}</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<CreditAmount badge={false} amount={supportsBalance} precision={8} />
|
<CreditAmount amount={supportsBalance} precision={8} />
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -6,6 +6,8 @@ import { Form, FormField } from 'component/common/form';
|
||||||
import { Formik } from 'formik';
|
import { Formik } from 'formik';
|
||||||
import { validateSendTx } from 'util/form-validation';
|
import { validateSendTx } from 'util/form-validation';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
|
import I18nMessage from 'component/i18nMessage';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type DraftTransaction = {
|
type DraftTransaction = {
|
||||||
address: string,
|
address: string,
|
||||||
|
@ -38,8 +40,12 @@ class WalletSend extends React.PureComponent<Props> {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card
|
<Card
|
||||||
title={__('Send credits')}
|
title={<LbcSymbol prefix={__('Send')} isTitle />}
|
||||||
subtitle={__('Send LBC to your friends or favorite creators.')}
|
subtitle={
|
||||||
|
<I18nMessage tokens={{ lbc: <LbcSymbol /> }}>
|
||||||
|
Send LBRY Credits to your friends or favorite creators.
|
||||||
|
</I18nMessage>
|
||||||
|
}
|
||||||
actions={
|
actions={
|
||||||
<Formik
|
<Formik
|
||||||
initialValues={{
|
initialValues={{
|
||||||
|
@ -52,10 +58,10 @@ class WalletSend extends React.PureComponent<Props> {
|
||||||
<Form onSubmit={handleSubmit}>
|
<Form onSubmit={handleSubmit}>
|
||||||
<fieldset-group class="fieldset-group--smushed">
|
<fieldset-group class="fieldset-group--smushed">
|
||||||
<FormField
|
<FormField
|
||||||
|
autoFocus
|
||||||
type="number"
|
type="number"
|
||||||
name="amount"
|
name="amount"
|
||||||
label={__('Amount')}
|
label={__('Amount')}
|
||||||
postfix={__('LBC')}
|
|
||||||
className="form-field--price-amount"
|
className="form-field--price-amount"
|
||||||
affixClass="form-field--fix-no-height"
|
affixClass="form-field--fix-no-height"
|
||||||
min="0"
|
min="0"
|
||||||
|
|
|
@ -11,6 +11,7 @@ import { Lbryio } from 'lbryinc';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
import SelectChannel from 'component/selectChannel';
|
import SelectChannel from 'component/selectChannel';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
import { parseURI } from 'lbry-redux';
|
import { parseURI } from 'lbry-redux';
|
||||||
import usePersistedState from 'effects/use-persisted-state';
|
import usePersistedState from 'effects/use-persisted-state';
|
||||||
|
|
||||||
|
@ -152,10 +153,13 @@ function WalletSendTip(props: Props) {
|
||||||
<Form onSubmit={handleSubmit}>
|
<Form onSubmit={handleSubmit}>
|
||||||
{noBalance ? (
|
{noBalance ? (
|
||||||
<Card
|
<Card
|
||||||
title={__('Supporting content requires credits')}
|
title={<I18nMessage tokens={{ lbc: <LbcSymbol size={22} /> }}>Supporting content requires %lbc%</I18nMessage>}
|
||||||
subtitle={__(
|
subtitle={
|
||||||
'With LBC, you can send tips to your favorite creators, or help boost their content for more people to see.'
|
<I18nMessage tokens={{ lbc: <LbcSymbol /> }}>
|
||||||
)}
|
With %lbc%, you can send tips to your favorite creators, or help boost their content for more people to
|
||||||
|
see.
|
||||||
|
</I18nMessage>
|
||||||
|
}
|
||||||
actions={
|
actions={
|
||||||
<div className="section__actions">
|
<div className="section__actions">
|
||||||
<Button
|
<Button
|
||||||
|
@ -192,7 +196,9 @@ function WalletSendTip(props: Props) {
|
||||||
<div className="confirm__label">{__('From')}</div>
|
<div className="confirm__label">{__('From')}</div>
|
||||||
<div className="confirm__value">{selectedChannel}</div>
|
<div className="confirm__value">{selectedChannel}</div>
|
||||||
<div className="confirm__label">{__(isSupport ? 'Supporting' : 'Tipping')}</div>
|
<div className="confirm__label">{__(isSupport ? 'Supporting' : 'Tipping')}</div>
|
||||||
<div className="confirm__value">{tipAmount} LBC</div>
|
<div className="confirm__value">
|
||||||
|
<LbcSymbol prefix={tipAmount} size={22} />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="section__actions">
|
<div className="section__actions">
|
||||||
|
@ -226,7 +232,8 @@ function WalletSendTip(props: Props) {
|
||||||
'button-toggle--active': tipAmount === amount,
|
'button-toggle--active': tipAmount === amount,
|
||||||
'button-toggle--disabled': amount > balance,
|
'button-toggle--disabled': amount > balance,
|
||||||
})}
|
})}
|
||||||
label={`${amount} LBC`}
|
label={amount}
|
||||||
|
iconRight={ICONS.LBC}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setPresetTipAmount(amount);
|
setPresetTipAmount(amount);
|
||||||
setUseCustomTip(false);
|
setUseCustomTip(false);
|
||||||
|
@ -246,7 +253,7 @@ function WalletSendTip(props: Props) {
|
||||||
button="secondary"
|
button="secondary"
|
||||||
className="button-toggle-group-action"
|
className="button-toggle-group-action"
|
||||||
icon={ICONS.BUY}
|
icon={ICONS.BUY}
|
||||||
title={__('Buy more LBC')}
|
title={__('Buy more LBRY Credits')}
|
||||||
navigate={`/$/${PAGES.BUY}`}
|
navigate={`/$/${PAGES.BUY}`}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
@ -260,9 +267,7 @@ function WalletSendTip(props: Props) {
|
||||||
label={
|
label={
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
{__('Custom support amount')}{' '}
|
{__('Custom support amount')}{' '}
|
||||||
<I18nMessage
|
<I18nMessage tokens={{ lbc_balance: <CreditAmount precision={4} amount={balance} /> }}>
|
||||||
tokens={{ lbc_balance: <CreditAmount badge={false} precision={4} amount={balance} /> }}
|
|
||||||
>
|
|
||||||
(%lbc_balance% available)
|
(%lbc_balance% available)
|
||||||
</I18nMessage>
|
</I18nMessage>
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
|
@ -289,7 +294,7 @@ function WalletSendTip(props: Props) {
|
||||||
label={
|
label={
|
||||||
isSupport
|
isSupport
|
||||||
? __('Send Revocable Support')
|
? __('Send Revocable Support')
|
||||||
: __('Send a %amount% Tip', { amount: tipAmount ? `${tipAmount} LBC` : '' })
|
: __('Send a %amount% Tip', { amount: tipAmount ? `${tipAmount} Credit` : '' })
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
{fetchingChannels && <span className="help">{__('Loading your channels...')}</span>}
|
{fetchingChannels && <span className="help">{__('Loading your channels...')}</span>}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
|
import type { Node } from 'react';
|
||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
import { YRBL_HAPPY_IMG_URL, YRBL_SAD_IMG_URL } from 'config';
|
import { YRBL_HAPPY_IMG_URL, YRBL_SAD_IMG_URL } from 'config';
|
||||||
|
@ -8,6 +9,7 @@ type Props = {
|
||||||
subtitle?: string | React.Node,
|
subtitle?: string | React.Node,
|
||||||
type: string,
|
type: string,
|
||||||
className?: string,
|
className?: string,
|
||||||
|
actions?: Node,
|
||||||
};
|
};
|
||||||
|
|
||||||
const yrblTypes = {
|
const yrblTypes = {
|
||||||
|
@ -21,19 +23,22 @@ export default class extends React.PureComponent<Props> {
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { title, subtitle, type, className } = this.props;
|
const { title, subtitle, type, className, actions } = this.props;
|
||||||
|
|
||||||
const image = yrblTypes[type];
|
const image = yrblTypes[type];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="yrbl__wrap">
|
<div className="yrbl__wrap">
|
||||||
<img alt="Friendly gerbil" className={classnames('yrbl', className)} src={`${image}`} />
|
<img alt="Friendly gerbil" className={classnames('yrbl', className)} src={`${image}`} />
|
||||||
{title && subtitle && (
|
<div>
|
||||||
<div className="yrbl__content">
|
{title && subtitle && (
|
||||||
<h2 className="section__title">{title}</h2>
|
<div className="yrbl__content">
|
||||||
<p className="section__subtitle">{subtitle}</p>
|
<h2 className="section__title">{title}</h2>
|
||||||
</div>
|
<p className="section__subtitle">{subtitle}</p>
|
||||||
)}
|
</div>
|
||||||
|
)}
|
||||||
|
{actions}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@ import * as PAGES from 'constants/pages';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Button from 'component/button';
|
import Button from 'component/button';
|
||||||
import Yrbl from 'component/yrbl';
|
import Yrbl from 'component/yrbl';
|
||||||
|
import I18nMessage from 'component/i18nMessage';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
includeWalletLink: boolean,
|
includeWalletLink: boolean,
|
||||||
|
@ -23,29 +25,31 @@ export default function YrblHelp(props: Props) {
|
||||||
title={__('Your wallet is empty')}
|
title={__('Your wallet is empty')}
|
||||||
subtitle={
|
subtitle={
|
||||||
<div>
|
<div>
|
||||||
<p>{__('You need LBC to create a channel and upload content.')}</p>
|
|
||||||
<p>
|
<p>
|
||||||
{__(
|
<I18nMessage tokens={{ lbc: <LbcSymbol /> }}>
|
||||||
'Never fear though, there are tons of ways to earn LBC! You can earn or purchase LBC, or you can have your friends send you some.'
|
You need %lbc% to create a channel and upload content.
|
||||||
)}
|
</I18nMessage>
|
||||||
</p>
|
</p>
|
||||||
<div className="section__actions">
|
<p>
|
||||||
|
<I18nMessage tokens={{ lbc: <LbcSymbol /> }}>
|
||||||
|
Never fear though, there are tons of ways to earn %lbc%! You can earn or purchase %lbc%, or you can have
|
||||||
|
your friends send you some.
|
||||||
|
</I18nMessage>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
actions={
|
||||||
|
<div className="section__actions">
|
||||||
|
<Button button="primary" icon={ICONS.REWARDS} label={__('Earn Rewards')} navigate={`/$/${PAGES.REWARDS}`} />
|
||||||
|
<Button button="secondary" icon={ICONS.BUY} label={'Buy Credits'} navigate={`/$/${PAGES.BUY}`} />
|
||||||
|
{includeWalletLink && (
|
||||||
<Button
|
<Button
|
||||||
button="primary"
|
icon={ICONS.RECEIVE}
|
||||||
icon={ICONS.REWARDS}
|
button="secondary"
|
||||||
label={__('Earn Rewards')}
|
label={__('Your Address')}
|
||||||
navigate={`/$/${PAGES.REWARDS}`}
|
onClick={() => doOpenModal(MODALS.WALLET_RECEIVE)}
|
||||||
/>
|
/>
|
||||||
<Button button="secondary" icon={ICONS.BUY} label={__('Buy Credits')} navigate={`/$/${PAGES.BUY}`} />
|
)}
|
||||||
{includeWalletLink && (
|
|
||||||
<Button
|
|
||||||
icon={ICONS.RECEIVE}
|
|
||||||
button="secondary"
|
|
||||||
label={__('Your Address')}
|
|
||||||
onClick={() => doOpenModal(MODALS.WALLET_RECEIVE)}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -61,6 +61,7 @@ export const MENU = 'Menu';
|
||||||
export const BACKUP = 'Database';
|
export const BACKUP = 'Database';
|
||||||
export const TRANSACTIONS = 'FileText';
|
export const TRANSACTIONS = 'FileText';
|
||||||
export const LBRY = 'Lbry';
|
export const LBRY = 'Lbry';
|
||||||
|
export const LBC = 'LBC';
|
||||||
export const DISCOVER = 'Compass';
|
export const DISCOVER = 'Compass';
|
||||||
export const VISUALIZER_ON = 'Eye';
|
export const VISUALIZER_ON = 'Eye';
|
||||||
export const VISUALIZER_OFF = 'EyeOff';
|
export const VISUALIZER_OFF = 'EyeOff';
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import isDev from 'electron-is-dev';
|
|
||||||
|
|
||||||
export default function doLogWarningConsoleMessage() {
|
export default function doLogWarningConsoleMessage() {
|
||||||
const style = {
|
const style = {
|
||||||
redTitle:
|
redTitle:
|
||||||
|
@ -16,17 +14,17 @@ export default function doLogWarningConsoleMessage() {
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
'%cPasting anything in here could give attackers access to your LBC credits or wallet.',
|
'%cPasting anything in here could give attackers access to your LBRY Credits or wallet.',
|
||||||
style.normalText
|
style.normalText
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
"%cIf you don't understand exactly what you are doing here, please close this window and keep your LBC credits/wallet safe.",
|
"%cIf you don't understand exactly what you are doing here, please close this window and keep your LBRY Credits/wallet safe.",
|
||||||
style.redText
|
style.redText
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
'%cIf you do understand exactly what you are doing, joins us, earn LBC, and make LBRY better! All of LBRY is open-source and we have a sweet secret handshake. Get started at https://lbry.tech/contribute',
|
'%cIf you do understand exactly what you are doing, joins us, earn LBRY Credits, and make LBRY better! All of LBRY is open-source and we have a sweet secret handshake. Get started at https://lbry.tech/contribute',
|
||||||
style.normalText
|
style.normalText
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import Button from 'component/button';
|
||||||
import { Form } from 'component/common/form';
|
import { Form } from 'component/common/form';
|
||||||
import { Modal } from 'modal/modal';
|
import { Modal } from 'modal/modal';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
address: string,
|
address: string,
|
||||||
|
@ -28,16 +29,14 @@ class ModalConfirmTransaction extends React.PureComponent<Props> {
|
||||||
<Card
|
<Card
|
||||||
title={title}
|
title={title}
|
||||||
body={
|
body={
|
||||||
<>
|
<div className="section section--padded card--inline confirm__wrapper">
|
||||||
<div className="section">
|
<div className="section">
|
||||||
<label>{__('Sending: ')}</label>
|
<div className="confirm__label">{__('Sending')}</div>
|
||||||
<blockquote>{amount} LBC</blockquote>
|
<div className="confirm__value">{<LbcSymbol prefix={amount} size={22} />}</div>
|
||||||
|
<div className="confirm__label">{__('To')}</div>
|
||||||
|
<div className="confirm__value">{address}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="section">
|
</div>
|
||||||
<p>{__('To address: ')}</p>
|
|
||||||
<blockquote>{address}</blockquote>
|
|
||||||
</div>
|
|
||||||
</>
|
|
||||||
}
|
}
|
||||||
actions={
|
actions={
|
||||||
<>
|
<>
|
||||||
|
|
|
@ -6,6 +6,7 @@ import Button from 'component/button';
|
||||||
import usePersistedState from 'effects/use-persisted-state';
|
import usePersistedState from 'effects/use-persisted-state';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
import I18nMessage from 'component/i18nMessage';
|
import I18nMessage from 'component/i18nMessage';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
uri: string,
|
uri: string,
|
||||||
|
@ -50,7 +51,13 @@ function ModalRemoveFile(props: Props) {
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<FormField
|
<FormField
|
||||||
name="claim_abandon"
|
name="claim_abandon"
|
||||||
label={__('Abandon on blockchain (reclaim %amount% LBC)', { amount: claim.amount })}
|
label={
|
||||||
|
<I18nMessage
|
||||||
|
tokens={{ lbc: <LbcSymbol prefix={__('reclaim %amount%', { amount: claim.amount })} /> }}
|
||||||
|
>
|
||||||
|
Abandon on blockchain (%lbc%)
|
||||||
|
</I18nMessage>
|
||||||
|
}
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
checked={abandonChecked}
|
checked={abandonChecked}
|
||||||
onChange={() => setAbandonChecked(!abandonChecked)}
|
onChange={() => setAbandonChecked(!abandonChecked)}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import { parseURI, isNameValid, creditsToString } from 'lbry-redux';
|
||||||
import usePersistedState from 'effects/use-persisted-state';
|
import usePersistedState from 'effects/use-persisted-state';
|
||||||
import I18nMessage from 'component/i18nMessage';
|
import I18nMessage from 'component/i18nMessage';
|
||||||
import analytics from 'analytics';
|
import analytics from 'analytics';
|
||||||
|
import LbcSymbol from '../../component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
doHideModal: () => void,
|
doHideModal: () => void,
|
||||||
|
@ -180,8 +181,7 @@ function ModalRepost(props: Props) {
|
||||||
step="any"
|
step="any"
|
||||||
placeholder="0.123"
|
placeholder="0.123"
|
||||||
className="form-field--price-amount"
|
className="form-field--price-amount"
|
||||||
label={__('Deposit (LBC)')}
|
label={<LbcSymbol prefix={__('Deposit')} size={14} />}
|
||||||
postfix="LBC"
|
|
||||||
value={repostBid}
|
value={repostBid}
|
||||||
error={repostBidError}
|
error={repostBidError}
|
||||||
disabled={!repostName}
|
disabled={!repostName}
|
||||||
|
|
|
@ -5,6 +5,8 @@ import { FormField } from 'component/common/form';
|
||||||
import * as txnTypes from 'constants/transaction_types';
|
import * as txnTypes from 'constants/transaction_types';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
import Button from 'component/button';
|
import Button from 'component/button';
|
||||||
|
import I18nMessage from 'component/i18nMessage';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
closeModal: () => void,
|
closeModal: () => void,
|
||||||
|
@ -38,9 +40,10 @@ export default function ModalRevokeClaim(props: Props) {
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<p>{__('Are you sure you want to remove this support?')}</p>
|
<p>{__('Are you sure you want to remove this support?')}</p>
|
||||||
<p>
|
<p>
|
||||||
{__(
|
<I18nMessage tokens={{ lbc: <LbcSymbol /> }}>
|
||||||
"These credits are permanently yours and can be removed at any time. Removing this support will reduce the claim's discoverability and return the LBC to your spendable balance."
|
These credits are permanently yours and can be removed at any time. Removing this support will reduce the
|
||||||
)}
|
claim's discoverability and return the %lbc% to your spendable balance.
|
||||||
|
</I18nMessage>
|
||||||
</p>
|
</p>
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
);
|
);
|
||||||
|
@ -73,9 +76,10 @@ export default function ModalRevokeClaim(props: Props) {
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<p>{__('Are you sure want to revoke this claim?')}</p>
|
<p>{__('Are you sure want to revoke this claim?')}</p>
|
||||||
<p>
|
<p>
|
||||||
{__(
|
<I18nMessage tokens={{ lbc: <LbcSymbol /> }}>
|
||||||
'This will prevent others from resolving and accessing the content you published. It will return the LBC to your spendable balance, less a small transaction fee.'
|
This will prevent others from resolving and accessing the content you published. It will return the %lbc% to
|
||||||
)}
|
your spendable balance, less a small transaction fee.
|
||||||
|
</I18nMessage>
|
||||||
</p>
|
</p>
|
||||||
<p className="help error__text"> {__('FINAL WARNING: This action is permanent and cannot be undone.')}</p>
|
<p className="help error__text"> {__('FINAL WARNING: This action is permanent and cannot be undone.')}</p>
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
|
|
|
@ -3,6 +3,9 @@ import * as React from 'react';
|
||||||
import { FormField, Form } from 'component/common/form';
|
import { FormField, Form } from 'component/common/form';
|
||||||
import { Modal } from 'modal/modal';
|
import { Modal } from 'modal/modal';
|
||||||
import Button from 'component/button';
|
import Button from 'component/button';
|
||||||
|
import Card from 'component/common/card';
|
||||||
|
import I18nMessage from 'component/i18nMessage';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
closeModal: () => void,
|
closeModal: () => void,
|
||||||
|
@ -37,41 +40,49 @@ class ModalRewardCode extends React.PureComponent<Props, State> {
|
||||||
const { rewardCode } = this.state;
|
const { rewardCode } = this.state;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal isOpen contentLabel={__('Enter reward code')} type="card" onAborted={closeModal}>
|
||||||
isOpen
|
<Card
|
||||||
title={__('Enter reward code')}
|
title={__('Enter reward code')}
|
||||||
contentLabel={__('Enter reward code')}
|
subtitle={
|
||||||
type="custom"
|
<I18nMessage
|
||||||
onAborted={closeModal}
|
tokens={{
|
||||||
>
|
lbc: <LbcSymbol prefix={__('Redeem a custom reward code for')} />,
|
||||||
<Form onSubmit={this.handleSubmit}>
|
learn_more: (
|
||||||
<p>
|
<Button button="link" href="https://lbry.com/faq/rewards#reward-code" label={__('Learn more')} />
|
||||||
{__('Redeem a custom reward code for LBC')}
|
),
|
||||||
{'. '}
|
}}
|
||||||
<Button button="link" href="https://lbry.com/faq/rewards#reward-code" label={__('Learn more')} />.
|
>
|
||||||
</p>
|
%lbc%. %learn_more%.
|
||||||
<FormField
|
</I18nMessage>
|
||||||
autoFocus
|
}
|
||||||
type="text"
|
actions={
|
||||||
name="reward-code"
|
<>
|
||||||
inputButton={
|
<Form onSubmit={this.handleSubmit}>
|
||||||
<Button
|
<FormField
|
||||||
button="primary"
|
autoFocus
|
||||||
type="submit"
|
type="text"
|
||||||
disabled={!rewardCode || rewardIsPending}
|
name="reward-code"
|
||||||
label={rewardIsPending ? __('Redeeming') : __('Redeem')}
|
inputButton={
|
||||||
/>
|
<Button
|
||||||
}
|
button="primary"
|
||||||
label={__('Code')}
|
type="submit"
|
||||||
placeholder="0123abc"
|
disabled={!rewardCode || rewardIsPending}
|
||||||
error={error}
|
label={rewardIsPending ? __('Redeeming') : __('Redeem')}
|
||||||
value={rewardCode}
|
/>
|
||||||
onChange={e => this.setState({ rewardCode: e.target.value })}
|
}
|
||||||
/>
|
label={__('Code')}
|
||||||
</Form>
|
placeholder="0123abc"
|
||||||
<div className="card__actions">
|
error={error}
|
||||||
<Button button="link" label={__('Cancel')} onClick={closeModal} />
|
value={rewardCode}
|
||||||
</div>
|
onChange={e => this.setState({ rewardCode: e.target.value })}
|
||||||
|
/>
|
||||||
|
</Form>
|
||||||
|
<div className="card__actions">
|
||||||
|
<Button button="link" label={__('Cancel')} onClick={closeModal} />
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
/>
|
||||||
</Modal>
|
</Modal>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
import { connect } from 'react-redux';
|
|
||||||
import AccountPage from './view';
|
|
||||||
|
|
||||||
const select = state => ({});
|
|
||||||
|
|
||||||
export default connect(
|
|
||||||
select,
|
|
||||||
null
|
|
||||||
)(AccountPage);
|
|
|
@ -1,27 +0,0 @@
|
||||||
// @flow
|
|
||||||
import React from 'react';
|
|
||||||
import RewardSummary from 'component/rewardSummary';
|
|
||||||
import RewardTotal from 'component/rewardTotal';
|
|
||||||
import Page from 'component/page';
|
|
||||||
import UserEmail from 'component/userEmail';
|
|
||||||
import InviteNew from 'component/inviteNew';
|
|
||||||
import InviteList from 'component/inviteList';
|
|
||||||
|
|
||||||
const AccountPage = (props: any) => {
|
|
||||||
return (
|
|
||||||
<Page>
|
|
||||||
<div className="columns section">
|
|
||||||
<div>
|
|
||||||
<RewardTotal />
|
|
||||||
<UserEmail />
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<RewardSummary />
|
|
||||||
<InviteNew />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<InviteList />
|
|
||||||
</Page>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
export default AccountPage;
|
|
|
@ -12,6 +12,7 @@ import { useHistory } from 'react-router';
|
||||||
import Button from 'component/button';
|
import Button from 'component/button';
|
||||||
import Nag from 'component/common/nag';
|
import Nag from 'component/common/nag';
|
||||||
import I18nMessage from 'component/i18nMessage';
|
import I18nMessage from 'component/i18nMessage';
|
||||||
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
|
|
||||||
const MOONPAY_KEY = process.env.MOONPAY_SECRET_KEY;
|
const MOONPAY_KEY = process.env.MOONPAY_SECRET_KEY;
|
||||||
const COUNTRIES = Array.from(
|
const COUNTRIES = Array.from(
|
||||||
|
@ -83,12 +84,23 @@ export default function BuyPage(props: Props) {
|
||||||
learn_more: <Button button="link" label={__('Learn more')} href="https://lbry.com/faq/buy-lbc" />,
|
learn_more: <Button button="link" label={__('Learn more')} href="https://lbry.com/faq/buy-lbc" />,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
LBRY, Inc. partners with Moonpay to provide the option to purchase LBC. %learn_more%.
|
LBRY, Inc. partners with Moonpay to provide the option to purchase LBRY Credits. %learn_more%.
|
||||||
</I18nMessage>
|
</I18nMessage>
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Page noSideNavigation className="main--buy" backout={{ backoutLabel: __('Done'), title: __('Buy credits') }}>
|
<Page
|
||||||
|
noSideNavigation
|
||||||
|
className="main--buy"
|
||||||
|
backout={{
|
||||||
|
backoutLabel: __('Done'),
|
||||||
|
title: (
|
||||||
|
<>
|
||||||
|
<LbcSymbol prefix={__('Buy')} size={28} />
|
||||||
|
</>
|
||||||
|
),
|
||||||
|
}}
|
||||||
|
>
|
||||||
{!user && (
|
{!user && (
|
||||||
<div className="main--empty">
|
<div className="main--empty">
|
||||||
<Spinner delayed />
|
<Spinner delayed />
|
||||||
|
|
|
@ -45,11 +45,9 @@ export default function CreatorDashboardPage(props: Props) {
|
||||||
<Yrbl
|
<Yrbl
|
||||||
type="happy"
|
type="happy"
|
||||||
title={__("You haven't created a channel yet, let's fix that!")}
|
title={__("You haven't created a channel yet, let's fix that!")}
|
||||||
subtitle={
|
actions={
|
||||||
<div>
|
<div className="section__actions">
|
||||||
<div className="section__actions">
|
<Button button="primary" navigate={`/$/${PAGES.CHANNEL_NEW}`} label={__('Create A Channel')} />
|
||||||
<Button button="primary" navigate={`/$/${PAGES.CHANNEL_NEW}`} label={__('Create A Channel')} />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -96,14 +96,12 @@ function FileListDownloaded(props: Props) {
|
||||||
<Yrbl
|
<Yrbl
|
||||||
title={__('Try out the app!')}
|
title={__('Try out the app!')}
|
||||||
subtitle={
|
subtitle={
|
||||||
<>
|
<p className="section__subtitle">{__("Download the app to track files you've viewed and downloaded.")}</p>
|
||||||
<p className="section__subtitle">
|
}
|
||||||
{__("Download the app to track files you've viewed and downloaded.")}
|
actions={
|
||||||
</p>
|
<div className="section__actions">
|
||||||
<div className="section__actions">
|
<Button button="primary" label={__('Get The App')} href="https://lbry.com/get" />
|
||||||
<Button button="primary" label={__('Get The App')} href="https://lbry.com/get" />
|
</div>
|
||||||
</div>
|
|
||||||
</>
|
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -44,7 +44,7 @@ function LibraryPage(props: Props) {
|
||||||
title={
|
title={
|
||||||
IS_WEB ? __("You haven't purchased anything yet") : __("You haven't downloaded anything from LBRY yet")
|
IS_WEB ? __("You haven't purchased anything yet") : __("You haven't downloaded anything from LBRY yet")
|
||||||
}
|
}
|
||||||
subtitle={
|
actions={
|
||||||
<div className="section__actions">
|
<div className="section__actions">
|
||||||
<Button button="primary" navigate="/" label={__('Explore New Content')} />
|
<Button button="primary" navigate="/" label={__('Explore New Content')} />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -67,12 +67,10 @@ export default function NotificationsPage(props: Props) {
|
||||||
<div className="main--empty">
|
<div className="main--empty">
|
||||||
<Yrbl
|
<Yrbl
|
||||||
title={__('No notifications')}
|
title={__('No notifications')}
|
||||||
subtitle={
|
subtitle={<p>{__("You don't have any notifications yet, but they will be here when you do!")}</p>}
|
||||||
<div>
|
actions={
|
||||||
<p>{__("You don't have any notifications yet, but they will be here when you do!")}</p>
|
<div className="section__actions">
|
||||||
<div className="section__actions">
|
<Button button="primary" icon={ICONS.HOME} label={__('Go Home')} navigate="/" />
|
||||||
<Button button="primary" icon={ICONS.HOME} label={__('Go Home')} navigate="/" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -169,7 +169,7 @@ class RewardsPage extends PureComponent<Props> {
|
||||||
<Page>
|
<Page>
|
||||||
{this.renderPageHeader()}
|
{this.renderPageHeader()}
|
||||||
<div className="section">{this.renderUnclaimedRewards()}</div>
|
<div className="section">{this.renderUnclaimedRewards()}</div>
|
||||||
{<RewardListClaimed />}
|
<RewardListClaimed />
|
||||||
</Page>
|
</Page>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,19 +99,17 @@ export default function NotificationSettingsPage(props: Props) {
|
||||||
<Yrbl
|
<Yrbl
|
||||||
type="sad"
|
type="sad"
|
||||||
title={__('Uh oh')}
|
title={__('Uh oh')}
|
||||||
subtitle={
|
subtitle={__('There was an error displaying this page.')}
|
||||||
<>
|
actions={
|
||||||
<div>{__('There was an error displaying this page.')}</div>
|
<div className="section__actions">
|
||||||
<div className="section__actions">
|
<Button
|
||||||
<Button
|
button="secondary"
|
||||||
button="secondary"
|
label={__('Refresh')}
|
||||||
label={__('Refresh')}
|
icon={ICONS.REFRESH}
|
||||||
icon={ICONS.REFRESH}
|
onClick={() => window.location.reload()}
|
||||||
onClick={() => window.location.reload()}
|
/>
|
||||||
/>
|
<Button button="secondary" label={__('Go Home')} icon={ICONS.HOME} navigate={'/'} />
|
||||||
<Button button="secondary" label={__('Go Home')} icon={ICONS.HOME} navigate={'/'} />
|
</div>
|
||||||
</div>
|
|
||||||
</>
|
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
import { DOMAIN } from 'config';
|
import { DOMAIN } from 'config';
|
||||||
import React, { useEffect } from 'react';
|
import React, { useEffect } from 'react';
|
||||||
import { Redirect } from 'react-router-dom';
|
import { Redirect } from 'react-router-dom';
|
||||||
import BusyIndicator from 'component/common/busy-indicator';
|
import Spinner from 'component/spinner';
|
||||||
import ChannelPage from 'page/channel';
|
import ChannelPage from 'page/channel';
|
||||||
import FilePage from 'page/file';
|
import FilePage from 'page/file';
|
||||||
import Page from 'component/page';
|
import Page from 'component/page';
|
||||||
|
@ -78,7 +78,11 @@ function ShowPage(props: Props) {
|
||||||
if (!claim || (claim && !claim.name)) {
|
if (!claim || (claim && !claim.name)) {
|
||||||
innerContent = (
|
innerContent = (
|
||||||
<Page>
|
<Page>
|
||||||
{(claim === undefined || isResolvingUri) && <BusyIndicator message={__('Loading decentralized data...')} />}
|
{(claim === undefined || isResolvingUri) && (
|
||||||
|
<div className="main--empty">
|
||||||
|
<Spinner />
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
{!isResolvingUri && !isSubscribed && (
|
{!isResolvingUri && !isSubscribed && (
|
||||||
<span className="empty">{__("There's nothing available at this location.")}</span>
|
<span className="empty">{__("There's nothing available at this location.")}</span>
|
||||||
)}
|
)}
|
||||||
|
|
|
@ -87,6 +87,7 @@ export function doCommentCreate(
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
console.log('error', error);
|
||||||
dispatch({
|
dispatch({
|
||||||
type: ACTIONS.COMMENT_CREATE_FAILED,
|
type: ACTIONS.COMMENT_CREATE_FAILED,
|
||||||
data: error,
|
data: error,
|
||||||
|
|
|
@ -27,7 +27,7 @@ rewards.claimReward = (type, rewardParams) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
Lbryio.call('reward', 'claim', params, 'post').then(reward => {
|
Lbryio.call('reward', 'claim', params, 'post').then(reward => {
|
||||||
const message = reward.reward_notification || `You have claimed a ${reward.reward_amount} LBC reward.`;
|
const message = reward.reward_notification || `You have claimed a ${reward.reward_amount} LBRY Credit reward.`;
|
||||||
|
|
||||||
// Display global notice
|
// Display global notice
|
||||||
const action = doToast({
|
const action = doToast({
|
||||||
|
|
|
@ -176,11 +176,14 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle icons on the left or right side of the button label
|
// Handle icons on the left or right side of the button label
|
||||||
svg + .button__label,
|
svg + .button__label {
|
||||||
.button__label + svg {
|
|
||||||
margin-left: var(--spacing-s);
|
margin-left: var(--spacing-s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.button__label + svg {
|
||||||
|
margin-left: var(--spacing-xs);
|
||||||
|
}
|
||||||
|
|
||||||
.button-toggle {
|
.button-toggle {
|
||||||
padding: 0 var(--spacing-m);
|
padding: 0 var(--spacing-m);
|
||||||
height: var(--height-button);
|
height: var(--height-button);
|
||||||
|
@ -190,12 +193,10 @@ svg + .button__label,
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: var(--color-card-background);
|
background-color: var(--color-card-background);
|
||||||
|
|
||||||
@media (max-width: $breakpoint-small) {
|
@media (max-width: $breakpoint-small) {
|
||||||
padding: var(--spacing-m) var(--spacing-s);
|
padding: var(--spacing-m) var(--spacing-s);
|
||||||
}
|
}
|
||||||
svg {
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:first-of-type {
|
&:first-of-type {
|
||||||
border-left-width: 1px;
|
border-left-width: 1px;
|
||||||
|
|
|
@ -31,6 +31,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
> * {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: $breakpoint-medium) {
|
@media (max-width: $breakpoint-medium) {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,3 +43,20 @@
|
||||||
.icon--hidden {
|
.icon--hidden {
|
||||||
margin-right: var(--spacing-s);
|
margin-right: var(--spacing-s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon__lbc {
|
||||||
|
vertical-align: middle;
|
||||||
|
// fill: none;
|
||||||
|
|
||||||
|
path {
|
||||||
|
// fill: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon__lbc--with-text {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon__lbc--title {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
.credit-amount {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
// margin-left: var(--spacing-xs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.file-price {
|
.file-price {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -79,6 +79,11 @@ th {
|
||||||
|
|
||||||
.table__item--align-right {
|
.table__item--align-right {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
|
||||||
|
* {
|
||||||
|
text-align: right;
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.table__wrapper {
|
.table__wrapper {
|
||||||
|
|
|
@ -214,12 +214,12 @@ textarea {
|
||||||
font-size: var(--font-small);
|
font-size: var(--font-small);
|
||||||
color: var(--color-text-help);
|
color: var(--color-text-help);
|
||||||
margin-top: var(--spacing-s);
|
margin-top: var(--spacing-s);
|
||||||
margin-bottom: var(--spacing-s);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.help--warning {
|
.help--warning {
|
||||||
@extend .help;
|
@extend .help;
|
||||||
color: var(--color-text-help-warning);
|
color: var(--color-text-help-warning);
|
||||||
|
margin-bottom: var(--spacing-s);
|
||||||
}
|
}
|
||||||
|
|
||||||
.help--inline {
|
.help--inline {
|
||||||
|
@ -315,6 +315,8 @@ textarea {
|
||||||
}
|
}
|
||||||
|
|
||||||
.confirm__value {
|
.confirm__value {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
margin-bottom: var(--spacing-m);
|
margin-bottom: var(--spacing-m);
|
||||||
font-size: var(--font-large);
|
font-size: var(--font-large);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue