Issue/7152 #7214

Closed
billycolon wants to merge 9 commits from issue/7152 into master
115 changed files with 2765 additions and 1311 deletions
Showing only changes of commit c082905fa4 - Show all commits

92
.env.ody Normal file
View file

@ -0,0 +1,92 @@
# Copy this file to .env to make modifications
# Base config
WEBPACK_WEB_PORT=9090
WEBPACK_ELECTRON_PORT=9091
WEB_SERVER_PORT=1337
WELCOME_VERSION=1.0
# Custom Site info
DOMAIN=lbry.tv
URL=https://lbry.tv
# UI
SITE_TITLE=lbry.tv
SITE_NAME=local.lbry.tv
SITE_DESCRIPTION=Meet LBRY, an open, free, and community-controlled content wonderland.
LOGO_TITLE=local.lbry.tv
##### ODYSEE SETTINGS #######
MATOMO_URL=https://analytics.lbry.com/
MATOMO_ID=4
# Base config
WEBPACK_WEB_PORT=9090
WEBPACK_ELECTRON_PORT=9091
WEB_SERVER_PORT=1337
## APIS
LBRY_API_URL=https://api.odysee.com
#LBRY_WEB_API=https://api.na-backend.odysee.com
#LBRY_WEB_STREAMING_API=https://cdn.lbryplayer.xyz
# deprecated:
#LBRY_WEB_BUFFER_API=https://collector-service.api.lbry.tv/api/v1/events/video
#COMMENT_SERVER_API=https://comments.lbry.com/api/v2
WELCOME_VERSION=1.0
# STRIPE
STRIPE_PUBLIC_KEY='pk_live_e8M4dRNnCCbmpZzduEUZBgJO'
## UI
LOADING_BAR_COLOR=#e50054
# IMAGE ASSETS
YRBL_HAPPY_IMG_URL=https://spee.ch/spaceman-happy:a.png
YRBL_SAD_IMG_URL=https://spee.ch/spaceman-sad:d.png
LOGIN_IMG_URL=https://spee.ch/login:b.png
LOGO=https://spee.ch/odysee-logo-png:3.png
LOGO_TEXT_LIGHT=https://spee.ch/odysee-white-png:f.png
LOGO_TEXT_DARK=https://spee.ch/odysee-png:2.png
AVATAR_DEFAULT=https://spee.ch/spaceman-png:2.png
FAVICON=https://spee.ch/favicon-png:c.png
# LOCALE
DEFAULT_LANGUAGE=en
## LINKED CONTENT WHITELIST
KNOWN_APP_DOMAINS=open.lbry.com,lbry.tv,lbry.lat,odysee.com
## CUSTOM CONTENT
# If the following is true, copy custom/homepage.example.js to custom/homepage.js and modify
CUSTOM_HOMEPAGE=true
# Add channels to auto-follow on firstrun (space delimited)
AUTO_FOLLOW_CHANNELS=lbry://@Odysee#80d2590ad04e36fb1d077a9b9e3a8bba76defdf8 lbry://@OdyseeHelp#b58dfaeab6c70754d792cdd9b56ff59b90aea334
## FEATURES AND LIMITS
SIMPLE_SITE=true
BRANDED_SITE=odysee
# SIMPLE_SITE REPLACEMENTS
ENABLE_MATURE=false
ENABLE_UI_NOTIFICATIONS=true
ENABLE_WILD_WEST=true
SHOW_TAGS_INTRO=false
# CENTRALIZED FEATURES
ENABLE_COMMENT_REACTIONS=true
ENABLE_FILE_REACTIONS=true
ENABLE_CREATOR_REACTIONS=true
ENABLE_NO_SOURCE_CLAIMS=true
ENABLE_PREROLL_ADS=false
SHOW_ADS=true
CHANNEL_STAKED_LEVEL_VIDEO_COMMENTS=4
CHANNEL_STAKED_LEVEL_LIVESTREAM=3
WEB_PUBLISH_SIZE_LIMIT_GB=4
#SEARCH TYPES - comma-delimited
LIGHTHOUSE_DEFAULT_TYPES=audio,video

View file

@ -41,5 +41,14 @@ module.name_mapper='^web\/component\(.*\)$' -> '<PROJECT_ROOT>/web/component\1'
module.name_mapper='^web\/effects\(.*\)$' -> '<PROJECT_ROOT>/web/effects\1' module.name_mapper='^web\/effects\(.*\)$' -> '<PROJECT_ROOT>/web/effects\1'
module.name_mapper='^web\/page\(.*\)$' -> '<PROJECT_ROOT>/web/page\1' module.name_mapper='^web\/page\(.*\)$' -> '<PROJECT_ROOT>/web/page\1'
module.name_mapper='^homepage\(.*\)$' -> '<PROJECT_ROOT>/ui/util/homepage\1' module.name_mapper='^homepage\(.*\)$' -> '<PROJECT_ROOT>/ui/util/homepage\1'
module.name_mapper='^scss\/component\(.*\)$' -> '<PROJECT_ROOT>/ui/scss/component/\1'
; Extensions
module.file_ext=.js
module.file_ext=.jsx
module.file_ext=.json
module.file_ext=.css
module.file_ext=.scss
[strict] [strict]

2
.gitignore vendored
View file

@ -33,6 +33,6 @@ package-lock.json
!/custom/robots.disallowall !/custom/robots.disallowall
!/custom/robots.allowall !/custom/robots.allowall
.env .env
.env.ody !.env.ody
.env.desktop .env.desktop
.env.lbrytv .env.lbrytv

View file

@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Added "Shuffle" option on Lists ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921)) - Added "Shuffle" option on Lists ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- Added Play Next/Previous buttons (with shortcuts SHIFT+N/SHIFT+P) ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921)) - Added Play Next/Previous buttons (with shortcuts SHIFT+N/SHIFT+P) ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- Added separate control for autoplay next on video player ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921)) - Added separate control for autoplay next on video player ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- Added Channel Mention selection ability while creating a comment ([#7151](https://github.com/lbryio/lbry-desktop/pull/7151))
### Changed ### Changed
- Changing the supported language from Filipino to Tagalog _community pr!_ ([#6951](https://github.com/lbryio/lbry-desktop/pull/6951)) - Changing the supported language from Filipino to Tagalog _community pr!_ ([#6951](https://github.com/lbryio/lbry-desktop/pull/6951))
@ -22,7 +23,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Clicking on the title of a floating player will take you back to the list ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921)) - Clicking on the title of a floating player will take you back to the list ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- Fix floating player stopping on markdown or image files ([#7073](https://github.com/lbryio/lbry-desktop/pull/7073)) - Fix floating player stopping on markdown or image files ([#7073](https://github.com/lbryio/lbry-desktop/pull/7073))
- Fix list thumbnail upload ([#7074](https://github.com/lbryio/lbry-desktop/pull/7074)) - Fix list thumbnail upload ([#7074](https://github.com/lbryio/lbry-desktop/pull/7074))
- Stream Key is now hidden. ([#7127](https://github.com/lbryio/lbry-desktop/pull/7127)) - Stream Key is now hidden _community pr!_ ([#7127](https://github.com/lbryio/lbry-desktop/pull/7127))
- Fix playlist preview thumbnail ([#7178](https://github.com/lbryio/lbry-desktop/pull/7178)
- Fixed “Your Account” popup on mobile ([#7172](https://github.com/lbryio/lbry-desktop/pull/7172))
## [0.51.2] - [2021-08-20] ## [0.51.2] - [2021-08-20]
@ -1956,4 +1959,4 @@ This release includes a breaking change that will reset many of your settings. T
- Use local file for publishing - Use local file for publishing
- Use local file and html5 for video playback - Use local file and html5 for video playback
- Misc changes needed to make UI compatible with electron. - Misc changes needed to make UI compatible with electron.

0
custom/homepages/.gitkeep Normal file → Executable file
View file

View file

@ -43,6 +43,7 @@ declare type CommentsState = {
linkedCommentAncestors: { [string]: Array<string> }, // {"linkedCommentId": ["parentId", "grandParentId", ...]} linkedCommentAncestors: { [string]: Array<string> }, // {"linkedCommentId": ["parentId", "grandParentId", ...]}
pinnedCommentsById: {}, // ClaimId -> array of pinned comment IDs pinnedCommentsById: {}, // ClaimId -> array of pinned comment IDs
isLoading: boolean, isLoading: boolean,
isLoadingById: boolean,
isLoadingByParentId: { [string]: boolean }, isLoadingByParentId: { [string]: boolean },
myComments: ?Set<string>, myComments: ?Set<string>,
isFetchingReacts: boolean, isFetchingReacts: boolean,
@ -110,14 +111,14 @@ declare type ReactionListResponse = {
declare type CommentListParams = { declare type CommentListParams = {
page: number, // pagination: which page of results page: number, // pagination: which page of results
page_size: number, // pagination: nr of comments to show in a page (max 200) page_size: number, // pagination: nr of comments to show in a page (max 200)
claim_id: string, // claim id of claim being commented on claim_id?: string, // claim id of claim being commented on
channel_name?: string, // signing channel name of claim (enables 'commentsEnabled' check) channel_name?: string, // signing channel name of claim (enables 'commentsEnabled' check)
channel_id?: string, // signing channel claim id of claim (enables 'commentsEnabled' check) channel_id?: string, // signing channel claim id of claim (enables 'commentsEnabled' check)
author_claim_id?: string, // filters comments to just this author author_claim_id?: string, // filters comments to just this author
parent_id?: string, // filters comments to those under this thread parent_id?: string, // filters comments to those under this thread
top_level?: boolean, // filters to only top level comments top_level?: boolean, // filters to only top level comments
hidden?: boolean, // if true, will show hidden comments as well hidden?: boolean, // if true, will show hidden comments as well
sort_by?: number, // NEWEST=0, OLDEST=1, CONTROVERSY=2, POPULARITY=3, sort_by?: number, // @see: ui/constants/comments.js::SORT_BY
}; };
declare type CommentListResponse = { declare type CommentListResponse = {

View file

@ -24,4 +24,18 @@ declare type LivestreamReplayData = Array<LivestreamReplayItem>;
declare type LivestreamState = { declare type LivestreamState = {
fetchingById: {}, fetchingById: {},
viewersById: {}, viewersById: {},
fetchingActiveLivestreams: boolean,
activeLivestreams: ?LivestreamInfo,
activeLivestreamsLastFetchedDate: number,
activeLivestreamsLastFetchedOptions: {},
}
declare type LivestreamInfo = {
[/* creatorId */ string]: {
live: boolean,
viewCount: number,
creatorId: string,
latestClaimId: string,
latestClaimUri: string,
}
} }

View file

@ -37,6 +37,7 @@
"build": "cross-env NODE_ENV=production yarn compile:electron && electron-builder build", "build": "cross-env NODE_ENV=production yarn compile:electron && electron-builder build",
"build:dir": "yarn build -- --dir -c.compression=store -c.mac.identity=null", "build:dir": "yarn build -- --dir -c.compression=store -c.mac.identity=null",
"crossenv": "./node_modules/cross-env/dist/bin/cross-env", "crossenv": "./node_modules/cross-env/dist/bin/cross-env",
"flow": "flow",
"lint": "eslint 'ui/**/*.{js,jsx}' && eslint 'web/**/*.{js,jsx}' && eslint 'electron/**/*.js' && flow", "lint": "eslint 'ui/**/*.{js,jsx}' && eslint 'web/**/*.{js,jsx}' && eslint 'electron/**/*.js' && flow",
"lint-fix": "eslint --fix --quiet 'ui/**/*.{js,jsx}' && eslint --fix --quiet 'web/**/*.{js,jsx}' && eslint --fix --quiet 'electron/**/*.js'", "lint-fix": "eslint --fix --quiet 'ui/**/*.{js,jsx}' && eslint --fix --quiet 'web/**/*.{js,jsx}' && eslint --fix --quiet 'electron/**/*.js'",
"format": "prettier 'src/**/*.{js,jsx,scss,json}' --write", "format": "prettier 'src/**/*.{js,jsx,scss,json}' --write",

View file

@ -51,7 +51,6 @@
"Description of your content": "Description of your content", "Description of your content": "Description of your content",
"Price": "Price", "Price": "Price",
"Free": "Free", "Free": "Free",
"Learn more": "Learn more",
"Name": "Name", "Name": "Name",
"Deposit": "Deposit", "Deposit": "Deposit",
"Language": "Language", "Language": "Language",
@ -103,7 +102,6 @@
"Enter a URL for your thumbnail.": "Enter a URL for your thumbnail.", "Enter a URL for your thumbnail.": "Enter a URL for your thumbnail.",
"Thumbnail Preview": "Thumbnail Preview", "Thumbnail Preview": "Thumbnail Preview",
"Use thumbnail upload tool": "Use thumbnail upload tool", "Use thumbnail upload tool": "Use thumbnail upload tool",
"Thumbnails that entice a viewer to watch a video work best": "Thumbnails that entice a viewer to watch a video work best",
"Create a URL for this content. Simpler names are easier to find and remember.": "Create a URL for this content. Simpler names are easier to find and remember.", "Create a URL for this content. Simpler names are easier to find and remember.": "Create a URL for this content. Simpler names are easier to find and remember.",
"Open file": "Open file", "Open file": "Open file",
"Delete": "Delete", "Delete": "Delete",
@ -175,7 +173,6 @@
"Continue": "Continue", "Continue": "Continue",
"This file has been shared with you by other people.": "This file has been shared with you by other people.", "This file has been shared with you by other people.": "This file has been shared with you by other people.",
"LBRY Inc is not responsible for its content, click continue to proceed at your own risk.": "LBRY Inc is not responsible for its content, click continue to proceed at your own risk.", "LBRY Inc is not responsible for its content, click continue to proceed at your own risk.": "LBRY Inc is not responsible for its content, click continue to proceed at your own risk.",
"Find what you were looking for?": "Find what you were looking for?",
"Yes": "Yes", "Yes": "Yes",
"No": "No", "No": "No",
"These search results are provided by LBRY, Inc.": "These search results are provided by LBRY, Inc.", "These search results are provided by LBRY, Inc.": "These search results are provided by LBRY, Inc.",
@ -207,8 +204,14 @@
"View": "View", "View": "View",
"Edit": "Edit", "Edit": "Edit",
"Copied": "Copied", "Copied": "Copied",
"Copied stream key.": "Copied stream key.",
"Copied stream server URL.": "Copied stream server URL.",
"Failed to copy.": "Failed to copy.",
"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%.": "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...",
"Your comments": "Your comments",
"View your past comments.": "View your past comments.",
"Content or channel was deleted.": "Content or channel was deleted.",
"Comments": "Comments", "Comments": "Comments",
"Comment": "Comment", "Comment": "Comment",
"Comment --[button to submit something]--": "Comment", "Comment --[button to submit something]--": "Comment",
@ -314,6 +317,8 @@
"Confirm Thumbnail Upload": "Confirm Thumbnail Upload", "Confirm Thumbnail Upload": "Confirm Thumbnail Upload",
"Upload": "Upload", "Upload": "Upload",
"upload": "upload", "upload": "upload",
"Your uploads": "Your uploads",
"Invalid thumbnail": "Invalid thumbnail",
"Uploading thumbnail": "Uploading thumbnail", "Uploading thumbnail": "Uploading thumbnail",
"Please wait for thumbnail to finish uploading": "Please wait for thumbnail to finish uploading", "Please wait for thumbnail to finish uploading": "Please wait for thumbnail to finish uploading",
"A thumbnail is required. Please upload or provide an image URL above.": "A thumbnail is required. Please upload or provide an image URL above.", "A thumbnail is required. Please upload or provide an image URL above.": "A thumbnail is required. Please upload or provide an image URL above.",
@ -538,6 +543,7 @@
"Create a new account or sign in.": "Create a new account or sign in.", "Create a new account or sign in.": "Create a new account or sign in.",
"Terms of Service": "Terms of Service", "Terms of Service": "Terms of Service",
"Learn More": "Learn More", "Learn More": "Learn More",
"Learn more": "Learn more",
"Community": "Community", "Community": "Community",
"Resources": "Resources", "Resources": "Resources",
"Policies": "Policies", "Policies": "Policies",
@ -780,6 +786,7 @@
"There was an error reposting this claim. Please try again later.": "There was an error reposting this claim. Please try again later.", "There was an error reposting this claim. Please try again later.": "There was an error reposting this claim. Please try again later.",
"Claim ID": "Claim ID", "Claim ID": "Claim ID",
"Official YouTube Creator": "Official YouTube Creator", "Official YouTube Creator": "Official YouTube Creator",
"YouTube Sync": "YouTube Sync",
"Last checked %time_ago%": "Last checked %time_ago%", "Last checked %time_ago%": "Last checked %time_ago%",
"Install Now": "Install Now", "Install Now": "Install Now",
"Invite Link": "Invite Link", "Invite Link": "Invite Link",
@ -1397,8 +1404,8 @@
"Gaming": "Gaming", "Gaming": "Gaming",
"Game": "Game", "Game": "Game",
"Nice People": "Nice People", "Nice People": "Nice People",
"Tech": "Tech",
"Lab": "Lab", "Lab": "Lab",
"Tech": "Tech",
"Technology": "Technology", "Technology": "Technology",
"Movies": "Movies", "Movies": "Movies",
"News": "News", "News": "News",
@ -1456,6 +1463,7 @@
"Staked LBRY Credits": "Staked LBRY Credits", "Staked LBRY Credits": "Staked LBRY Credits",
"1 comment": "1 comment", "1 comment": "1 comment",
"%total_comments% comments": "%total_comments% comments", "%total_comments% comments": "%total_comments% comments",
"No comments": "No comments",
"Upvote": "Upvote", "Upvote": "Upvote",
"Downvote": "Downvote", "Downvote": "Downvote",
"You loved this": "You loved this", "You loved this": "You loved this",
@ -1752,12 +1760,8 @@
"Moderator": "Moderator", "Moderator": "Moderator",
"Global Unblock Channel": "Global Unblock Channel", "Global Unblock Channel": "Global Unblock Channel",
"Global Block Channel": "Global Block Channel", "Global Block Channel": "Global Block Channel",
"Moderator tools": "Moderator tools", "Block this channel on behalf of %creator%.": "Block this channel on behalf of %creator%.",
"Global Block": "Global Block", "Block this channel on behalf of the creator.": "Block this channel on behalf of the creator.",
"Block this channel as global admin": "Block this channel as global admin",
"Moderator Block": "Moderator Block",
"Block this channel on behalf of %creator%": "Block this channel on behalf of %creator%",
"creator": "creator",
"Enter the timeout duration. Examples: %examples%": "Enter the timeout duration. Examples: %examples%", "Enter the timeout duration. Examples: %examples%": "Enter the timeout duration. Examples: %examples%",
"Wow, banned for more than 100 years?": "Wow, banned for more than 100 years?", "Wow, banned for more than 100 years?": "Wow, banned for more than 100 years?",
"Invalid duration.": "Invalid duration.", "Invalid duration.": "Invalid duration.",
@ -1775,12 +1779,15 @@
"Moderators": "Moderators", "Moderators": "Moderators",
"Moderators can block channels on your behalf. Blocked channels will appear in your \"Blocked and Muted\" list.": "Moderators can block channels on your behalf. Blocked channels will appear in your \"Blocked and Muted\" list.", "Moderators can block channels on your behalf. Blocked channels will appear in your \"Blocked and Muted\" list.": "Moderators can block channels on your behalf. Blocked channels will appear in your \"Blocked and Muted\" list.",
"Add as moderator": "Add as moderator", "Add as moderator": "Add as moderator",
"Assign this user to moderate %channel%": "Assign this user to moderate %channel%", "Assign this user to moderate %channel%.": "Assign this user to moderate %channel%.",
"Assign this user to moderate your channel.": "Assign this user to moderate your channel.",
"Mute (m)": "Mute (m)", "Mute (m)": "Mute (m)",
"Playback Rate (<, >)": "Playback Rate (<, >)", "Playback Rate (<, >)": "Playback Rate (<, >)",
"Fullscreen (f)": "Fullscreen (f)", "Fullscreen (f)": "Fullscreen (f)",
"Pause (space)": "Pause (space)", "Pause (space)": "Pause (space)",
"Play (space)": "Play (space)", "Play (space)": "Play (space)",
"Play Next (SHIFT+N)": "Play Next (SHIFT+N)",
"Play Previous (SHIFT+P)": "Play Previous (SHIFT+P)",
"Unmute (m)": "Unmute (m)", "Unmute (m)": "Unmute (m)",
"Exit Fullscreen (f)": "Exit Fullscreen (f)", "Exit Fullscreen (f)": "Exit Fullscreen (f)",
"Theater Mode (t)": "Theater Mode (t)", "Theater Mode (t)": "Theater Mode (t)",
@ -2108,6 +2115,7 @@
"Manage Card": "Manage Card", "Manage Card": "Manage Card",
"Card Details": "Card Details", "Card Details": "Card Details",
"Remove Card": "Remove Card", "Remove Card": "Remove Card",
"Sorry, there was an error in processing your payment!": "Sorry, there was an error in processing your payment!",
"Congratulations! Your account has been connected with Odysee.": "Congratulations! Your account has been connected with Odysee.", "Congratulations! Your account has been connected with Odysee.": "Congratulations! Your account has been connected with Odysee.",
"Your account balance is %balance% USD. Functionality to view your transactions and withdraw your balance will be landing shortly.": "Your account balance is %balance% USD. Functionality to view your transactions and withdraw your balance will be landing shortly.", "Your account balance is %balance% USD. Functionality to view your transactions and withdraw your balance will be landing shortly.": "Your account balance is %balance% USD. Functionality to view your transactions and withdraw your balance will be landing shortly.",
"Your account balance is $0 USD. When you receive a tip you will see it here.": "Your account balance is $0 USD. When you receive a tip you will see it here.", "Your account balance is $0 USD. When you receive a tip you will see it here.": "Your account balance is $0 USD. When you receive a tip you will see it here.",
@ -2137,11 +2145,8 @@
"%title% by %channelTitle%": "%title% by %channelTitle%", "%title% by %channelTitle%": "%title% by %channelTitle%",
"%title% by %channelTitle% %ariaDate%": "%title% by %channelTitle% %ariaDate%", "%title% by %channelTitle% %ariaDate%": "%title% by %channelTitle% %ariaDate%",
"%title% by %channelTitle% %ariaDate%, %mediaDuration%": "%title% by %channelTitle% %ariaDate%, %mediaDuration%", "%title% by %channelTitle% %ariaDate%, %mediaDuration%": "%title% by %channelTitle% %ariaDate%, %mediaDuration%",
"Collapse Thread": "Collapse Thread",
"Collapse": "Collapse", "Collapse": "Collapse",
"Expand Comments": "Expand Comments",
"Expand": "Expand", "Expand": "Expand",
"Load More": "Load More",
"%formattedSubCount% Followers": "%formattedSubCount% Followers", "%formattedSubCount% Followers": "%formattedSubCount% Followers",
"1 Follower": "1 Follower", "1 Follower": "1 Follower",
"Collection": "Collection", "Collection": "Collection",
@ -2170,5 +2175,20 @@
"Card Last 4": "Card Last 4", "Card Last 4": "Card Last 4",
"Search blocked channel name": "Search blocked channel name", "Search blocked channel name": "Search blocked channel name",
"Discuss": "Discuss", "Discuss": "Discuss",
"Play Next (SHIFT+N)": "Play Next (SHIFT+N)",
"Play Previous (SHIFT+P)": "Play Previous (SHIFT+P)",
"Finance": "Finance",
"You followed @veritasium!": "You followed @veritasium!",
"Downloading": "Downloading",
"Do you cancel download this file?": "Do you cancel download this file?",
"%remainingMinutes% minutes %remainSecond% seconds remaining": "%remainingMinutes% minutes %remainSecond% seconds remaining",
"%remainSecond% seconds remaining": "%remainSecond% seconds remaining",
"%written% of %total%": "%written% of %total%",
"(%speed%/sec)": "(%speed%/sec)",
"lbry.tv has been retired. You have been magically transported to Odysee.com. %more%": "lbry.tv has been retired. You have been magically transported to Odysee.com. %more%",
"Show more livestreams": "Show more livestreams",
"Creator": "Creator",
"From comments": "From comments",
"From search": "From search",
"--end--": "--end--" "--end--": "--end--"
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -13,6 +13,8 @@
<link rel="preload" href="/public/font/v1/700.woff" as="font" type="font/woff" crossorigin /> <link rel="preload" href="/public/font/v1/700.woff" as="font" type="font/woff" crossorigin />
<link rel="preload" href="/public/font/v1/700i.woff" as="font" type="font/woff" crossorigin /> <link rel="preload" href="/public/font/v1/700i.woff" as="font" type="font/woff" crossorigin />
<link rel="shortcut icon" href="/public/favicon-spaceman.png">
<style> <style>
@font-face { @font-face {
font-family: 'Inter'; font-family: 'Inter';

View file

@ -56,7 +56,8 @@ function ChannelContent(props: Props) {
claimType, claimType,
empty, empty,
} = props; } = props;
const claimsInChannel = (claim && claim.meta.claims_in_channel) || 0; // const claimsInChannel = (claim && claim.meta.claims_in_channel) || 0;
const claimsInChannel = 9999;
const [searchQuery, setSearchQuery] = React.useState(''); const [searchQuery, setSearchQuery] = React.useState('');
const [searchResults, setSearchResults] = React.useState(undefined); const [searchResults, setSearchResults] = React.useState(undefined);
const { const {

View file

@ -17,7 +17,7 @@ function ChannelDiscussion(props: Props) {
} }
return ( return (
<section className="section"> <section className="section">
<CommentsList uri={uri} linkedCommentId={linkedCommentId} /> <CommentsList uri={uri} linkedCommentId={linkedCommentId} commentsAreExpanded />
</section> </section>
); );
} }

View file

@ -0,0 +1,10 @@
import { connect } from 'react-redux';
import { makeSelectClaimForUri, makeSelectIsUriResolving } from 'lbry-redux';
import ChannelMentionSuggestion from './view';
const select = (state, props) => ({
claim: makeSelectClaimForUri(props.uri)(state),
isResolvingUri: makeSelectIsUriResolving(props.uri)(state),
});
export default connect(select)(ChannelMentionSuggestion);

View file

@ -0,0 +1,32 @@
// @flow
import { ComboboxOption } from '@reach/combobox';
import ChannelThumbnail from 'component/channelThumbnail';
import React from 'react';
type Props = {
claim: ?Claim,
uri?: string,
isResolvingUri: boolean,
};
export default function ChannelMentionSuggestion(props: Props) {
const { claim, uri, isResolvingUri } = props;
return !claim ? null : (
<ComboboxOption value={uri}>
{isResolvingUri ? (
<div className="channel-mention__suggestion">
<div className="media__thumb media__thumb--resolving" />
</div>
) : (
<div className="channel-mention__suggestion">
<ChannelThumbnail xsmall uri={uri} />
<span className="channel-mention__suggestion-label">
<div className="channel-mention__suggestion-title">{(claim.value && claim.value.title) || claim.name}</div>
<div className="channel-mention__suggestion-name">{claim.name}</div>
</span>
</div>
)}
</ComboboxOption>
);
}

View file

@ -0,0 +1,36 @@
import { connect } from 'react-redux';
import { selectShowMatureContent } from 'redux/selectors/settings';
import { selectSubscriptions } from 'redux/selectors/subscriptions';
import { withRouter } from 'react-router';
import { doResolveUris, makeSelectClaimForUri } from 'lbry-redux';
import { makeSelectTopLevelCommentsForUri } from 'redux/selectors/comments';
import ChannelMentionSuggestions from './view';
const select = (state, props) => {
const subscriptionUris = selectSubscriptions(state).map(({ uri }) => uri);
const topLevelComments = makeSelectTopLevelCommentsForUri(props.uri)(state);
const commentorUris = [];
// Avoid repeated commentors
topLevelComments.map(({ channel_url }) => !commentorUris.includes(channel_url) && commentorUris.push(channel_url));
const getUnresolved = (uris) =>
uris.map((uri) => !makeSelectClaimForUri(uri)(state) && uri).filter((uri) => uri !== false);
const getCanonical = (uris) =>
uris
.map((uri) => makeSelectClaimForUri(uri)(state) && makeSelectClaimForUri(uri)(state).canonical_url)
.filter((uri) => Boolean(uri));
return {
commentorUris,
subscriptionUris,
unresolvedCommentors: getUnresolved(commentorUris),
unresolvedSubscriptions: getUnresolved(subscriptionUris),
canonicalCreator: getCanonical([props.creatorUri])[0],
canonicalCommentors: getCanonical(commentorUris),
canonicalSubscriptions: getCanonical(subscriptionUris),
showMature: selectShowMatureContent(state),
};
};
export default withRouter(connect(select, { doResolveUris })(ChannelMentionSuggestions));

View file

@ -0,0 +1,285 @@
// @flow
import { Combobox, ComboboxInput, ComboboxPopover, ComboboxList } from '@reach/combobox';
import { Form } from 'component/common/form';
import { parseURI, regexInvalidURI } from 'lbry-redux';
import { SEARCH_OPTIONS } from 'constants/search';
import * as KEYCODES from 'constants/keycodes';
import ChannelMentionSuggestion from 'component/channelMentionSuggestion';
import ChannelMentionTopSuggestion from 'component/channelMentionTopSuggestion';
import React from 'react';
import Spinner from 'component/spinner';
import type { ElementRef } from 'react';
import useLighthouse from 'effects/use-lighthouse';
const INPUT_DEBOUNCE_MS = 1000;
const LIGHTHOUSE_MIN_CHARACTERS = 3;
type Props = {
inputRef: any,
mentionTerm: string,
noTopSuggestion?: boolean,
showMature: boolean,
isLivestream: boolean,
creatorUri: string,
commentorUris: Array<string>,
subscriptionUris: Array<string>,
unresolvedCommentors: Array<string>,
unresolvedSubscriptions: Array<string>,
canonicalCreator: string,
canonicalCommentors: Array<string>,
canonicalSubscriptions: Array<string>,
doResolveUris: (Array<string>) => void,
customSelectAction?: (string, number) => void,
};
export default function ChannelMentionSuggestions(props: Props) {
const {
unresolvedCommentors,
unresolvedSubscriptions,
canonicalCreator,
isLivestream,
creatorUri,
inputRef,
showMature,
noTopSuggestion,
mentionTerm,
doResolveUris,
customSelectAction,
} = props;
const comboboxInputRef: ElementRef<any> = React.useRef();
const comboboxListRef: ElementRef<any> = React.useRef();
const mainEl = document.querySelector('.channel-mention__suggestions');
const [debouncedTerm, setDebouncedTerm] = React.useState('');
const [mostSupported, setMostSupported] = React.useState('');
const [canonicalResults, setCanonicalResults] = React.useState([]);
const isRefFocused = (ref) => ref && ref.current === document.activeElement;
const subscriptionUris = props.subscriptionUris.filter((uri) => uri !== creatorUri);
const canonicalSubscriptions = props.canonicalSubscriptions.filter((uri) => uri !== canonicalCreator);
const commentorUris = props.commentorUris.filter((uri) => uri !== creatorUri && !subscriptionUris.includes(uri));
const canonicalCommentors = props.canonicalCommentors.filter(
(uri) => uri !== canonicalCreator && !canonicalSubscriptions.includes(uri)
);
const termToMatch = mentionTerm && mentionTerm.replace('@', '').toLowerCase();
const allShownUris = [creatorUri, ...subscriptionUris, ...commentorUris];
const allShownCanonical = [canonicalCreator, ...canonicalSubscriptions, ...canonicalCommentors];
const possibleMatches = allShownUris.filter((uri) => {
try {
const { channelName } = parseURI(uri);
return channelName.toLowerCase().includes(termToMatch);
} catch (e) {}
});
const searchSize = 5;
const additionalOptions = { isBackgroundSearch: false, [SEARCH_OPTIONS.CLAIM_TYPE]: SEARCH_OPTIONS.INCLUDE_CHANNELS };
const { results, loading } = useLighthouse(debouncedTerm, showMature, searchSize, additionalOptions, 0);
const stringifiedResults = JSON.stringify(results);
const hasMinLength = mentionTerm && mentionTerm.length >= LIGHTHOUSE_MIN_CHARACTERS;
const isTyping = debouncedTerm !== mentionTerm;
const showPlaceholder = isTyping || loading;
const isUriFromTermValid = !regexInvalidURI.test(mentionTerm.substring(1));
const handleSelect = React.useCallback(
(value, key) => {
if (customSelectAction) {
// Give them full results, as our resolved one might truncate the claimId.
customSelectAction(value || (results && results.find((r) => r.startsWith(value))) || '', Number(key));
}
},
[customSelectAction, results]
);
React.useEffect(() => {
const timer = setTimeout(() => {
if (isTyping) setDebouncedTerm(!hasMinLength ? '' : mentionTerm);
}, INPUT_DEBOUNCE_MS);
return () => clearTimeout(timer);
}, [hasMinLength, isTyping, mentionTerm]);
React.useEffect(() => {
if (!mainEl) return;
const header = document.querySelector('.header__navigation');
function handleReflow() {
const boxAtTopOfPage = header && mainEl.getBoundingClientRect().top <= header.offsetHeight;
const boxAtBottomOfPage = mainEl.getBoundingClientRect().bottom >= window.innerHeight;
if (boxAtTopOfPage) {
mainEl.setAttribute('flow-bottom', '');
}
if (mainEl.getAttribute('flow-bottom') !== null && boxAtBottomOfPage) {
mainEl.removeAttribute('flow-bottom');
}
}
handleReflow();
window.addEventListener('scroll', handleReflow);
return () => window.removeEventListener('scroll', handleReflow);
}, [mainEl]);
React.useEffect(() => {
if (!inputRef || !comboboxInputRef || !mentionTerm) return;
function handleKeyDown(event) {
const { keyCode } = event;
const activeElement = document.activeElement;
if (keyCode === KEYCODES.UP || keyCode === KEYCODES.DOWN) {
if (isRefFocused(comboboxInputRef)) {
const selectedId = activeElement && activeElement.getAttribute('aria-activedescendant');
const selectedItem = selectedId && document.querySelector(`li[id="${selectedId}"]`);
if (selectedItem) selectedItem.scrollIntoView({ block: 'nearest', inline: 'nearest' });
} else {
// $FlowFixMe
comboboxInputRef.current.focus();
}
} else {
if ((isRefFocused(comboboxInputRef) || isRefFocused(inputRef)) && keyCode === KEYCODES.TAB) {
event.preventDefault();
const activeValue = activeElement && activeElement.getAttribute('value');
if (activeValue) {
handleSelect(activeValue, keyCode);
} else if (possibleMatches.length) {
// $FlowFixMe
const suggest = allShownCanonical.find((matchUri) => possibleMatches.find((uri) => uri.includes(matchUri)));
if (suggest) handleSelect(suggest, keyCode);
} else if (results) {
handleSelect(mentionTerm, keyCode);
}
}
if (isRefFocused(comboboxInputRef)) {
// $FlowFixMe
inputRef.current.focus();
}
}
}
window.addEventListener('keydown', handleKeyDown);
return () => window.removeEventListener('keydown', handleKeyDown);
}, [allShownCanonical, handleSelect, inputRef, mentionTerm, possibleMatches, results]);
React.useEffect(() => {
if (!stringifiedResults) return;
const arrayResults = JSON.parse(stringifiedResults);
if (arrayResults && arrayResults.length > 0) {
// $FlowFixMe
doResolveUris(arrayResults).then((response) => {
try {
// $FlowFixMe
const canonical_urls = Object.values(response).map(({ canonical_url }) => canonical_url);
setCanonicalResults(canonical_urls);
} catch (e) {}
});
}
}, [doResolveUris, stringifiedResults]);
// Only resolve commentors on Livestreams when actually mentioning/looking for it
React.useEffect(() => {
if (isLivestream && unresolvedCommentors && mentionTerm) doResolveUris(unresolvedCommentors);
}, [doResolveUris, isLivestream, mentionTerm, unresolvedCommentors]);
// Only resolve the subscriptions that match the mention term, instead of all
React.useEffect(() => {
if (isTyping) return;
const urisToResolve = [];
subscriptionUris.map(
(uri) =>
hasMinLength &&
possibleMatches.includes(uri) &&
unresolvedSubscriptions.includes(uri) &&
urisToResolve.push(uri)
);
if (urisToResolve.length > 0) doResolveUris(urisToResolve);
}, [doResolveUris, hasMinLength, isTyping, possibleMatches, subscriptionUris, unresolvedSubscriptions]);
const suggestionsRow = (
label: string,
suggestions: Array<string>,
canonical: Array<string>,
hasSuggestionsBelow: boolean
) => {
if (mentionTerm.length > 1 && suggestions !== results) {
suggestions = suggestions.filter((uri) => possibleMatches.includes(uri));
} else if (suggestions === results) {
suggestions = suggestions.filter((uri) => !allShownUris.includes(uri));
}
// $FlowFixMe
suggestions = suggestions
.map((matchUri) => canonical.find((uri) => matchUri.includes(uri)))
.filter((uri) => Boolean(uri));
if (canonical === canonicalResults) {
suggestions = suggestions.filter((uri) => uri !== mostSupported);
}
return !suggestions.length ? null : (
<>
<div className="channel-mention__label">{label}</div>
{suggestions.map((uri) => (
<ChannelMentionSuggestion key={uri} uri={uri} />
))}
{hasSuggestionsBelow && <hr className="channel-mention__top-separator" />}
</>
);
};
return isRefFocused(inputRef) || isRefFocused(comboboxInputRef) ? (
<Form onSubmit={() => handleSelect(mentionTerm)}>
<Combobox className="channel-mention" onSelect={handleSelect}>
<ComboboxInput ref={comboboxInputRef} className="channel-mention__input--none" value={mentionTerm} />
{mentionTerm && isUriFromTermValid && (
<ComboboxPopover portal={false} className="channel-mention__suggestions">
<ComboboxList ref={comboboxListRef}>
{creatorUri &&
suggestionsRow(
__('Creator'),
[creatorUri],
[canonicalCreator],
canonicalSubscriptions.length > 0 || commentorUris.length > 0 || !showPlaceholder
)}
{canonicalSubscriptions.length > 0 &&
suggestionsRow(
__('Following'),
subscriptionUris,
canonicalSubscriptions,
commentorUris.length > 0 || !showPlaceholder
)}
{commentorUris.length > 0 &&
suggestionsRow(__('From comments'), commentorUris, canonicalCommentors, !showPlaceholder)}
{hasMinLength &&
(showPlaceholder ? (
<Spinner type="small" />
) : (
results && (
<>
{!noTopSuggestion && (
<ChannelMentionTopSuggestion
query={debouncedTerm}
shownUris={allShownCanonical}
setMostSupported={(winningUri) => setMostSupported(winningUri)}
/>
)}
{suggestionsRow(__('From search'), results, canonicalResults, false)}
</>
)
))}
</ComboboxList>
</ComboboxPopover>
)}
</Combobox>
</Form>
) : null;
}

View file

@ -0,0 +1,15 @@
import { connect } from 'react-redux';
import { makeSelectIsUriResolving, doResolveUri } from 'lbry-redux';
import { makeSelectWinningUriForQuery } from 'redux/selectors/search';
import ChannelMentionTopSuggestion from './view';
const select = (state, props) => {
const uriFromQuery = `lbry://${props.query}`;
return {
uriFromQuery,
isResolvingUri: makeSelectIsUriResolving(uriFromQuery)(state),
winningUri: makeSelectWinningUriForQuery(props.query)(state),
};
};
export default connect(select, { doResolveUri })(ChannelMentionTopSuggestion);

View file

@ -0,0 +1,49 @@
// @flow
import ChannelMentionSuggestion from 'component/channelMentionSuggestion';
import LbcSymbol from 'component/common/lbc-symbol';
import React from 'react';
type Props = {
uriFromQuery: string,
winningUri: string,
isResolvingUri: boolean,
shownUris: Array<string>,
setMostSupported: (string) => void,
doResolveUri: (string) => void,
};
export default function ChannelMentionTopSuggestion(props: Props) {
const { uriFromQuery, winningUri, isResolvingUri, shownUris, setMostSupported, doResolveUri } = props;
React.useEffect(() => {
if (uriFromQuery) doResolveUri(uriFromQuery);
}, [doResolveUri, uriFromQuery]);
React.useEffect(() => {
if (winningUri) setMostSupported(winningUri);
}, [setMostSupported, winningUri]);
if (isResolvingUri) {
return (
<div className="channel-mention__winning-claim">
<div className="channel-mention__label channel-mention__placeholder-label" />
<div className="channel-mention__suggestion channel-mention__placeholder-suggestion">
<div className="channel-mention__placeholder-thumbnail" />
<div className="channel-mention__placeholder-info" />
</div>
<hr className="channel-mention__top-separator" />
</div>
);
}
return !winningUri || shownUris.includes(winningUri) ? null : (
<>
<div className="channel-mention__label">
<LbcSymbol prefix={__('Most Supported')} />
</div>
<ChannelMentionSuggestion uri={winningUri} />
<hr className="channel-mention__top-separator" />
</>
);
}

View file

@ -1,22 +1,33 @@
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { doResolveUri, makeSelectTitleForUri, makeSelectClaimForUri, makeSelectIsUriResolving } from 'lbry-redux'; import { doResolveUri, makeSelectClaimForUri, makeSelectIsUriResolving } from 'lbry-redux';
import { doSetPlayingUri } from 'redux/actions/content';
import { punctuationMarks } from 'util/remark-lbry';
import { selectBlackListedOutpoints } from 'lbryinc'; import { selectBlackListedOutpoints } from 'lbryinc';
import { selectPlayingUri } from 'redux/selectors/content'; import { selectPlayingUri } from 'redux/selectors/content';
import { doSetPlayingUri } from 'redux/actions/content';
import ClaimLink from './view'; import ClaimLink from './view';
const select = (state, props) => { const select = (state, props) => {
let uri = props.uri;
let claim;
function getValidClaim(testUri) {
claim = makeSelectClaimForUri(testUri)(state);
if (claim === null && punctuationMarks.includes(testUri.charAt(testUri.length - 1))) {
getValidClaim(testUri.substring(0, testUri.length - 1));
} else {
uri = testUri;
}
}
getValidClaim(uri);
return { return {
uri: props.uri, uri,
claim: makeSelectClaimForUri(props.uri)(state), claim,
title: makeSelectTitleForUri(props.uri)(state), fullUri: props.uri,
isResolvingUri: makeSelectIsUriResolving(props.uri)(state), isResolvingUri: makeSelectIsUriResolving(uri)(state),
blackListedOutpoints: selectBlackListedOutpoints(state), blackListedOutpoints: selectBlackListedOutpoints(state),
playingUri: selectPlayingUri(state), playingUri: selectPlayingUri(state),
}; };
}; };
export default connect(select, { export default connect(select, { doResolveUri, doSetPlayingUri })(ClaimLink);
doResolveUri,
doSetPlayingUri,
})(ClaimLink);

View file

@ -1,14 +1,15 @@
// @flow // @flow
import * as React from 'react';
import classnames from 'classnames';
import EmbedPlayButton from 'component/embedPlayButton';
import Button from 'component/button';
import UriIndicator from 'component/uriIndicator';
import { INLINE_PLAYER_WRAPPER_CLASS } from 'component/fileRenderFloating/view'; import { INLINE_PLAYER_WRAPPER_CLASS } from 'component/fileRenderFloating/view';
import { SIMPLE_SITE } from 'config'; import { SIMPLE_SITE } from 'config';
import * as React from 'react';
import Button from 'component/button';
import classnames from 'classnames';
import EmbedPlayButton from 'component/embedPlayButton';
import UriIndicator from 'component/uriIndicator';
type Props = { type Props = {
uri: string, uri: string,
fullUri: string,
claim: StreamClaim, claim: StreamClaim,
children: React.Node, children: React.Node,
description: ?string, description: ?string,
@ -68,6 +69,7 @@ class ClaimLink extends React.Component<Props> {
render() { render() {
const { const {
uri, uri,
fullUri,
claim, claim,
children, children,
isResolvingUri, isResolvingUri,
@ -92,7 +94,10 @@ class ClaimLink extends React.Component<Props> {
const isChannel = valueType === 'channel'; const isChannel = valueType === 'channel';
return isChannel ? ( return isChannel ? (
<UriIndicator uri={uri} link /> <>
<UriIndicator uri={uri} link />
<span>{fullUri.length > uri.length ? fullUri.substring(uri.length, fullUri.length) : ''}</span>
</>
) : allowPreview ? ( ) : allowPreview ? (
<div className={classnames('claim-link')}> <div className={classnames('claim-link')}>
<div <div

View file

@ -1,12 +1,10 @@
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import ClaimList from './view'; import ClaimList from './view';
import { SETTINGS, selectClaimSearchByQuery, selectClaimsByUri } from 'lbry-redux'; import { SETTINGS } from 'lbry-redux';
import { makeSelectClientSetting } from 'redux/selectors/settings'; import { makeSelectClientSetting } from 'redux/selectors/settings';
const select = (state) => ({ const select = (state) => ({
searchInLanguage: makeSelectClientSetting(SETTINGS.SEARCH_IN_LANGUAGE)(state), searchInLanguage: makeSelectClientSetting(SETTINGS.SEARCH_IN_LANGUAGE)(state),
claimSearchByQuery: selectClaimSearchByQuery(state),
claimsByUri: selectClaimsByUri(state),
}); });
export default connect(select)(ClaimList); export default connect(select)(ClaimList);

View file

@ -9,7 +9,6 @@ import { FormField } from 'component/common/form';
import usePersistedState from 'effects/use-persisted-state'; import usePersistedState from 'effects/use-persisted-state';
import debounce from 'util/debounce'; import debounce from 'util/debounce';
import ClaimPreviewTile from 'component/claimPreviewTile'; import ClaimPreviewTile from 'component/claimPreviewTile';
import { prioritizeActiveLivestreams } from 'component/claimTilesDiscover/view';
const DEBOUNCE_SCROLL_HANDLER_MS = 150; const DEBOUNCE_SCROLL_HANDLER_MS = 150;
const SORT_NEW = 'new'; const SORT_NEW = 'new';
@ -17,6 +16,7 @@ const SORT_OLD = 'old';
type Props = { type Props = {
uris: Array<string>, uris: Array<string>,
prefixUris?: Array<string>,
header: Node | boolean, header: Node | boolean,
headerAltControls: Node, headerAltControls: Node,
loading: boolean, loading: boolean,
@ -41,9 +41,6 @@ type Props = {
hideMenu?: boolean, hideMenu?: boolean,
claimSearchByQuery: { [string]: Array<string> }, claimSearchByQuery: { [string]: Array<string> },
claimsByUri: { [string]: any }, claimsByUri: { [string]: any },
liveLivestreamsFirst?: boolean,
livestreamMap?: { [string]: any },
searchOptions?: any,
collectionId?: string, collectionId?: string,
showNoSourceClaims?: boolean, showNoSourceClaims?: boolean,
onClick?: (e: any, claim?: ?Claim, index?: number) => void, onClick?: (e: any, claim?: ?Claim, index?: number) => void,
@ -53,6 +50,7 @@ export default function ClaimList(props: Props) {
const { const {
activeUri, activeUri,
uris, uris,
prefixUris,
headerAltControls, headerAltControls,
loading, loading,
persistedStorageKey, persistedStorageKey,
@ -73,37 +71,25 @@ export default function ClaimList(props: Props) {
renderProperties, renderProperties,
searchInLanguage, searchInLanguage,
hideMenu, hideMenu,
claimSearchByQuery,
claimsByUri,
liveLivestreamsFirst,
livestreamMap,
searchOptions,
collectionId, collectionId,
showNoSourceClaims, showNoSourceClaims,
onClick, onClick,
} = props; } = props;
const [currentSort, setCurrentSort] = usePersistedState(persistedStorageKey, SORT_NEW); const [currentSort, setCurrentSort] = usePersistedState(persistedStorageKey, SORT_NEW);
// Exclude prefix uris in these results variables. We don't want to show
// anything if the search failed or timed out.
const timedOut = uris === null; const timedOut = uris === null;
const urisLength = (uris && uris.length) || 0; const urisLength = (uris && uris.length) || 0;
const liveUris = []; const tileUris = (prefixUris || []).concat(uris);
if (liveLivestreamsFirst && livestreamMap) { const sortedUris = (urisLength > 0 && (currentSort === SORT_NEW ? tileUris : tileUris.slice().reverse())) || [];
prioritizeActiveLivestreams(uris, liveUris, livestreamMap, claimsByUri, claimSearchByQuery, searchOptions);
}
const sortedUris = (urisLength > 0 && (currentSort === SORT_NEW ? uris : uris.slice().reverse())) || [];
const noResultMsg = searchInLanguage const noResultMsg = searchInLanguage
? __('No results. Contents may be hidden by the Language filter.') ? __('No results. Contents may be hidden by the Language filter.')
: __('No results'); : __('No results');
const resolveLive = (index) => {
if (liveLivestreamsFirst && livestreamMap && index < liveUris.length) {
return true;
}
return undefined;
};
function handleSortChange() { function handleSortChange() {
setCurrentSort(currentSort === SORT_NEW ? SORT_OLD : SORT_NEW); setCurrentSort(currentSort === SORT_NEW ? SORT_OLD : SORT_NEW);
} }
@ -138,13 +124,12 @@ export default function ClaimList(props: Props) {
return tileLayout && !header ? ( return tileLayout && !header ? (
<section className="claim-grid"> <section className="claim-grid">
{urisLength > 0 && {urisLength > 0 &&
uris.map((uri, index) => ( tileUris.map((uri) => (
<ClaimPreviewTile <ClaimPreviewTile
key={uri} key={uri}
uri={uri} uri={uri}
showHiddenByUser={showHiddenByUser} showHiddenByUser={showHiddenByUser}
properties={renderProperties} properties={renderProperties}
live={resolveLive(index)}
collectionId={collectionId} collectionId={collectionId}
showNoSourceClaims={showNoSourceClaims} showNoSourceClaims={showNoSourceClaims}
/> />
@ -216,7 +201,6 @@ export default function ClaimList(props: Props) {
// https://github.com/lbryio/lbry-redux/blob/master/src/redux/actions/publish.js#L74-L79 // https://github.com/lbryio/lbry-redux/blob/master/src/redux/actions/publish.js#L74-L79
return claim.name.length === 24 && !claim.name.includes(' ') && claim.value.author === 'Spee.ch'; return claim.name.length === 24 && !claim.name.includes(' ') && claim.value.author === 'Spee.ch';
}} }}
live={resolveLive(index)}
onClick={(e, claim, index) => handleClaimClicked(e, claim, index)} onClick={(e, claim, index) => handleClaimClicked(e, claim, index)}
/> />
</React.Fragment> </React.Fragment>

View file

@ -13,11 +13,12 @@ import ClaimPreview from 'component/claimPreview';
import ClaimPreviewTile from 'component/claimPreviewTile'; import ClaimPreviewTile from 'component/claimPreviewTile';
import I18nMessage from 'component/i18nMessage'; import I18nMessage from 'component/i18nMessage';
import ClaimListHeader from 'component/claimListHeader'; import ClaimListHeader from 'component/claimListHeader';
import useFetchViewCount from 'effects/use-fetch-view-count';
import { useIsLargeScreen } from 'effects/use-screensize'; import { useIsLargeScreen } from 'effects/use-screensize';
import { getLivestreamOnlyOptions } from 'util/search';
type Props = { type Props = {
uris: Array<string>, uris: Array<string>,
prefixUris?: Array<string>,
name?: string, name?: string,
type: string, type: string,
pageSize?: number, pageSize?: number,
@ -31,7 +32,6 @@ type Props = {
includeSupportAction?: boolean, includeSupportAction?: boolean,
infiniteScroll?: Boolean, infiniteScroll?: Boolean,
isChannel?: boolean, isChannel?: boolean,
liveLivestreamsFirst?: boolean,
personalView: boolean, personalView: boolean,
showHeader: boolean, showHeader: boolean,
showHiddenByUser?: boolean, showHiddenByUser?: boolean,
@ -64,7 +64,6 @@ type Props = {
channelIds?: Array<string>, channelIds?: Array<string>,
claimIds?: Array<string>, claimIds?: Array<string>,
subscribedChannels: Array<Subscription>, subscribedChannels: Array<Subscription>,
livestreamMap?: { [string]: any },
header?: Node, header?: Node,
headerLabel?: string | Node, headerLabel?: string | Node,
@ -137,6 +136,7 @@ function ClaimListDiscover(props: Props) {
injectedItem, injectedItem,
feeAmount, feeAmount,
uris, uris,
prefixUris,
tileLayout, tileLayout,
hideFilters = false, hideFilters = false,
claimIds, claimIds,
@ -148,8 +148,6 @@ function ClaimListDiscover(props: Props) {
releaseTime, releaseTime,
scrollAnchor, scrollAnchor,
showHiddenByUser = false, showHiddenByUser = false,
liveLivestreamsFirst,
livestreamMap,
hasSource, hasSource,
hasNoSource, hasNoSource,
isChannel = false, isChannel = false,
@ -380,9 +378,9 @@ function ClaimListDiscover(props: Props) {
const hasMatureTags = tagsParam && tagsParam.split(',').some((t) => MATURE_TAGS.includes(t)); const hasMatureTags = tagsParam && tagsParam.split(',').some((t) => MATURE_TAGS.includes(t));
const mainSearchKey = createNormalizedClaimSearchKey(options); const searchKey = createNormalizedClaimSearchKey(options);
let claimSearchResult = claimSearchByQuery[mainSearchKey]; const claimSearchResult = claimSearchByQuery[searchKey];
const claimSearchResultLastPageReached = claimSearchByQueryLastPageReached[mainSearchKey]; const claimSearchResultLastPageReached = claimSearchByQueryLastPageReached[searchKey];
// uncomment to fix an item on a page // uncomment to fix an item on a page
// const fixUri = 'lbry://@corbettreport#0/lbryodysee#5'; // const fixUri = 'lbry://@corbettreport#0/lbryodysee#5';
@ -400,14 +398,6 @@ function ClaimListDiscover(props: Props) {
// claimSearchResult.splice(2, 0, fixUri); // claimSearchResult.splice(2, 0, fixUri);
// } // }
const livestreamSearchKey = liveLivestreamsFirst
? createNormalizedClaimSearchKey(getLivestreamOnlyOptions(options))
: undefined;
const livestreamSearchResult = livestreamSearchKey && claimSearchByQuery[livestreamSearchKey];
const [finalUris, setFinalUris] = React.useState(
getFinalUrisInitialState(history.action === 'POP', claimSearchResult)
);
const [prevOptions, setPrevOptions] = React.useState(null); const [prevOptions, setPrevOptions] = React.useState(null);
if (!isJustScrollingToNewPage(prevOptions, options)) { if (!isJustScrollingToNewPage(prevOptions, options)) {
@ -469,6 +459,8 @@ function ClaimListDiscover(props: Props) {
</div> </div>
); );
const renderUris = uris || claimSearchResult;
// ************************************************************************** // **************************************************************************
// Helpers // Helpers
// ************************************************************************** // **************************************************************************
@ -514,41 +506,6 @@ function ClaimListDiscover(props: Props) {
} }
} }
function urisEqual(prev: Array<string>, next: Array<string>) {
if (!prev || !next) {
// From 'ClaimList', "null" and "undefined" have special meaning,
// so we can't just compare array length here.
// - null = "timed out"
// - undefined = "no result".
return prev === next;
}
return prev.length === next.length && prev.every((value, index) => value === next[index]);
}
function getFinalUrisInitialState(isNavigatingBack, claimSearchResult) {
if (isNavigatingBack && claimSearchResult && claimSearchResult.length > 0) {
return claimSearchResult;
} else {
return [];
}
}
function fetchViewCountForUris(uris) {
const claimIds = [];
if (uris) {
uris.forEach((uri) => {
if (claimsByUri[uri]) {
claimIds.push(claimsByUri[uri].claim_id);
}
});
}
if (claimIds.length > 0) {
doFetchViewCount(claimIds.join(','));
}
}
function resolveOrderByOption(orderBy: string | Array<string>, sortBy: string | Array<string>) { function resolveOrderByOption(orderBy: string | Array<string>, sortBy: string | Array<string>) {
const order_by = const order_by =
orderBy === CS.ORDER_BY_TRENDING orderBy === CS.ORDER_BY_TRENDING
@ -567,38 +524,15 @@ function ClaimListDiscover(props: Props) {
// ************************************************************************** // **************************************************************************
// ************************************************************************** // **************************************************************************
useFetchViewCount(fetchViewCount, renderUris, claimsByUri, doFetchViewCount);
React.useEffect(() => { React.useEffect(() => {
if (shouldPerformSearch) { if (shouldPerformSearch) {
const searchOptions = JSON.parse(optionsStringForEffect); const searchOptions = JSON.parse(optionsStringForEffect);
doClaimSearch(searchOptions); doClaimSearch(searchOptions);
if (liveLivestreamsFirst && options.page === 1) {
doClaimSearch(getLivestreamOnlyOptions(searchOptions));
}
} }
}, [doClaimSearch, shouldPerformSearch, optionsStringForEffect, forceRefresh]); }, [doClaimSearch, shouldPerformSearch, optionsStringForEffect, forceRefresh]);
// Resolve 'finalUri'
React.useEffect(() => {
if (uris) {
if (!urisEqual(uris, finalUris)) {
setFinalUris(uris);
}
} else {
// Wait until all queries are done before updating the uris to avoid layout shifts.
const pending = claimSearchResult === undefined || (liveLivestreamsFirst && livestreamSearchResult === undefined);
if (!pending && !urisEqual(claimSearchResult, finalUris)) {
setFinalUris(claimSearchResult);
}
}
}, [uris, claimSearchResult, finalUris, setFinalUris, liveLivestreamsFirst, livestreamSearchResult]);
React.useEffect(() => {
if (fetchViewCount) {
fetchViewCountForUris(finalUris);
}
}, [finalUris]); // eslint-disable-line react-hooks/exhaustive-deps
const headerToUse = header || ( const headerToUse = header || (
<ClaimListHeader <ClaimListHeader
channelIds={channelIds} channelIds={channelIds}
@ -636,7 +570,8 @@ function ClaimListDiscover(props: Props) {
<ClaimList <ClaimList
tileLayout tileLayout
loading={loading} loading={loading}
uris={finalUris} uris={renderUris}
prefixUris={prefixUris}
onScrollBottom={handleScrollBottom} onScrollBottom={handleScrollBottom}
page={page} page={page}
pageSize={dynamicPageSize} pageSize={dynamicPageSize}
@ -645,8 +580,6 @@ function ClaimListDiscover(props: Props) {
includeSupportAction={includeSupportAction} includeSupportAction={includeSupportAction}
injectedItem={injectedItem} injectedItem={injectedItem}
showHiddenByUser={showHiddenByUser} showHiddenByUser={showHiddenByUser}
liveLivestreamsFirst={liveLivestreamsFirst}
livestreamMap={livestreamMap}
searchOptions={options} searchOptions={options}
showNoSourceClaims={showNoSourceClaims} showNoSourceClaims={showNoSourceClaims}
empty={empty} empty={empty}
@ -670,7 +603,8 @@ function ClaimListDiscover(props: Props) {
<ClaimList <ClaimList
type={type} type={type}
loading={loading} loading={loading}
uris={finalUris} uris={renderUris}
prefixUris={prefixUris}
onScrollBottom={handleScrollBottom} onScrollBottom={handleScrollBottom}
page={page} page={page}
pageSize={dynamicPageSize} pageSize={dynamicPageSize}
@ -679,8 +613,6 @@ function ClaimListDiscover(props: Props) {
includeSupportAction={includeSupportAction} includeSupportAction={includeSupportAction}
injectedItem={injectedItem} injectedItem={injectedItem}
showHiddenByUser={showHiddenByUser} showHiddenByUser={showHiddenByUser}
liveLivestreamsFirst={liveLivestreamsFirst}
livestreamMap={livestreamMap}
searchOptions={options} searchOptions={options}
showNoSourceClaims={hasNoSource || showNoSourceClaims} showNoSourceClaims={hasNoSource || showNoSourceClaims}
empty={empty} empty={empty}

View file

@ -20,6 +20,7 @@ import {
} from 'lbry-redux'; } from 'lbry-redux';
import { selectMutedChannels, makeSelectChannelIsMuted } from 'redux/selectors/blocked'; import { selectMutedChannels, makeSelectChannelIsMuted } from 'redux/selectors/blocked';
import { selectBlackListedOutpoints, selectFilteredOutpoints } from 'lbryinc'; import { selectBlackListedOutpoints, selectFilteredOutpoints } from 'lbryinc';
import { makeSelectIsActiveLivestream } from 'redux/selectors/livestream';
import { selectShowMatureContent } from 'redux/selectors/settings'; import { selectShowMatureContent } from 'redux/selectors/settings';
import { makeSelectHasVisitedUri } from 'redux/selectors/content'; import { makeSelectHasVisitedUri } from 'redux/selectors/content';
import { makeSelectIsSubscribed } from 'redux/selectors/subscriptions'; import { makeSelectIsSubscribed } from 'redux/selectors/subscriptions';
@ -56,6 +57,7 @@ const select = (state, props) => {
streamingUrl: props.uri && makeSelectStreamingUrlForUri(props.uri)(state), streamingUrl: props.uri && makeSelectStreamingUrlForUri(props.uri)(state),
wasPurchased: props.uri && makeSelectClaimWasPurchased(props.uri)(state), wasPurchased: props.uri && makeSelectClaimWasPurchased(props.uri)(state),
isLivestream: makeSelectClaimIsStreamPlaceholder(props.uri)(state), isLivestream: makeSelectClaimIsStreamPlaceholder(props.uri)(state),
isLivestreamActive: makeSelectIsActiveLivestream(props.uri)(state),
isCollectionMine: makeSelectCollectionIsMine(props.collectionId)(state), isCollectionMine: makeSelectCollectionIsMine(props.collectionId)(state),
collectionUris: makeSelectUrlsForCollectionId(props.collectionId)(state), collectionUris: makeSelectUrlsForCollectionId(props.collectionId)(state),
collectionIndex: makeSelectIndexForUrlInCollection(props.uri, props.collectionId)(state), collectionIndex: makeSelectIndexForUrlInCollection(props.uri, props.collectionId)(state),

View file

@ -70,6 +70,7 @@ type Props = {
streamingUrl: ?string, streamingUrl: ?string,
getFile: (string) => void, getFile: (string) => void,
customShouldHide?: (Claim) => boolean, customShouldHide?: (Claim) => boolean,
searchParams?: { [string]: string },
showUnresolvedClaim?: boolean, showUnresolvedClaim?: boolean,
showNullPlaceholder?: boolean, showNullPlaceholder?: boolean,
includeSupportAction?: boolean, includeSupportAction?: boolean,
@ -80,7 +81,7 @@ type Props = {
repostUrl?: string, repostUrl?: string,
hideMenu?: boolean, hideMenu?: boolean,
isLivestream?: boolean, isLivestream?: boolean,
live?: boolean, isLivestreamActive: boolean,
collectionId?: string, collectionId?: string,
editCollection: (string, CollectionEditParams) => void, editCollection: (string, CollectionEditParams) => void,
isCollectionMine: boolean, isCollectionMine: boolean,
@ -125,6 +126,7 @@ const ClaimPreview = forwardRef<any, {}>((props: Props, ref: any) => {
// modifiers // modifiers
active, active,
customShouldHide, customShouldHide,
searchParams,
showNullPlaceholder, showNullPlaceholder,
// value from show mature content user setting // value from show mature content user setting
// true if the user doesn't wanna see nsfw content // true if the user doesn't wanna see nsfw content
@ -145,7 +147,7 @@ const ClaimPreview = forwardRef<any, {}>((props: Props, ref: any) => {
hideMenu = false, hideMenu = false,
// repostUrl, // repostUrl,
isLivestream, // need both? CHECK isLivestream, // need both? CHECK
live, isLivestreamActive,
collectionId, collectionId,
collectionIndex, collectionIndex,
editCollection, editCollection,
@ -221,6 +223,11 @@ const ClaimPreview = forwardRef<any, {}>((props: Props, ref: any) => {
if (listId) { if (listId) {
navigateSearch.set(COLLECTIONS_CONSTS.COLLECTION_ID, listId); navigateSearch.set(COLLECTIONS_CONSTS.COLLECTION_ID, listId);
} }
if (searchParams) {
Object.keys(searchParams).forEach((key) => {
navigateSearch.set(key, searchParams[key]);
});
}
const handleNavLinkClick = (e) => { const handleNavLinkClick = (e) => {
if (onClick) { if (onClick) {
@ -336,7 +343,7 @@ const ClaimPreview = forwardRef<any, {}>((props: Props, ref: any) => {
} }
let liveProperty = null; let liveProperty = null;
if (live === true) { if (isLivestreamActive === true) {
liveProperty = (claim) => <>LIVE</>; liveProperty = (claim) => <>LIVE</>;
} }
@ -349,7 +356,7 @@ const ClaimPreview = forwardRef<any, {}>((props: Props, ref: any) => {
'claim-preview__wrapper--channel': isChannelUri && type !== 'inline', 'claim-preview__wrapper--channel': isChannelUri && type !== 'inline',
'claim-preview__wrapper--inline': type === 'inline', 'claim-preview__wrapper--inline': type === 'inline',
'claim-preview__wrapper--small': type === 'small', 'claim-preview__wrapper--small': type === 'small',
'claim-preview__live': live, 'claim-preview__live': isLivestreamActive,
'claim-preview__active': active, 'claim-preview__active': active,
})} })}
> >
@ -386,7 +393,7 @@ const ClaimPreview = forwardRef<any, {}>((props: Props, ref: any) => {
)} )}
</div> </div>
{/* @endif */} {/* @endif */}
{!isLivestream && ( {(!isLivestream || isLivestreamActive) && (
<div className="claim-preview__file-property-overlay"> <div className="claim-preview__file-property-overlay">
<PreviewOverlayProperties uri={uri} small={type === 'small'} properties={liveProperty} /> <PreviewOverlayProperties uri={uri} small={type === 'small'} properties={liveProperty} />
</div> </div>

View file

@ -16,6 +16,7 @@ type Props = {
isLivestream: boolean, isLivestream: boolean,
}; };
// previews used in channel overview and homepage (and other places?)
function ClaimPreviewSubtitle(props: Props) { function ClaimPreviewSubtitle(props: Props) {
const { pending, uri, claim, type, beginPublish, isLivestream } = props; const { pending, uri, claim, type, beginPublish, isLivestream } = props;
const claimsInChannel = (claim && claim.meta.claims_in_channel) || 0; const claimsInChannel = (claim && claim.meta.claims_in_channel) || 0;

View file

@ -12,7 +12,8 @@ import {
makeSelectDateForUri, makeSelectDateForUri,
} from 'lbry-redux'; } from 'lbry-redux';
import { selectMutedChannels } from 'redux/selectors/blocked'; import { selectMutedChannels } from 'redux/selectors/blocked';
import { selectBlackListedOutpoints, selectFilteredOutpoints } from 'lbryinc'; import { makeSelectViewCountForUri, selectBlackListedOutpoints, selectFilteredOutpoints } from 'lbryinc';
import { makeSelectIsActiveLivestream } from 'redux/selectors/livestream';
import { selectShowMatureContent } from 'redux/selectors/settings'; import { selectShowMatureContent } from 'redux/selectors/settings';
import ClaimPreviewTile from './view'; import ClaimPreviewTile from './view';
import formatMediaDuration from 'util/formatMediaDuration'; import formatMediaDuration from 'util/formatMediaDuration';
@ -36,6 +37,8 @@ const select = (state, props) => {
showMature: selectShowMatureContent(state), showMature: selectShowMatureContent(state),
isMature: makeSelectClaimIsNsfw(props.uri)(state), isMature: makeSelectClaimIsNsfw(props.uri)(state),
isLivestream: makeSelectClaimIsStreamPlaceholder(props.uri)(state), isLivestream: makeSelectClaimIsStreamPlaceholder(props.uri)(state),
isLivestreamActive: makeSelectIsActiveLivestream(props.uri)(state),
viewCount: makeSelectViewCountForUri(props.uri)(state),
}; };
}; };

View file

@ -48,13 +48,14 @@ type Props = {
showMature: boolean, showMature: boolean,
showHiddenByUser?: boolean, showHiddenByUser?: boolean,
properties?: (Claim) => void, properties?: (Claim) => void,
live?: boolean,
collectionId?: string, collectionId?: string,
showNoSourceClaims?: boolean, showNoSourceClaims?: boolean,
isLivestream: boolean, isLivestream: boolean,
viewCount: string,
isLivestreamActive: boolean,
}; };
// preview image cards used in related video functionality // preview image cards used in related video functionality, channel overview page and homepage
function ClaimPreviewTile(props: Props) { function ClaimPreviewTile(props: Props) {
const { const {
history, history,
@ -75,11 +76,12 @@ function ClaimPreviewTile(props: Props) {
showMature, showMature,
showHiddenByUser, showHiddenByUser,
properties, properties,
live,
showNoSourceClaims, showNoSourceClaims,
isLivestream, isLivestream,
isLivestreamActive,
collectionId, collectionId,
mediaDuration, mediaDuration,
viewCount,
} = props; } = props;
const isRepost = claim && claim.repost_channel_url; const isRepost = claim && claim.repost_channel_url;
const isCollection = claim && claim.value_type === 'collection'; const isCollection = claim && claim.value_type === 'collection';
@ -177,6 +179,10 @@ function ClaimPreviewTile(props: Props) {
return null; return null;
} }
const isChannelPage = window.location.pathname.startsWith('/@');
const shouldShowViewCount = !(!viewCount || (claim && claim.repost_url) || isLivestream || !isChannelPage);
if (placeholder || (!claim && isResolvingUri)) { if (placeholder || (!claim && isResolvingUri)) {
return ( return (
<li className={classnames('claim-preview--tile', {})}> <li className={classnames('claim-preview--tile', {})}>
@ -185,14 +191,18 @@ function ClaimPreviewTile(props: Props) {
</div> </div>
<div className="placeholder__wrapper"> <div className="placeholder__wrapper">
<div className="placeholder claim-tile__title" /> <div className="placeholder claim-tile__title" />
<div className="placeholder claim-tile__info" /> <div
className={classnames('claim-tile__info placeholder', {
contains_view_count: shouldShowViewCount,
})}
/>
</div> </div>
</li> </li>
); );
} }
let liveProperty = null; let liveProperty = null;
if (live === true) { if (isLivestreamActive === true) {
liveProperty = (claim) => <>LIVE</>; liveProperty = (claim) => <>LIVE</>;
} }
@ -201,7 +211,7 @@ function ClaimPreviewTile(props: Props) {
onClick={handleClick} onClick={handleClick}
className={classnames('card claim-preview--tile', { className={classnames('card claim-preview--tile', {
'claim-preview__wrapper--channel': isChannel, 'claim-preview__wrapper--channel': isChannel,
'claim-preview__live': live, 'claim-preview__live': isLivestreamActive,
})} })}
> >
<NavLink {...navLinkProps} role="none" tabIndex={-1} aria-hidden> <NavLink {...navLinkProps} role="none" tabIndex={-1} aria-hidden>
@ -245,7 +255,11 @@ function ClaimPreviewTile(props: Props) {
<ClaimMenuList uri={uri} collectionId={listId} channelUri={channelUri} /> <ClaimMenuList uri={uri} collectionId={listId} channelUri={channelUri} />
</div> </div>
<div> <div>
<div className="claim-tile__info"> <div
className={classnames('claim-tile__info', {
contains_view_count: shouldShowViewCount,
})}
>
{isChannel ? ( {isChannel ? (
<div className="claim-tile__about--channel"> <div className="claim-tile__about--channel">
<SubscribeButton uri={repostedChannelUri || uri} /> <SubscribeButton uri={repostedChannelUri || uri} />

View file

@ -1,27 +1,36 @@
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { withRouter } from 'react-router';
import { import {
doClaimSearch, doClaimSearch,
selectClaimSearchByQuery, selectClaimSearchByQuery,
selectFetchingClaimSearchByQuery, selectFetchingClaimSearchByQuery,
SETTINGS, SETTINGS,
selectClaimsByUri, selectClaimsByUri,
MATURE_TAGS,
} from 'lbry-redux'; } from 'lbry-redux';
import { doFetchViewCount } from 'lbryinc'; import { doFetchViewCount } from 'lbryinc';
import { doToggleTagFollowDesktop } from 'redux/actions/tags'; import { doToggleTagFollowDesktop } from 'redux/actions/tags';
import { makeSelectClientSetting, selectShowMatureContent } from 'redux/selectors/settings'; import { makeSelectClientSetting, selectShowMatureContent } from 'redux/selectors/settings';
import { selectModerationBlockList } from 'redux/selectors/comments'; import { selectMutedAndBlockedChannelIds } from 'redux/selectors/blocked';
import { selectMutedChannels } from 'redux/selectors/blocked'; import { ENABLE_NO_SOURCE_CLAIMS, SIMPLE_SITE } from 'config';
import * as CS from 'constants/claim_search';
import ClaimListDiscover from './view'; import ClaimListDiscover from './view';
const select = (state) => ({ const select = (state, props) => {
claimSearchByQuery: selectClaimSearchByQuery(state), const showNsfw = selectShowMatureContent(state);
claimsByUri: selectClaimsByUri(state), const hideReposts = makeSelectClientSetting(SETTINGS.HIDE_REPOSTS)(state);
fetchingClaimSearchByQuery: selectFetchingClaimSearchByQuery(state), const mutedAndBlockedChannelIds = selectMutedAndBlockedChannelIds(state);
showNsfw: selectShowMatureContent(state),
hideReposts: makeSelectClientSetting(SETTINGS.HIDE_REPOSTS)(state), return {
mutedUris: selectMutedChannels(state), claimSearchByQuery: selectClaimSearchByQuery(state),
blockedUris: selectModerationBlockList(state), claimsByUri: selectClaimsByUri(state),
}); fetchingClaimSearchByQuery: selectFetchingClaimSearchByQuery(state),
showNsfw,
hideReposts,
options: resolveSearchOptions({ showNsfw, hideReposts, mutedAndBlockedChannelIds, pageSize: 8, ...props }),
};
};
const perform = { const perform = {
doClaimSearch, doClaimSearch,
@ -29,4 +38,97 @@ const perform = {
doFetchViewCount, doFetchViewCount,
}; };
export default connect(select, perform)(ClaimListDiscover); export default withRouter(connect(select, perform)(ClaimListDiscover));
// ****************************************************************************
// ****************************************************************************
function resolveSearchOptions(props) {
const {
showNsfw,
hideReposts,
mutedAndBlockedChannelIds,
location,
pageSize,
claimType,
tags,
languages,
channelIds,
orderBy,
streamTypes,
hasNoSource,
hasSource,
releaseTime,
feeAmount,
limitClaimsPerChannel,
timestamp,
claimIds,
} = props;
const urlParams = new URLSearchParams(location.search);
const feeAmountInUrl = urlParams.get('fee_amount');
const feeAmountParam = feeAmountInUrl || feeAmount;
let streamTypesParam;
if (streamTypes) {
streamTypesParam = streamTypes;
} else if (SIMPLE_SITE && !hasNoSource && streamTypes !== null) {
streamTypesParam = [CS.FILE_VIDEO, CS.FILE_AUDIO];
}
const options = {
page_size: pageSize,
claim_type: claimType || ['stream', 'repost', 'channel'],
// no_totals makes it so the sdk doesn't have to calculate total number pages for pagination
// it's faster, but we will need to remove it if we start using total_pages
no_totals: true,
any_tags: tags || [],
not_tags: !showNsfw ? MATURE_TAGS : [],
any_languages: languages,
channel_ids: channelIds || [],
not_channel_ids: mutedAndBlockedChannelIds,
order_by: orderBy || ['trending_group', 'trending_mixed'],
stream_types: streamTypesParam,
};
if (ENABLE_NO_SOURCE_CLAIMS && hasNoSource) {
options.has_no_source = true;
} else if (hasSource || (!ENABLE_NO_SOURCE_CLAIMS && (!claimType || claimType === 'stream'))) {
options.has_source = true;
}
if (releaseTime) {
options.release_time = releaseTime;
}
if (feeAmountParam) {
options.fee_amount = feeAmountParam;
}
if (limitClaimsPerChannel) {
options.limit_claims_per_channel = limitClaimsPerChannel;
}
// https://github.com/lbryio/lbry-desktop/issues/3774
if (hideReposts) {
if (Array.isArray(options.claim_type)) {
options.claim_type = options.claim_type.filter((claimType) => claimType !== 'repost');
} else {
options.claim_type = ['stream', 'channel'];
}
}
if (claimType) {
options.claim_type = claimType;
}
if (timestamp) {
options.timestamp = timestamp;
}
if (claimIds) {
options.claim_ids = claimIds;
}
return options;
}

View file

@ -1,83 +1,42 @@
// @flow // @flow
import { ENABLE_NO_SOURCE_CLAIMS, SIMPLE_SITE } from 'config';
import * as CS from 'constants/claim_search';
import type { Node } from 'react'; import type { Node } from 'react';
import React from 'react'; import React from 'react';
import { createNormalizedClaimSearchKey, MATURE_TAGS, splitBySeparator } from 'lbry-redux'; import { createNormalizedClaimSearchKey } from 'lbry-redux';
import ClaimPreviewTile from 'component/claimPreviewTile'; import ClaimPreviewTile from 'component/claimPreviewTile';
import { useHistory } from 'react-router'; import useFetchViewCount from 'effects/use-fetch-view-count';
import { getLivestreamOnlyOptions } from 'util/search'; import usePrevious from 'effects/use-previous';
/** type SearchOptions = {
* Updates 'uris' by adding and/or moving active livestreams to the front of page_size: number,
* list. no_totals: boolean,
* 'liveUris' is also updated with any entries that were moved to the any_tags: Array<string>,
* front, for convenience. channel_ids: Array<string>,
* claim_ids?: Array<string>,
* @param uris [Ref] not_channel_ids: Array<string>,
* @param liveUris [Ref] not_tags: Array<string>,
* @param livestreamMap order_by: Array<string>,
* @param claimsByUri languages?: Array<string>,
* @param claimSearchByQuery release_time?: string,
* @param options claim_type?: string | Array<string>,
*/ timestamp?: string,
export function prioritizeActiveLivestreams( fee_amount?: string,
uris: Array<string>, limit_claims_per_channel?: number,
liveUris: Array<string>, stream_types?: Array<string>,
livestreamMap: { [string]: any }, has_source?: boolean,
claimsByUri: { [string]: any }, has_no_source?: boolean,
claimSearchByQuery: { [string]: Array<string> }, };
options: any
) {
if (!livestreamMap || !uris) return;
const claimIsLive = (claim, liveChannelIds) => { function urisEqual(prev: ?Array<string>, next: ?Array<string>) {
// This function relies on: if (!prev || !next) {
// 1. Only 1 actual livestream per channel (i.e. all other livestream-claims // ClaimList: "null" and "undefined" have special meaning,
// for that channel actually point to the same source). // so we can't just compare array length here.
// 2. 'liveChannelIds' needs to be pruned after being accounted for, // - null = "timed out"
// otherwise all livestream-claims will be "live" (we'll only take the // - undefined = "no result".
// latest one as "live" ). return prev === next;
return (
claim &&
claim.value_type === 'stream' &&
claim.value.source === undefined &&
claim.signing_channel &&
liveChannelIds.includes(claim.signing_channel.claim_id)
);
};
let liveChannelIds = Object.keys(livestreamMap);
// 1. Collect active livestreams from the primary search to put in front.
uris.forEach((uri) => {
const claim = claimsByUri[uri];
if (claimIsLive(claim, liveChannelIds)) {
liveUris.push(uri);
// This live channel has been accounted for, so remove it.
liveChannelIds.splice(liveChannelIds.indexOf(claim.signing_channel.claim_id), 1);
}
});
// 2. Now, repeat on the secondary search.
if (options) {
const livestreamsOnlySearchCacheQuery = createNormalizedClaimSearchKey(getLivestreamOnlyOptions(options));
const livestreamsOnlyUris = claimSearchByQuery[livestreamsOnlySearchCacheQuery];
if (livestreamsOnlyUris) {
livestreamsOnlyUris.forEach((uri) => {
const claim = claimsByUri[uri];
if (!uris.includes(uri) && claimIsLive(claim, liveChannelIds)) {
liveUris.push(uri);
// This live channel has been accounted for, so remove it.
liveChannelIds.splice(liveChannelIds.indexOf(claim.signing_channel.claim_id), 1);
}
});
}
} }
// 3. Finalize uris by putting live livestreams in front. // $FlowFixMe - already checked for null above.
const newUris = liveUris.concat(uris.filter((uri) => !liveUris.includes(uri))); return prev.length === next.length && prev.every((value, index) => value === next[index]);
uris.splice(0, uris.length, ...newUris);
} }
// **************************************************************************** // ****************************************************************************
@ -88,8 +47,6 @@ type Props = {
prefixUris?: Array<string>, prefixUris?: Array<string>,
pinUrls?: Array<string>, pinUrls?: Array<string>,
uris: Array<string>, uris: Array<string>,
liveLivestreamsFirst?: boolean,
livestreamMap?: { [string]: any },
showNoSourceClaims?: boolean, showNoSourceClaims?: boolean,
renderProperties?: (Claim) => ?Node, renderProperties?: (Claim) => ?Node,
fetchViewCount?: boolean, fetchViewCount?: boolean,
@ -109,13 +66,13 @@ type Props = {
hasSource?: boolean, hasSource?: boolean,
hasNoSource?: boolean, hasNoSource?: boolean,
// --- select --- // --- select ---
location: { search: string },
claimSearchByQuery: { [string]: Array<string> }, claimSearchByQuery: { [string]: Array<string> },
claimsByUri: { [string]: any }, claimsByUri: { [string]: any },
fetchingClaimSearchByQuery: { [string]: boolean }, fetchingClaimSearchByQuery: { [string]: boolean },
showNsfw: boolean, showNsfw: boolean,
hideReposts: boolean, hideReposts: boolean,
mutedUris: Array<string>, options: SearchOptions,
blockedUris: Array<string>,
// --- perform --- // --- perform ---
doClaimSearch: ({}) => void, doClaimSearch: ({}) => void,
doFetchViewCount: (claimIdCsv: string) => void, doFetchViewCount: (claimIdCsv: string) => void,
@ -126,234 +83,78 @@ function ClaimTilesDiscover(props: Props) {
doClaimSearch, doClaimSearch,
claimSearchByQuery, claimSearchByQuery,
claimsByUri, claimsByUri,
showNsfw,
hideReposts,
fetchViewCount, fetchViewCount,
// Below are options to pass that are forwarded to claim_search
tags,
channelIds,
claimIds,
orderBy,
pageSize = 8,
releaseTime,
languages,
claimType,
streamTypes,
timestamp,
feeAmount,
limitClaimsPerChannel,
fetchingClaimSearchByQuery, fetchingClaimSearchByQuery,
hasSource,
hasNoSource, hasNoSource,
renderProperties, renderProperties,
blockedUris,
mutedUris,
liveLivestreamsFirst,
livestreamMap,
pinUrls, pinUrls,
prefixUris, prefixUris,
showNoSourceClaims, showNoSourceClaims,
doFetchViewCount, doFetchViewCount,
pageSize = 8,
options,
} = props; } = props;
const { location } = useHistory(); const searchKey = createNormalizedClaimSearchKey(options);
const urlParams = new URLSearchParams(location.search); const fetchingClaimSearch = fetchingClaimSearchByQuery[searchKey];
const feeAmountInUrl = urlParams.get('fee_amount'); const claimSearchUris = claimSearchByQuery[searchKey] || [];
const feeAmountParam = feeAmountInUrl || feeAmount; const isUnfetchedClaimSearch = claimSearchByQuery[searchKey] === undefined;
const mutedAndBlockedChannelIds = Array.from(
new Set(mutedUris.concat(blockedUris).map((uri) => splitBySeparator(uri)[1]))
);
const liveUris = [];
let streamTypesParam;
if (streamTypes) {
streamTypesParam = streamTypes;
} else if (SIMPLE_SITE && !hasNoSource && streamTypes !== null) {
streamTypesParam = [CS.FILE_VIDEO, CS.FILE_AUDIO];
}
const [prevUris, setPrevUris] = React.useState([]);
const options: {
page_size: number,
no_totals: boolean,
any_tags: Array<string>,
channel_ids: Array<string>,
claim_ids?: Array<string>,
not_channel_ids: Array<string>,
not_tags: Array<string>,
order_by: Array<string>,
languages?: Array<string>,
release_time?: string,
claim_type?: string | Array<string>,
timestamp?: string,
fee_amount?: string,
limit_claims_per_channel?: number,
stream_types?: Array<string>,
has_source?: boolean,
has_no_source?: boolean,
} = {
page_size: pageSize,
claim_type: claimType || ['stream', 'repost', 'channel'],
// no_totals makes it so the sdk doesn't have to calculate total number pages for pagination
// it's faster, but we will need to remove it if we start using total_pages
no_totals: true,
any_tags: tags || [],
not_tags: !showNsfw ? MATURE_TAGS : [],
any_languages: languages,
channel_ids: channelIds || [],
not_channel_ids: mutedAndBlockedChannelIds,
order_by: orderBy || ['trending_group', 'trending_mixed'],
stream_types: streamTypesParam,
};
if (ENABLE_NO_SOURCE_CLAIMS && hasNoSource) {
options.has_no_source = true;
} else if (hasSource || (!ENABLE_NO_SOURCE_CLAIMS && (!claimType || claimType === 'stream'))) {
options.has_source = true;
}
if (releaseTime) {
options.release_time = releaseTime;
}
if (feeAmountParam) {
options.fee_amount = feeAmountParam;
}
if (limitClaimsPerChannel) {
options.limit_claims_per_channel = limitClaimsPerChannel;
}
// https://github.com/lbryio/lbry-desktop/issues/3774
if (hideReposts) {
if (Array.isArray(options.claim_type)) {
options.claim_type = options.claim_type.filter((claimType) => claimType !== 'repost');
} else {
options.claim_type = ['stream', 'channel'];
}
}
if (claimType) {
options.claim_type = claimType;
}
if (timestamp) {
options.timestamp = timestamp;
}
if (claimIds) {
options.claim_ids = claimIds;
}
const mainSearchKey = createNormalizedClaimSearchKey(options);
const livestreamSearchKey = liveLivestreamsFirst
? createNormalizedClaimSearchKey(getLivestreamOnlyOptions(options))
: undefined;
let uris = (prefixUris || []).concat(claimSearchByQuery[mainSearchKey] || []);
const isLoading = fetchingClaimSearchByQuery[mainSearchKey];
if (liveLivestreamsFirst && livestreamMap && !isLoading) {
prioritizeActiveLivestreams(uris, liveUris, livestreamMap, claimsByUri, claimSearchByQuery, options);
}
// Don't use the query from createNormalizedClaimSearchKey for the effect since that doesn't include page & release_time // Don't use the query from createNormalizedClaimSearchKey for the effect since that doesn't include page & release_time
const optionsStringForEffect = JSON.stringify(options); const optionsStringForEffect = JSON.stringify(options);
const shouldPerformSearch = !isLoading && uris.length === 0; const shouldPerformSearch = !fetchingClaimSearch && claimSearchUris.length === 0;
if ( const uris = (prefixUris || []).concat(claimSearchUris);
prefixUris === undefined &&
(claimSearchByQuery[mainSearchKey] === undefined ||
(livestreamSearchKey && claimSearchByQuery[livestreamSearchKey] === undefined))
) {
// This is a new query and we don't have results yet ...
if (prevUris.length !== 0) {
// ... but we have previous results. Use it until new results are here.
uris = prevUris;
}
}
const modifiedUris = uris ? uris.slice() : []; if (pinUrls && uris && uris.length > 2 && window.location.pathname === '/') {
const fixUris = pinUrls || []; pinUrls.forEach((pin) => {
if (uris.indexOf(pin) !== -1) {
if (pinUrls && modifiedUris && modifiedUris.length > 2 && window.location.pathname === '/') { uris.splice(uris.indexOf(pin), 1);
fixUris.forEach((fixUri) => {
if (modifiedUris.indexOf(fixUri) !== -1) {
modifiedUris.splice(modifiedUris.indexOf(fixUri), 1);
} else { } else {
modifiedUris.pop(); uris.pop();
} }
}); });
modifiedUris.splice(2, 0, ...fixUris); uris.splice(2, 0, ...pinUrls);
} }
// ************************************************************************** if (uris.length > 0 && uris.length < pageSize && shouldPerformSearch) {
// ************************************************************************** // prefixUri and pinUrls might already be present while waiting for the
// remaining claim_search results. Fill the space to prevent layout shifts.
function resolveLive(index) { uris.push(...Array(pageSize - uris.length).fill(''));
if (liveLivestreamsFirst && livestreamMap && index < liveUris.length) {
return true;
}
return undefined;
} }
function fetchViewCountForUris(uris) { const prevUris = usePrevious(uris);
const claimIds = [];
if (uris) { useFetchViewCount(fetchViewCount, uris, claimsByUri, doFetchViewCount);
uris.forEach((uri) => {
if (claimsByUri[uri]) {
claimIds.push(claimsByUri[uri].claim_id);
}
});
}
if (claimIds.length > 0) {
doFetchViewCount(claimIds.join(','));
}
}
// **************************************************************************
// **************************************************************************
// Run `doClaimSearch`
React.useEffect(() => { React.useEffect(() => {
if (shouldPerformSearch) { if (shouldPerformSearch) {
const searchOptions = JSON.parse(optionsStringForEffect); const searchOptions = JSON.parse(optionsStringForEffect);
doClaimSearch(searchOptions); doClaimSearch(searchOptions);
if (liveLivestreamsFirst) {
doClaimSearch(getLivestreamOnlyOptions(searchOptions));
}
} }
}, [doClaimSearch, shouldPerformSearch, optionsStringForEffect, liveLivestreamsFirst]); }, [doClaimSearch, shouldPerformSearch, optionsStringForEffect]);
React.useEffect(() => { // Show previous results while we fetch to avoid blinkies and poor CLS.
if (JSON.stringify(prevUris) !== JSON.stringify(uris) && !shouldPerformSearch) { const finalUris = isUnfetchedClaimSearch && prevUris ? prevUris : uris;
// Stash new results for next render cycle:
setPrevUris(uris);
// Fetch view count:
if (fetchViewCount) {
fetchViewCountForUris(uris);
}
}
}, [shouldPerformSearch, prevUris, uris]); // eslint-disable-line react-hooks/exhaustive-deps
// **************************************************************************
// **************************************************************************
return ( return (
<ul className="claim-grid"> <ul className="claim-grid">
{modifiedUris && modifiedUris.length {finalUris && finalUris.length
? modifiedUris.map((uri, index) => ( ? finalUris.map((uri, i) => {
<ClaimPreviewTile if (uri) {
showNoSourceClaims={hasNoSource || showNoSourceClaims} return (
key={uri} <ClaimPreviewTile
uri={uri} showNoSourceClaims={hasNoSource || showNoSourceClaims}
properties={renderProperties} key={uri}
live={resolveLive(index)} uri={uri}
/> properties={renderProperties}
)) />
);
} else {
return <ClaimPreviewTile showNoSourceClaims={hasNoSource || showNoSourceClaims} key={i} placeholder />;
}
})
: new Array(pageSize) : new Array(pageSize)
.fill(1) .fill(1)
.map((x, i) => ( .map((x, i) => (
@ -362,4 +163,64 @@ function ClaimTilesDiscover(props: Props) {
</ul> </ul>
); );
} }
export default ClaimTilesDiscover;
export default React.memo<Props>(ClaimTilesDiscover, areEqual);
function debug_trace(val) {
if (process.env.DEBUG_TRACE) console.log(`Render due to: ${val}`);
}
function areEqual(prev: Props, next: Props) {
const prevOptions: SearchOptions = prev.options;
const nextOptions: SearchOptions = next.options;
const prevSearchKey = createNormalizedClaimSearchKey(prevOptions);
const nextSearchKey = createNormalizedClaimSearchKey(nextOptions);
if (prevSearchKey !== nextSearchKey) {
debug_trace('search key');
return false;
}
// --- Deep-compare ---
if (!urisEqual(prev.claimSearchByQuery[prevSearchKey], next.claimSearchByQuery[nextSearchKey])) {
debug_trace('claimSearchByQuery');
return false;
}
const ARRAY_KEYS = ['prefixUris', 'channelIds'];
for (let i = 0; i < ARRAY_KEYS.length; ++i) {
const key = ARRAY_KEYS[i];
if (!urisEqual(prev[key], next[key])) {
debug_trace(`${key}`);
return false;
}
}
// --- Default the rest(*) to shallow-compare ---
// (*) including new props introduced in the future, in case developer forgets
// to update this function. Better to render more than miss an important one.
const KEYS_TO_IGNORE = [
...ARRAY_KEYS,
'claimSearchByQuery',
'fetchingClaimSearchByQuery', // We are showing previous results while fetching.
'options', // Covered by search-key comparison.
'location',
'history',
'match',
'claimsByUri',
'doClaimSearch',
'doToggleTagFollowDesktop',
];
const propKeys = Object.keys(next);
for (let i = 0; i < propKeys.length; ++i) {
const pk = propKeys[i];
if (!KEYS_TO_IGNORE.includes(pk) && prev[pk] !== next[pk]) {
debug_trace(`${pk}`);
return false;
}
}
return true;
}

View file

@ -7,6 +7,7 @@ import {
makeSelectNameForCollectionId, makeSelectNameForCollectionId,
makeSelectPendingCollectionForId, makeSelectPendingCollectionForId,
makeSelectCountForCollectionId, makeSelectCountForCollectionId,
doFetchItemsInCollection,
} from 'lbry-redux'; } from 'lbry-redux';
import CollectionPreviewOverlay from './view'; import CollectionPreviewOverlay from './view';
@ -27,4 +28,8 @@ const select = (state, props) => {
}; };
}; };
export default connect(select)(CollectionPreviewOverlay); const perform = (dispatch) => ({
fetchCollectionItems: (claimId) => dispatch(doFetchItemsInCollection({ collectionId: claimId })), // if collection not resolved, resolve it
});
export default connect(select, perform)(CollectionPreviewOverlay);

View file

@ -12,10 +12,17 @@ type Props = {
pendingCollection?: Collection, pendingCollection?: Collection,
claim: ?Claim, claim: ?Claim,
collectionItemUrls: Array<string>, collectionItemUrls: Array<string>,
fetchCollectionItems: (string) => void,
}; };
function CollectionPreviewOverlay(props: Props) { function CollectionPreviewOverlay(props: Props) {
const { collectionItemUrls } = props; const { collectionId, collectionItemUrls, fetchCollectionItems } = props;
React.useEffect(() => {
if (!collectionItemUrls) {
fetchCollectionItems(collectionId);
}
}, [collectionId, collectionItemUrls, fetchCollectionItems]);
if (collectionItemUrls && collectionItemUrls.length > 0) { if (collectionItemUrls && collectionItemUrls.length > 0) {
return ( return (

View file

@ -52,6 +52,7 @@ type Props = {
doToast: ({ message: string }) => void, doToast: ({ message: string }) => void,
isTopLevel?: boolean, isTopLevel?: boolean,
threadDepth: number, threadDepth: number,
hideActions?: boolean,
isPinned: boolean, isPinned: boolean,
othersReacts: ?{ othersReacts: ?{
like: number, like: number,
@ -95,6 +96,7 @@ function Comment(props: Props) {
doToast, doToast,
isTopLevel, isTopLevel,
threadDepth, threadDepth,
hideActions,
isPinned, isPinned,
othersReacts, othersReacts,
playingUri, playingUri,
@ -348,18 +350,20 @@ function Comment(props: Props) {
)} )}
</div> </div>
<div className="comment__actions"> {!hideActions && (
{threadDepth !== 0 && ( <div className="comment__actions">
<Button {threadDepth !== 0 && (
requiresAuth={IS_WEB} <Button
label={commentingEnabled ? __('Reply') : __('Log in to reply')} requiresAuth={IS_WEB}
className="comment__action" label={commentingEnabled ? __('Reply') : __('Log in to reply')}
onClick={handleCommentReply} className="comment__action"
icon={ICONS.REPLY} onClick={handleCommentReply}
/> icon={ICONS.REPLY}
)} />
{ENABLE_COMMENT_REACTIONS && <CommentReactions uri={uri} commentId={commentId} />} )}
</div> {ENABLE_COMMENT_REACTIONS && <CommentReactions uri={uri} commentId={commentId} />}
</div>
)}
{numDirectReplies > 0 && !showReplies && ( {numDirectReplies > 0 && !showReplies && (
<div className="comment__actions"> <div className="comment__actions">

View file

@ -6,16 +6,13 @@ import {
selectFetchingMyChannels, selectFetchingMyChannels,
doSendTip, doSendTip,
} from 'lbry-redux'; } from 'lbry-redux';
import { doOpenModal, doSetActiveChannel } from 'redux/actions/app';
import { doCommentCreate, doFetchCreatorSettings, doCommentById } from 'redux/actions/comments'; import { doCommentCreate, doFetchCreatorSettings, doCommentById } from 'redux/actions/comments';
import { selectUserVerifiedEmail } from 'redux/selectors/user';
import { selectActiveChannelClaim } from 'redux/selectors/app'; import { selectActiveChannelClaim } from 'redux/selectors/app';
import { selectSettingsByChannelId } from 'redux/selectors/comments'; import { selectSettingsByChannelId } from 'redux/selectors/comments';
import { CommentCreate } from './view'; import { CommentCreate } from './view';
import { doToast } from 'redux/actions/notifications'; import { doToast } from 'redux/actions/notifications';
const select = (state, props) => ({ const select = (state, props) => ({
commentingEnabled: IS_WEB ? Boolean(selectUserVerifiedEmail(state)) : true,
claim: makeSelectClaimForUri(props.uri)(state), claim: makeSelectClaimForUri(props.uri)(state),
channels: selectMyChannelClaims(state), channels: selectMyChannelClaims(state),
isFetchingChannels: selectFetchingMyChannels(state), isFetchingChannels: selectFetchingMyChannels(state),
@ -38,8 +35,6 @@ const perform = (dispatch, ownProps) => ({
environment environment
) )
), ),
openModal: (modal, props) => dispatch(doOpenModal(modal, props)),
setActiveChannel: (claimId) => dispatch(doSetActiveChannel(claimId)),
sendTip: (params, callback, errorCallback) => dispatch(doSendTip(params, false, callback, errorCallback, false)), sendTip: (params, callback, errorCallback) => dispatch(doSendTip(params, false, callback, errorCallback, false)),
doToast: (options) => dispatch(doToast(options)), doToast: (options) => dispatch(doToast(options)),
doFetchCreatorSettings: (channelClaimId) => dispatch(doFetchCreatorSettings(channelClaimId)), doFetchCreatorSettings: (channelClaimId) => dispatch(doFetchCreatorSettings(channelClaimId)),

View file

@ -1,40 +1,39 @@
// @flow // @flow
import type { ElementRef } from 'react';
import { SIMPLE_SITE } from 'config';
import * as PAGES from 'constants/pages';
import * as ICONS from 'constants/icons';
import * as KEYCODES from 'constants/keycodes';
import React from 'react';
import classnames from 'classnames';
import { FormField, Form } from 'component/common/form';
import Icon from 'component/common/icon';
import Button from 'component/button';
import SelectChannel from 'component/selectChannel';
import usePersistedState from 'effects/use-persisted-state';
import { FF_MAX_CHARS_IN_COMMENT, FF_MAX_CHARS_IN_LIVESTREAM_COMMENT } from 'constants/form-field'; import { FF_MAX_CHARS_IN_COMMENT, FF_MAX_CHARS_IN_LIVESTREAM_COMMENT } from 'constants/form-field';
import { useHistory } from 'react-router'; import { FormField, Form } from 'component/common/form';
import WalletTipAmountSelector from 'component/walletTipAmountSelector';
import CreditAmount from 'component/common/credit-amount';
import ChannelThumbnail from 'component/channelThumbnail';
import I18nMessage from 'component/i18nMessage';
import UriIndicator from 'component/uriIndicator';
import Empty from 'component/common/empty';
import { getChannelIdFromClaim } from 'util/claim'; import { getChannelIdFromClaim } from 'util/claim';
import { Lbryio } from 'lbryinc'; import { Lbryio } from 'lbryinc';
import { SIMPLE_SITE } from 'config';
import { useHistory } from 'react-router';
import * as ICONS from 'constants/icons';
import * as KEYCODES from 'constants/keycodes';
import * as PAGES from 'constants/pages';
import Button from 'component/button';
import ChannelMentionSuggestions from 'component/channelMentionSuggestions';
import ChannelThumbnail from 'component/channelThumbnail';
import classnames from 'classnames';
import CreditAmount from 'component/common/credit-amount';
import Empty from 'component/common/empty';
import I18nMessage from 'component/i18nMessage';
import Icon from 'component/common/icon';
import React from 'react';
import SelectChannel from 'component/selectChannel';
import type { ElementRef } from 'react';
import UriIndicator from 'component/uriIndicator';
import usePersistedState from 'effects/use-persisted-state';
import WalletTipAmountSelector from 'component/walletTipAmountSelector';
import { getStripeEnvironment } from 'util/stripe'; import { getStripeEnvironment } from 'util/stripe';
let stripeEnvironment = getStripeEnvironment(); let stripeEnvironment = getStripeEnvironment();
const TAB_FIAT = 'TabFiat'; const TAB_FIAT = 'TabFiat';
const TAB_LBC = 'TabLBC'; const TAB_LBC = 'TabLBC';
const MENTION_DEBOUNCE_MS = 100;
type Props = { type Props = {
uri: string, uri: string,
claim: StreamClaim, claim: StreamClaim,
createComment: (string, string, string, ?string, ?string, ?string) => Promise<any>,
channels: ?Array<ChannelClaim>, channels: ?Array<ChannelClaim>,
onDoneReplying?: () => void,
onCancelReplying?: () => void,
isNested: boolean, isNested: boolean,
isFetchingChannels: boolean, isFetchingChannels: boolean,
parentId: string, parentId: string,
@ -44,25 +43,26 @@ type Props = {
bottom: boolean, bottom: boolean,
livestream?: boolean, livestream?: boolean,
embed?: boolean, embed?: boolean,
toast: (string) => void,
claimIsMine: boolean, claimIsMine: boolean,
sendTip: ({}, (any) => void, (any) => void) => void,
doToast: ({ message: string }) => void,
supportDisabled: boolean, supportDisabled: boolean,
doFetchCreatorSettings: (channelId: string) => Promise<any>,
settingsByChannelId: { [channelId: string]: PerChannelSettings }, settingsByChannelId: { [channelId: string]: PerChannelSettings },
shouldFetchComment: boolean,
doToast: ({ message: string }) => void,
createComment: (string, string, string, ?string, ?string, ?string) => Promise<any>,
onDoneReplying?: () => void,
onCancelReplying?: () => void,
toast: (string) => void,
sendTip: ({}, (any) => void, (any) => void) => void,
doFetchCreatorSettings: (channelId: string) => Promise<any>,
setQuickReply: (any) => void, setQuickReply: (any) => void,
fetchComment: (commentId: string) => Promise<any>, fetchComment: (commentId: string) => Promise<any>,
shouldFetchComment: boolean,
}; };
export function CommentCreate(props: Props) { export function CommentCreate(props: Props) {
const { const {
createComment, uri,
claim, claim,
channels, channels,
onDoneReplying,
onCancelReplying,
isNested, isNested,
isFetchingChannels, isFetchingChannels,
isReply, isReply,
@ -72,36 +72,64 @@ export function CommentCreate(props: Props) {
livestream, livestream,
embed, embed,
claimIsMine, claimIsMine,
sendTip,
doToast,
doFetchCreatorSettings,
settingsByChannelId, settingsByChannelId,
supportDisabled, supportDisabled,
shouldFetchComment,
doToast,
createComment,
onDoneReplying,
onCancelReplying,
sendTip,
doFetchCreatorSettings,
setQuickReply, setQuickReply,
fetchComment, fetchComment,
shouldFetchComment,
} = props; } = props;
const formFieldRef: ElementRef<any> = React.useRef();
const formFieldInputRef = formFieldRef && formFieldRef.current && formFieldRef.current.input;
const selectionIndex = formFieldInputRef && formFieldInputRef.current && formFieldInputRef.current.selectionStart;
const buttonRef: ElementRef<any> = React.useRef(); const buttonRef: ElementRef<any> = React.useRef();
const { const {
push, push,
location: { pathname }, location: { pathname },
} = useHistory(); } = useHistory();
const [isSubmitting, setIsSubmitting] = React.useState(false); const [isSubmitting, setIsSubmitting] = React.useState(false);
const [commentFailure, setCommentFailure] = React.useState(false); const [commentFailure, setCommentFailure] = React.useState(false);
const [successTip, setSuccessTip] = React.useState({ txid: undefined, tipAmount: undefined }); const [successTip, setSuccessTip] = React.useState({ txid: undefined, tipAmount: undefined });
const claimId = claim && claim.claim_id;
const [isSupportComment, setIsSupportComment] = React.useState(); const [isSupportComment, setIsSupportComment] = React.useState();
const [isReviewingSupportComment, setIsReviewingSupportComment] = React.useState(); const [isReviewingSupportComment, setIsReviewingSupportComment] = React.useState();
const [tipAmount, setTipAmount] = React.useState(1); const [tipAmount, setTipAmount] = React.useState(1);
const [commentValue, setCommentValue] = React.useState(''); const [commentValue, setCommentValue] = React.useState('');
const [advancedEditor, setAdvancedEditor] = usePersistedState('comment-editor-mode', false); const [advancedEditor, setAdvancedEditor] = usePersistedState('comment-editor-mode', false);
const hasChannels = channels && channels.length;
const charCount = commentValue.length;
const [activeTab, setActiveTab] = React.useState(''); const [activeTab, setActiveTab] = React.useState('');
const [tipError, setTipError] = React.useState(); const [tipError, setTipError] = React.useState();
const [deletedComment, setDeletedComment] = React.useState(false); const [deletedComment, setDeletedComment] = React.useState(false);
const disabled = deletedComment || isSubmitting || isFetchingChannels || !commentValue.length; const [pauseQuickSend, setPauseQuickSend] = React.useState(false);
const [shouldDisableReviewButton, setShouldDisableReviewButton] = React.useState(); const [shouldDisableReviewButton, setShouldDisableReviewButton] = React.useState();
const selectedMentionIndex =
commentValue.indexOf('@', selectionIndex) === selectionIndex
? commentValue.indexOf('@', selectionIndex)
: commentValue.lastIndexOf('@', selectionIndex);
const modifierIndex = commentValue.indexOf(':', selectedMentionIndex);
const spaceIndex = commentValue.indexOf(' ', selectedMentionIndex);
const mentionLengthIndex =
modifierIndex >= 0 && (spaceIndex === -1 || modifierIndex < spaceIndex)
? modifierIndex
: spaceIndex >= 0 && (modifierIndex === -1 || spaceIndex < modifierIndex)
? spaceIndex
: commentValue.length;
const channelMention =
selectedMentionIndex >= 0 && selectionIndex <= mentionLengthIndex
? commentValue.substring(selectedMentionIndex, mentionLengthIndex)
: '';
const claimId = claim && claim.claim_id;
const signingChannel = (claim && claim.signing_channel) || claim;
const channelUri = signingChannel && signingChannel.permanent_url;
const hasChannels = channels && channels.length;
const charCount = commentValue ? commentValue.length : 0;
const disabled = deletedComment || isSubmitting || isFetchingChannels || !commentValue.length || pauseQuickSend;
const channelId = getChannelIdFromClaim(claim); const channelId = getChannelIdFromClaim(claim);
const channelSettings = channelId ? settingsByChannelId[channelId] : undefined; const channelSettings = channelId ? settingsByChannelId[channelId] : undefined;
const minSuper = (channelSettings && channelSettings.min_tip_amount_super_chat) || 0; const minSuper = (channelSettings && channelSettings.min_tip_amount_super_chat) || 0;
@ -109,15 +137,6 @@ export function CommentCreate(props: Props) {
const minAmount = minTip || minSuper || 0; const minAmount = minTip || minSuper || 0;
const minAmountMet = minAmount === 0 || tipAmount >= minAmount; const minAmountMet = minAmount === 0 || tipAmount >= minAmount;
// Fetch top-level comments to identify if it has been deleted and can reply to it
React.useEffect(() => {
if (shouldFetchComment && fetchComment) {
fetchComment(parentId).then((result) => {
setDeletedComment(String(result).includes('Error'));
});
}
}, [fetchComment, shouldFetchComment, parentId]);
const minAmountRef = React.useRef(minAmount); const minAmountRef = React.useRef(minAmount);
minAmountRef.current = minAmount; minAmountRef.current = minAmount;
@ -157,6 +176,20 @@ export function CommentCreate(props: Props) {
setCommentValue(commentValue); setCommentValue(commentValue);
} }
function handleSelectMention(mentionValue, key) {
let newMentionValue = mentionValue.replace('lbry://', '');
if (newMentionValue.includes('#')) newMentionValue = newMentionValue.replace('#', ':');
if (livestream && key !== KEYCODES.TAB) setPauseQuickSend(true);
setCommentValue(
commentValue.substring(0, selectedMentionIndex) +
`${newMentionValue}` +
(commentValue.length > mentionLengthIndex + 1
? commentValue.substring(mentionLengthIndex, commentValue.length)
: ' ')
);
}
function altEnterListener(e: SyntheticKeyboardEvent<*>) { function altEnterListener(e: SyntheticKeyboardEvent<*>) {
if ((livestream || e.ctrlKey || e.metaKey) && e.keyCode === KEYCODES.ENTER) { if ((livestream || e.ctrlKey || e.metaKey) && e.keyCode === KEYCODES.ENTER) {
e.preventDefault(); e.preventDefault();
@ -365,10 +398,6 @@ export function CommentCreate(props: Props) {
}); });
} }
function toggleEditorMode() {
setAdvancedEditor(!advancedEditor);
}
// ************************************************************************** // **************************************************************************
// Effects // Effects
// ************************************************************************** // **************************************************************************
@ -378,7 +407,28 @@ export function CommentCreate(props: Props) {
if (!channelSettings && channelId) { if (!channelSettings && channelId) {
doFetchCreatorSettings(channelId); doFetchCreatorSettings(channelId);
} }
}, []); // eslint-disable-line react-hooks/exhaustive-deps }, [channelId, channelSettings, doFetchCreatorSettings]);
// Notifications: Fetch top-level comments to identify if it has been deleted and can reply to it
React.useEffect(() => {
if (shouldFetchComment && fetchComment) {
fetchComment(parentId).then((result) => {
setDeletedComment(String(result).includes('Error'));
});
}
}, [fetchComment, shouldFetchComment, parentId]);
// Debounce for disabling the submit button when mentioning a user with Enter
// so that the comment isn't sent at the same time
React.useEffect(() => {
const timer = setTimeout(() => {
if (pauseQuickSend) {
setPauseQuickSend(false);
}
}, MENTION_DEBOUNCE_MS);
return () => clearTimeout(timer);
}, [pauseQuickSend]);
// ************************************************************************** // **************************************************************************
// Render // Render
@ -466,10 +516,22 @@ export function CommentCreate(props: Props) {
'comment__create--bottom': bottom, 'comment__create--bottom': bottom,
})} })}
> >
{!advancedEditor && (
<ChannelMentionSuggestions
uri={uri}
isLivestream={livestream}
inputRef={formFieldInputRef}
mentionTerm={channelMention}
creatorUri={channelUri}
customSelectAction={handleSelectMention}
/>
)}
<FormField <FormField
disabled={isFetchingChannels} disabled={isFetchingChannels}
type={SIMPLE_SITE ? 'textarea' : advancedEditor && !isReply ? 'markdown' : 'textarea'} type={SIMPLE_SITE ? 'textarea' : advancedEditor && !isReply ? 'markdown' : 'textarea'}
name={isReply ? 'content_reply' : 'content_description'} name={isReply ? 'content_reply' : 'content_description'}
ref={formFieldRef}
className={isReply ? 'content_reply' : 'content_comment'}
label={ label={
<span className="comment-new__label-wrapper"> <span className="comment-new__label-wrapper">
{!livestream && ( {!livestream && (
@ -481,7 +543,7 @@ export function CommentCreate(props: Props) {
quickActionLabel={ quickActionLabel={
!SIMPLE_SITE && (isReply ? undefined : advancedEditor ? __('Simple Editor') : __('Advanced Editor')) !SIMPLE_SITE && (isReply ? undefined : advancedEditor ? __('Simple Editor') : __('Advanced Editor'))
} }
quickActionHandler={!SIMPLE_SITE && toggleEditorMode} quickActionHandler={() => !SIMPLE_SITE && setAdvancedEditor(!advancedEditor)}
onFocus={onTextareaFocus} onFocus={onTextareaFocus}
onBlur={onTextareaBlur} onBlur={onTextareaBlur}
placeholder={__('Say something about this...')} placeholder={__('Say something about this...')}

View file

@ -1,13 +1,13 @@
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { makeSelectChannelPermUrlForClaimUri, makeSelectClaimIsMine, makeSelectClaimForUri } from 'lbry-redux';
import { doCommentPin, doCommentModAddDelegate } from 'redux/actions/comments';
import { doChannelMute } from 'redux/actions/blocked'; import { doChannelMute } from 'redux/actions/blocked';
// import { doSetActiveChannel } from 'redux/actions/app'; import { doCommentPin, doCommentModAddDelegate } from 'redux/actions/comments';
import { doOpenModal } from 'redux/actions/app'; import { doOpenModal } from 'redux/actions/app';
import { doSetPlayingUri } from 'redux/actions/content'; import { doSetPlayingUri } from 'redux/actions/content';
import { doToast } from 'redux/actions/notifications';
import { makeSelectChannelPermUrlForClaimUri, makeSelectClaimIsMine, makeSelectClaimForUri } from 'lbry-redux';
import { selectActiveChannelClaim } from 'redux/selectors/app'; import { selectActiveChannelClaim } from 'redux/selectors/app';
import { selectPlayingUri } from 'redux/selectors/content';
import { selectModerationDelegatorsById } from 'redux/selectors/comments'; import { selectModerationDelegatorsById } from 'redux/selectors/comments';
import { selectPlayingUri } from 'redux/selectors/content';
import CommentMenuList from './view'; import CommentMenuList from './view';
const select = (state, props) => ({ const select = (state, props) => ({
@ -24,9 +24,9 @@ const perform = (dispatch) => ({
clearPlayingUri: () => dispatch(doSetPlayingUri({ uri: null })), clearPlayingUri: () => dispatch(doSetPlayingUri({ uri: null })),
muteChannel: (channelUri) => dispatch(doChannelMute(channelUri)), muteChannel: (channelUri) => dispatch(doChannelMute(channelUri)),
pinComment: (commentId, claimId, remove) => dispatch(doCommentPin(commentId, claimId, remove)), pinComment: (commentId, claimId, remove) => dispatch(doCommentPin(commentId, claimId, remove)),
// setActiveChannel: channelId => dispatch(doSetActiveChannel(channelId)),
commentModAddDelegate: (modChanId, modChanName, creatorChannelClaim) => commentModAddDelegate: (modChanId, modChanName, creatorChannelClaim) =>
dispatch(doCommentModAddDelegate(modChanId, modChanName, creatorChannelClaim, true)), dispatch(doCommentModAddDelegate(modChanId, modChanName, creatorChannelClaim, true)),
doToast: (props) => dispatch(doToast(props)),
}); });
export default connect(select, perform)(CommentMenuList); export default connect(select, perform)(CommentMenuList);

View file

@ -1,12 +1,14 @@
// @flow // @flow
import { getChannelFromClaim } from 'util/claim';
import { MenuList, MenuItem } from '@reach/menu-button';
import { parseURI } from 'lbry-redux';
import { URL } from 'config';
import { useHistory } from 'react-router';
import * as ICONS from 'constants/icons'; import * as ICONS from 'constants/icons';
import * as MODALS from 'constants/modal_types'; import * as MODALS from 'constants/modal_types';
import React from 'react';
import { MenuList, MenuItem } from '@reach/menu-button';
import ChannelThumbnail from 'component/channelThumbnail'; import ChannelThumbnail from 'component/channelThumbnail';
import Icon from 'component/common/icon'; import Icon from 'component/common/icon';
import { parseURI } from 'lbry-redux'; import React from 'react';
import { getChannelFromClaim } from 'util/claim';
type Props = { type Props = {
uri: ?string, uri: ?string,
@ -18,7 +20,6 @@ type Props = {
disableEdit?: boolean, disableEdit?: boolean,
disableRemove?: boolean, disableRemove?: boolean,
supportAmount?: any, supportAmount?: any,
handleEditComment: () => void,
// --- select --- // --- select ---
claim: ?Claim, claim: ?Claim,
claimIsMine: boolean, claimIsMine: boolean,
@ -27,6 +28,8 @@ type Props = {
playingUri: ?PlayingUri, playingUri: ?PlayingUri,
moderationDelegatorsById: { [string]: { global: boolean, delegators: { name: string, claimId: string } } }, moderationDelegatorsById: { [string]: { global: boolean, delegators: { name: string, claimId: string } } },
// --- perform --- // --- perform ---
doToast: ({ message: string }) => void,
handleEditComment: () => void,
openModal: (id: string, {}) => void, openModal: (id: string, {}) => void,
clearPlayingUri: () => void, clearPlayingUri: () => void,
muteChannel: (string) => void, muteChannel: (string) => void,
@ -42,24 +45,29 @@ function CommentMenuList(props: Props) {
authorUri, authorUri,
commentIsMine, commentIsMine,
commentId, commentId,
muteChannel,
pinComment,
clearPlayingUri,
activeChannelClaim, activeChannelClaim,
contentChannelPermanentUrl, contentChannelPermanentUrl,
isTopLevel, isTopLevel,
isPinned, isPinned,
handleEditComment,
commentModAddDelegate,
playingUri, playingUri,
moderationDelegatorsById, moderationDelegatorsById,
disableEdit, disableEdit,
disableRemove, disableRemove,
openModal,
supportAmount, supportAmount,
doToast,
handleEditComment,
openModal,
clearPlayingUri,
muteChannel,
pinComment,
commentModAddDelegate,
setQuickReply, setQuickReply,
} = props; } = props;
const {
location: { pathname, search },
} = useHistory();
const contentChannelClaim = getChannelFromClaim(claim); const contentChannelClaim = getChannelFromClaim(claim);
const activeModeratorInfo = activeChannelClaim && moderationDelegatorsById[activeChannelClaim.claim_id]; const activeModeratorInfo = activeChannelClaim && moderationDelegatorsById[activeChannelClaim.claim_id];
const activeChannelIsCreator = activeChannelClaim && activeChannelClaim.permanent_url === contentChannelPermanentUrl; const activeChannelIsCreator = activeChannelClaim && activeChannelClaim.permanent_url === contentChannelPermanentUrl;
@ -70,10 +78,6 @@ function CommentMenuList(props: Props) {
activeModeratorInfo && activeModeratorInfo &&
Object.values(activeModeratorInfo.delegators).includes(contentChannelClaim.claim_id); Object.values(activeModeratorInfo.delegators).includes(contentChannelClaim.claim_id);
function handlePinComment(commentId, claimId, remove) {
pinComment(commentId, claimId, remove);
}
function handleDeleteComment() { function handleDeleteComment() {
if (playingUri && playingUri.source === 'comment') { if (playingUri && playingUri.source === 'comment') {
clearPlayingUri(); clearPlayingUri();
@ -87,14 +91,6 @@ function CommentMenuList(props: Props) {
}); });
} }
function handleCommentBlock() {
openModal(MODALS.BLOCK_CHANNEL, { contentUri: uri, commenterUri: authorUri });
}
function handleCommentMute() {
muteChannel(authorUri);
}
function assignAsModerator() { function assignAsModerator() {
if (activeChannelClaim && authorUri) { if (activeChannelClaim && authorUri) {
const { channelName, channelClaimId } = parseURI(authorUri); const { channelName, channelClaimId } = parseURI(authorUri);
@ -155,6 +151,15 @@ function CommentMenuList(props: Props) {
); );
} }
function handleCopyCommentLink() {
const urlParams = new URLSearchParams(search);
urlParams.delete('lc');
urlParams.append('lc', commentId);
navigator.clipboard
.writeText(`${URL}${pathname}?${urlParams.toString()}`)
.then(() => doToast({ message: __('Link copied.') }));
}
return ( return (
<MenuList className="menu__list"> <MenuList className="menu__list">
{activeChannelIsCreator && <div className="comment__menu-title">{__('Creator tools')}</div>} {activeChannelIsCreator && <div className="comment__menu-title">{__('Creator tools')}</div>}
@ -162,7 +167,7 @@ function CommentMenuList(props: Props) {
{activeChannelIsCreator && isTopLevel && ( {activeChannelIsCreator && isTopLevel && (
<MenuItem <MenuItem
className="comment__menu-option menu__link" className="comment__menu-option menu__link"
onSelect={() => handlePinComment(commentId, claim ? claim.claim_id : '', isPinned)} onSelect={() => pinComment(commentId, claim ? claim.claim_id : '', isPinned)}
> >
<span className={'button__content'}> <span className={'button__content'}>
<Icon aria-hidden icon={ICONS.PIN} className={'icon'} /> <Icon aria-hidden icon={ICONS.PIN} className={'icon'} />
@ -171,20 +176,27 @@ function CommentMenuList(props: Props) {
</MenuItem> </MenuItem>
)} )}
{activeChannelIsCreator && ( {activeChannelIsCreator && activeChannelClaim && activeChannelClaim.permanent_url !== authorUri && (
<MenuItem className="comment__menu-option" onSelect={assignAsModerator}> <MenuItem className="comment__menu-option" onSelect={assignAsModerator}>
<div className="menu__link"> <div className="menu__link">
<Icon aria-hidden icon={ICONS.ADD} /> <Icon aria-hidden icon={ICONS.ADD} />
{__('Add as moderator')} {__('Add as moderator')}
</div> </div>
<span className="comment__menu-help"> <span className="comment__menu-help">
{__('Assign this user to moderate %channel%', { {activeChannelClaim
channel: activeChannelClaim ? activeChannelClaim.name : __('your channel'), ? __('Assign this user to moderate %channel%.', { channel: activeChannelClaim.name })
})} : __('Assign this user to moderate your channel.')}
</span> </span>
</MenuItem> </MenuItem>
)} )}
{commentIsMine && activeChannelClaim && activeChannelClaim.permanent_url === authorUri && !disableEdit && (
<MenuItem className="comment__menu-option menu__link" onSelect={handleEditComment}>
<Icon aria-hidden icon={ICONS.EDIT} />
{__('Edit')}
</MenuItem>
)}
{!disableRemove && {!disableRemove &&
activeChannelClaim && activeChannelClaim &&
(activeChannelClaim.permanent_url === authorUri || (activeChannelClaim.permanent_url === authorUri ||
@ -197,28 +209,32 @@ function CommentMenuList(props: Props) {
</MenuItem> </MenuItem>
)} )}
{commentIsMine && activeChannelClaim && activeChannelClaim.permanent_url === authorUri && !disableEdit && ( {!commentIsMine && (
<MenuItem className="comment__menu-option menu__link" onSelect={handleEditComment}> <>
<Icon aria-hidden icon={ICONS.EDIT} /> <MenuItem
{__('Edit')} className="comment__menu-option"
</MenuItem> onSelect={() => openModal(MODALS.BLOCK_CHANNEL, { contentUri: uri, commenterUri: authorUri })}
>
{getBlockOptionElem()}
</MenuItem>
<MenuItem className="comment__menu-option" onSelect={() => muteChannel(authorUri)}>
<div className="menu__link">
<Icon aria-hidden icon={ICONS.MUTE} />
{__('Mute')}
</div>
{activeChannelIsCreator && (
<span className="comment__menu-help">{__('Hide this channel for you only.')}</span>
)}
</MenuItem>
</>
)} )}
{!commentIsMine && ( {IS_WEB && (
<MenuItem className="comment__menu-option" onSelect={handleCommentBlock}> <MenuItem className="comment__menu-option" onSelect={handleCopyCommentLink}>
{getBlockOptionElem()}
</MenuItem>
)}
{!commentIsMine && (
<MenuItem className="comment__menu-option" onSelect={handleCommentMute}>
<div className="menu__link"> <div className="menu__link">
<Icon aria-hidden icon={ICONS.MUTE} /> <Icon aria-hidden icon={ICONS.COPY_LINK} />
{__('Mute')} {__('Copy Link')}
</div> </div>
{activeChannelIsCreator && (
<span className="comment__menu-help">{__('Hide this channel for you only.')}</span>
)}
</MenuItem> </MenuItem>
)} )}

View file

@ -9,6 +9,7 @@ import {
makeSelectTopLevelCommentsForUri, makeSelectTopLevelCommentsForUri,
makeSelectTopLevelTotalPagesForUri, makeSelectTopLevelTotalPagesForUri,
selectIsFetchingComments, selectIsFetchingComments,
selectIsFetchingCommentsById,
selectIsFetchingReacts, selectIsFetchingReacts,
makeSelectTotalCommentsCountForUri, makeSelectTotalCommentsCountForUri,
selectOthersReactsById, selectOthersReactsById,
@ -33,6 +34,7 @@ const select = (state, props) => {
claim: makeSelectClaimForUri(props.uri)(state), claim: makeSelectClaimForUri(props.uri)(state),
claimIsMine: makeSelectClaimIsMine(props.uri)(state), claimIsMine: makeSelectClaimIsMine(props.uri)(state),
isFetchingComments: selectIsFetchingComments(state), isFetchingComments: selectIsFetchingComments(state),
isFetchingCommentsById: selectIsFetchingCommentsById(state),
isFetchingReacts: selectIsFetchingReacts(state), isFetchingReacts: selectIsFetchingReacts(state),
fetchingChannels: selectFetchingMyChannels(state), fetchingChannels: selectFetchingMyChannels(state),
settingsByChannelId: selectSettingsByChannelId(state), settingsByChannelId: selectSettingsByChannelId(state),
@ -46,7 +48,7 @@ const perform = (dispatch) => ({
fetchTopLevelComments: (uri, page, pageSize, sortBy) => dispatch(doCommentList(uri, '', page, pageSize, sortBy)), fetchTopLevelComments: (uri, page, pageSize, sortBy) => dispatch(doCommentList(uri, '', page, pageSize, sortBy)),
fetchComment: (commentId) => dispatch(doCommentById(commentId)), fetchComment: (commentId) => dispatch(doCommentById(commentId)),
fetchReacts: (commentIds) => dispatch(doCommentReactList(commentIds)), fetchReacts: (commentIds) => dispatch(doCommentReactList(commentIds)),
resetComments: (uri) => dispatch(doCommentReset(uri)), resetComments: (claimId) => dispatch(doCommentReset(claimId)),
}); });
export default connect(select, perform)(CommentsList); export default connect(select, perform)(CommentsList);

View file

@ -1,27 +1,25 @@
// @flow // @flow
import * as REACTION_TYPES from 'constants/reactions';
import * as ICONS from 'constants/icons';
import { COMMENT_HIGHLIGHTED } from 'constants/classnames'; import { COMMENT_HIGHLIGHTED } from 'constants/classnames';
import { COMMENT_PAGE_SIZE_TOP_LEVEL, SORT_BY } from 'constants/comment'; import { COMMENT_PAGE_SIZE_TOP_LEVEL, SORT_BY } from 'constants/comment';
import React, { useEffect } from 'react'; import { ENABLE_COMMENT_REACTIONS } from 'config';
import classnames from 'classnames'; import { getChannelIdFromClaim } from 'util/claim';
import CommentView from 'component/comment'; import { useIsMobile, useIsMediumScreen } from 'effects/use-screensize';
import Spinner from 'component/spinner'; import * as ICONS from 'constants/icons';
import * as REACTION_TYPES from 'constants/reactions';
import Button from 'component/button'; import Button from 'component/button';
import Card from 'component/common/card'; import Card from 'component/common/card';
import classnames from 'classnames';
import CommentCreate from 'component/commentCreate'; import CommentCreate from 'component/commentCreate';
import usePersistedState from 'effects/use-persisted-state'; import CommentView from 'component/comment';
import { ENABLE_COMMENT_REACTIONS } from 'config';
import Empty from 'component/common/empty';
import debounce from 'util/debounce'; import debounce from 'util/debounce';
import { useIsMobile, useIsMediumScreen } from 'effects/use-screensize'; import Empty from 'component/common/empty';
import { getChannelIdFromClaim } from 'util/claim'; import React, { useEffect } from 'react';
import Spinner from 'component/spinner';
import useFetched from 'effects/use-fetched';
import usePersistedState from 'effects/use-persisted-state';
const DEBOUNCE_SCROLL_HANDLER_MS = 200; const DEBOUNCE_SCROLL_HANDLER_MS = 200;
// "3" due to 2 separate fetches needed + 1 buffer just in case.
const MAX_LINKED_COMMENT_SCROLL_ATTEMPTS = 3;
function scaleToDevicePixelRatio(value) { function scaleToDevicePixelRatio(value) {
const devicePixelRatio = window.devicePixelRatio || 1.0; const devicePixelRatio = window.devicePixelRatio || 1.0;
if (devicePixelRatio < 1.0) { if (devicePixelRatio < 1.0) {
@ -35,15 +33,12 @@ type Props = {
pinnedComments: Array<Comment>, pinnedComments: Array<Comment>,
topLevelComments: Array<Comment>, topLevelComments: Array<Comment>,
topLevelTotalPages: number, topLevelTotalPages: number,
fetchTopLevelComments: (string, number, number, number) => void,
fetchComment: (string) => void,
fetchReacts: (Array<string>) => Promise<any>,
resetComments: (string) => void,
uri: string, uri: string,
claim: ?Claim, claim: ?Claim,
claimIsMine: boolean, claimIsMine: boolean,
myChannels: ?Array<ChannelClaim>, myChannels: ?Array<ChannelClaim>,
isFetchingComments: boolean, isFetchingComments: boolean,
isFetchingCommentsById: boolean,
isFetchingReacts: boolean, isFetchingReacts: boolean,
linkedCommentId?: string, linkedCommentId?: string,
totalComments: number, totalComments: number,
@ -52,15 +47,16 @@ type Props = {
othersReactsById: ?{ [string]: { [REACTION_TYPES.LIKE | REACTION_TYPES.DISLIKE]: number } }, othersReactsById: ?{ [string]: { [REACTION_TYPES.LIKE | REACTION_TYPES.DISLIKE]: number } },
activeChannelId: ?string, activeChannelId: ?string,
settingsByChannelId: { [channelId: string]: PerChannelSettings }, settingsByChannelId: { [channelId: string]: PerChannelSettings },
fetchReacts: (Array<string>) => Promise<any>,
commentsAreExpanded?: boolean,
fetchTopLevelComments: (string, number, number, number) => void,
fetchComment: (string) => void,
resetComments: (string) => void,
}; };
function CommentList(props: Props) { function CommentList(props: Props) {
const { const {
allCommentIds, allCommentIds,
fetchTopLevelComments,
fetchComment,
fetchReacts,
resetComments,
uri, uri,
pinnedComments, pinnedComments,
topLevelComments, topLevelComments,
@ -69,6 +65,7 @@ function CommentList(props: Props) {
claimIsMine, claimIsMine,
myChannels, myChannels,
isFetchingComments, isFetchingComments,
isFetchingCommentsById,
isFetchingReacts, isFetchingReacts,
linkedCommentId, linkedCommentId,
totalComments, totalComments,
@ -77,21 +74,28 @@ function CommentList(props: Props) {
othersReactsById, othersReactsById,
activeChannelId, activeChannelId,
settingsByChannelId, settingsByChannelId,
fetchReacts,
commentsAreExpanded,
fetchTopLevelComments,
fetchComment,
resetComments,
} = props; } = props;
const isMobile = useIsMobile();
const isMediumScreen = useIsMediumScreen();
const spinnerRef = React.useRef(); const spinnerRef = React.useRef();
const DEFAULT_SORT = ENABLE_COMMENT_REACTIONS ? SORT_BY.POPULARITY : SORT_BY.NEWEST; const DEFAULT_SORT = ENABLE_COMMENT_REACTIONS ? SORT_BY.POPULARITY : SORT_BY.NEWEST;
const [sort, setSort] = usePersistedState('comment-sort-by', DEFAULT_SORT); const [sort, setSort] = usePersistedState('comment-sort-by', DEFAULT_SORT);
const [page, setPage] = React.useState(0); const [page, setPage] = React.useState(0);
const [lcScrollAttempts, setLcScrollAttempts] = React.useState( const fetchedCommentsOnce = useFetched(isFetchingComments);
linkedCommentId ? 0 : MAX_LINKED_COMMENT_SCROLL_ATTEMPTS const fetchedReactsOnce = useFetched(isFetchingReacts);
); const fetchedLinkedComment = useFetched(isFetchingCommentsById);
const isMobile = useIsMobile(); const hasDefaultExpansion = commentsAreExpanded || (!isMobile && !isMediumScreen);
const isMediumScreen = useIsMediumScreen(); const [expandedComments, setExpandedComments] = React.useState(hasDefaultExpansion);
const [expandedComments, setExpandedComments] = React.useState(!isMobile && !isMediumScreen);
const totalFetchedComments = allCommentIds ? allCommentIds.length : 0; const totalFetchedComments = allCommentIds ? allCommentIds.length : 0;
const channelId = getChannelIdFromClaim(claim); const channelId = getChannelIdFromClaim(claim);
const channelSettings = channelId ? settingsByChannelId[channelId] : undefined; const channelSettings = channelId ? settingsByChannelId[channelId] : undefined;
const moreBelow = page < topLevelTotalPages;
// Display comments immediately if not fetching reactions // Display comments immediately if not fetching reactions
// If not, wait to show comments until reactions are fetched // If not, wait to show comments until reactions are fetched
@ -99,20 +103,6 @@ function CommentList(props: Props) {
Boolean(othersReactsById) || !ENABLE_COMMENT_REACTIONS Boolean(othersReactsById) || !ENABLE_COMMENT_REACTIONS
); );
const hasNoComments = !totalComments;
const moreBelow = page < topLevelTotalPages;
const isMyComment = (channelId: string): boolean => {
if (myChannels != null && channelId != null) {
for (let i = 0; i < myChannels.length; i++) {
if (myChannels[i].claim_id === channelId) {
return true;
}
}
}
return false;
};
function changeSort(newSort) { function changeSort(newSort) {
if (sort !== newSort) { if (sort !== newSort) {
setSort(newSort); setSort(newSort);
@ -120,41 +110,16 @@ function CommentList(props: Props) {
} }
} }
function getCommentElems(comments) {
return comments.map((comment) => {
return (
<CommentView
isTopLevel
threadDepth={3}
key={comment.comment_id}
uri={uri}
authorUri={comment.channel_url}
author={comment.channel_name}
claimId={comment.claim_id}
commentId={comment.comment_id}
message={comment.comment}
timePosted={comment.timestamp * 1000}
claimIsMine={claimIsMine}
commentIsMine={comment.channel_id && isMyComment(comment.channel_id)}
linkedCommentId={linkedCommentId}
isPinned={comment.is_pinned}
supportAmount={comment.support_amount}
numDirectReplies={comment.replies}
isModerator={comment.is_moderator}
isGlobalMod={comment.is_global_mod}
isFiat={comment.is_fiat}
/>
);
});
}
// Reset comments // Reset comments
useEffect(() => { useEffect(() => {
if (page === 0) { if (page === 0) {
resetComments(uri); if (claim) {
resetComments(claim.claim_id);
}
setPage(1); setPage(1);
} }
}, [page, uri, resetComments]); // eslint-disable-next-line react-hooks/exhaustive-deps
}, [page, uri, resetComments]); // 'claim' is derived from 'uri'
// Fetch top-level comments // Fetch top-level comments
useEffect(() => { useEffect(() => {
@ -165,7 +130,7 @@ function CommentList(props: Props) {
fetchTopLevelComments(uri, page, COMMENT_PAGE_SIZE_TOP_LEVEL, sort); fetchTopLevelComments(uri, page, COMMENT_PAGE_SIZE_TOP_LEVEL, sort);
} }
}, [fetchTopLevelComments, uri, page, resetComments, sort, linkedCommentId, fetchComment]); }, [fetchComment, fetchTopLevelComments, linkedCommentId, page, sort, uri]);
// Fetch reacts // Fetch reacts
useEffect(() => { useEffect(() => {
@ -190,39 +155,36 @@ function CommentList(props: Props) {
} }
} }
}, [ }, [
totalFetchedComments,
allCommentIds,
othersReactsById,
myReactsByCommentId,
fetchReacts,
uri,
activeChannelId, activeChannelId,
allCommentIds,
fetchReacts,
fetchingChannels, fetchingChannels,
isFetchingReacts, isFetchingReacts,
myReactsByCommentId,
othersReactsById,
totalFetchedComments,
]); ]);
// Scroll to linked-comment // Scroll to linked-comment
useEffect(() => { useEffect(() => {
if (lcScrollAttempts < MAX_LINKED_COMMENT_SCROLL_ATTEMPTS && readyToDisplayComments && !isFetchingComments) { if (fetchedLinkedComment && fetchedCommentsOnce && fetchedReactsOnce) {
const elems = document.getElementsByClassName(COMMENT_HIGHLIGHTED); const elems = document.getElementsByClassName(COMMENT_HIGHLIGHTED);
if (elems.length > 0) { if (elems.length > 0) {
setLcScrollAttempts(MAX_LINKED_COMMENT_SCROLL_ATTEMPTS); const ROUGH_HEADER_HEIGHT = 125; // @see: --header-height
const linkedComment = elems[0]; const linkedComment = elems[0];
linkedComment.scrollIntoView({ block: 'start' }); window.scrollTo({
window.scrollBy(0, -125); top: linkedComment.getBoundingClientRect().top + window.scrollY - ROUGH_HEADER_HEIGHT,
} else { left: 0,
setLcScrollAttempts(lcScrollAttempts + 1); behavior: 'smooth',
});
} }
} }
// eslint-disable-next-line react-hooks/exhaustive-deps }, [fetchedLinkedComment, fetchedCommentsOnce, fetchedReactsOnce]);
}, [readyToDisplayComments, isFetchingComments]); // We just want to respond to these, nothing else.
// Infinite scroll // Infinite scroll
useEffect(() => { useEffect(() => {
function shouldFetchNextPage(page, topLevelTotalPages, window, document, yPrefetchPx = 1000) { function shouldFetchNextPage(page, topLevelTotalPages, window, document, yPrefetchPx = 1000) {
if (!spinnerRef || !spinnerRef.current) { if (!spinnerRef || !spinnerRef.current) return false;
return false;
}
const rect = spinnerRef.current.getBoundingClientRect(); // $FlowFixMe const rect = spinnerRef.current.getBoundingClientRect(); // $FlowFixMe
const windowH = window.innerHeight || document.documentElement.clientHeight; // $FlowFixMe const windowH = window.innerHeight || document.documentElement.clientHeight; // $FlowFixMe
@ -244,7 +206,7 @@ function CommentList(props: Props) {
} }
const handleCommentScroll = debounce(() => { const handleCommentScroll = debounce(() => {
if (!isMobile && !isMediumScreen && shouldFetchNextPage(page, topLevelTotalPages, window, document)) { if (hasDefaultExpansion && shouldFetchNextPage(page, topLevelTotalPages, window, document)) {
setPage(page + 1); setPage(page + 1);
} }
}, DEBOUNCE_SCROLL_HANDLER_MS); }, DEBOUNCE_SCROLL_HANDLER_MS);
@ -257,85 +219,76 @@ function CommentList(props: Props) {
return () => window.removeEventListener('scroll', handleCommentScroll); return () => window.removeEventListener('scroll', handleCommentScroll);
} }
} }
}, [ }, [hasDefaultExpansion, isFetchingComments, moreBelow, page, readyToDisplayComments, topLevelTotalPages]);
isMobile,
isMediumScreen,
page,
moreBelow,
spinnerRef,
isFetchingComments,
readyToDisplayComments,
topLevelComments.length,
topLevelTotalPages,
]);
// Expand comments const getCommentElems = (comments) => {
useEffect(() => { return comments.map((comment) => (
if (!isMobile && !isMediumScreen && !expandedComments) { <CommentView
setExpandedComments(true); isTopLevel
} threadDepth={3}
}, [isMobile, isMediumScreen, expandedComments]); key={comment.comment_id}
uri={uri}
authorUri={comment.channel_url}
author={comment.channel_name}
claimId={comment.claim_id}
commentId={comment.comment_id}
message={comment.comment}
timePosted={comment.timestamp * 1000}
claimIsMine={claimIsMine}
commentIsMine={
comment.channel_id && myChannels && myChannels.some(({ claim_id }) => claim_id === comment.channel_id)
}
linkedCommentId={linkedCommentId}
isPinned={comment.is_pinned}
supportAmount={comment.support_amount}
numDirectReplies={comment.replies}
isModerator={comment.is_moderator}
isGlobalMod={comment.is_global_mod}
isFiat={comment.is_fiat}
/>
));
};
const sortButton = (label, icon, sortOption) => {
return (
<Button
button="alt"
label={label}
icon={icon}
iconSize={18}
onClick={() => changeSort(sortOption)}
className={classnames(`button-toggle`, {
'button-toggle--active': sort === sortOption,
})}
/>
);
};
return ( return (
<Card <Card
className="card--enable-overflow"
title={ title={
totalComments > 0 (totalComments === 0 && __('Leave a comment')) ||
? totalComments === 1 (totalComments === 1 && __('1 comment')) ||
? __('1 comment') __('%totalComments% comments', { totalComments })
: __('%total_comments% comments', { total_comments: totalComments })
: __('Leave a comment')
} }
titleActions={ titleActions={
<> <>
{totalComments > 1 && ENABLE_COMMENT_REACTIONS && ( {totalComments > 1 && ENABLE_COMMENT_REACTIONS && (
<span className="comment__sort"> <span className="comment__sort">
<Button {sortButton(__('Best'), ICONS.BEST, SORT_BY.POPULARITY)}
button="alt" {sortButton(__('Controversial'), ICONS.CONTROVERSIAL, SORT_BY.CONTROVERSY)}
label={__('Best')} {sortButton(__('New'), ICONS.NEW, SORT_BY.NEWEST)}
icon={ICONS.BEST}
iconSize={18}
onClick={() => changeSort(SORT_BY.POPULARITY)}
className={classnames(`button-toggle`, {
'button-toggle--active': sort === SORT_BY.POPULARITY,
})}
/>
<Button
button="alt"
label={__('Controversial')}
icon={ICONS.CONTROVERSIAL}
iconSize={18}
onClick={() => changeSort(SORT_BY.CONTROVERSY)}
className={classnames(`button-toggle`, {
'button-toggle--active': sort === SORT_BY.CONTROVERSY,
})}
/>
<Button
button="alt"
label={__('New')}
icon={ICONS.NEW}
iconSize={18}
onClick={() => changeSort(SORT_BY.NEWEST)}
className={classnames(`button-toggle`, {
'button-toggle--active': sort === SORT_BY.NEWEST,
})}
/>
</span> </span>
)} )}
<Button <Button button="alt" icon={ICONS.REFRESH} title={__('Refresh')} onClick={() => setPage(0)} />
button="alt"
icon={ICONS.REFRESH}
title={__('Refresh')}
onClick={() => {
setPage(0);
}}
/>
</> </>
} }
actions={ actions={
<> <>
<CommentCreate uri={uri} /> <CommentCreate uri={uri} />
{channelSettings && channelSettings.comments_enabled && !isFetchingComments && hasNoComments && ( {channelSettings && channelSettings.comments_enabled && !isFetchingComments && !totalComments && (
<Empty padded text={__('That was pretty deep. What do you think?')} /> <Empty padded text={__('That was pretty deep. What do you think?')} />
)} )}
@ -349,36 +302,28 @@ function CommentList(props: Props) {
{readyToDisplayComments && topLevelComments && getCommentElems(topLevelComments)} {readyToDisplayComments && topLevelComments && getCommentElems(topLevelComments)}
</ul> </ul>
{(isMobile || isMediumScreen) && ( {!hasDefaultExpansion && (
<div className="card__bottom-actions--comments"> <div className="card__bottom-actions--comments">
{(!expandedComments || moreBelow) && ( {(!expandedComments || moreBelow) && (
<Button <Button
button="link" button="link"
title={!expandedComments ? __('Expand Comments') : __('Load More')} title={!expandedComments ? __('Expand') : __('More')}
label={!expandedComments ? __('Expand') : __('More')} label={!expandedComments ? __('Expand') : __('More')}
onClick={() => { onClick={() => (!expandedComments ? setExpandedComments(true) : setPage(page + 1))}
if (!expandedComments) {
setExpandedComments(true);
} else {
setPage(page + 1);
}
}}
/> />
)} )}
{expandedComments && ( {expandedComments && (
<Button <Button
button="link" button="link"
title={__('Collapse Thread')} title={__('Collapse')}
label={__('Collapse')} label={__('Collapse')}
onClick={() => { onClick={() => setExpandedComments(false)}
setExpandedComments(false);
}}
/> />
)} )}
</div> </div>
)} )}
{(isFetchingComments || (!isMobile && !isMediumScreen && moreBelow)) && ( {(isFetchingComments || (hasDefaultExpansion && moreBelow)) && (
<div className="main--empty" ref={spinnerRef}> <div className="main--empty" ref={spinnerRef}>
<Spinner type="small" /> <Spinner type="small" />
</div> </div>

View file

@ -2469,4 +2469,61 @@ export const icons = {
<line x1="4" y1="4" x2="9" y2="9" /> <line x1="4" y1="4" x2="9" y2="9" />
</g> </g>
), ),
[ICONS.HOLD_PHONE]: buildIcon(
<g>
<path d="M12 17.491L1.5 17.491" />
<path d="M8,19.241H8a.25.25,0,0,1,.25.25h0a.25.25,0,0,1-.25.25H8a.25.25,0,0,1-.25-.25h0a.25.25,0,0,1,.25-.25" />
<path d="M12.5,21.491h-9a2,2,0,0,1-2-2v-17a2,2,0,0,1,2-2h9a2,2,0,0,1,2,2V13.265" />
<path d="M22.5,23.487l-3-4.393V13.372c0-2.127-3.46-3.9-5-5.08" />
<path d="M16.5,14.868l-3.727-2.987a1.331,1.331,0,0,0-1.883,1.883l3.61,4.079V20.4c0,1.206,1.724,3.111,1.724,3.111" />
<path d="M5.750 5.741 A2.250 2.250 0 1 0 10.250 5.741 A2.250 2.250 0 1 0 5.750 5.741 Z" />
<path d="M12.11,11.524a4.628,4.628,0,0,0-8.61.967" />
</g>
),
[ICONS.LIFE]: buildIcon(
<g>
<path d="M12 23.5L12 6.836" />
<path d="M12,6.836s2-1.291,2-3.228a4.144,4.144,0,0,0-1.69-3,.49.49,0,0,0-.621,0,4.143,4.143,0,0,0-1.689,3C10,5.545,12,6.836,12,6.836Z" />
<path d="M12,10.455s.9-4.038,6.093-4.038a.5.5,0,0,1,.419.8A7.942,7.942,0,0,1,12,10.455Z" />
<path d="M12,10.455s-.9-4.038-6.093-4.038a.5.5,0,0,0-.419.8A7.942,7.942,0,0,0,12,10.455Z" />
<path d="M12,15.455s1.809-4.31,7.6-3.2a.5.5,0,0,1,.262.858A8.855,8.855,0,0,1,12,15.455Z" />
<path d="M12,15.455s-1.809-4.31-7.6-3.2a.5.5,0,0,0-.262.858A8.855,8.855,0,0,0,12,15.455Z" />
<path d="M12,19.955s-2.767-3.766-8.139-1.331a.505.505,0,0,0-.054.9A8.853,8.853,0,0,0,12,19.955Z" />
<path d="M12,19.955s2.767-3.766,8.139-1.331a.505.505,0,0,1,.054.9A8.853,8.853,0,0,1,12,19.955Z" />
</g>
),
[ICONS.ARTISTS]: buildIcon(
<g>
<path d="M10.107,16.884,22.372,4.657a2.5,2.5,0,0,0-3.744-3.314L7.954,15.04" />
<path d="M1.285,22.879a.5.5,0,0,1,.027-.915C3.693,21,2.926,18.286,3.633,16.835a3.56,3.56,0,0,1,4.728-1.627C13.677,17.8,7.349,25.765,1.285,22.879Z" />
</g>
),
[ICONS.MYSTERIES]: buildIcon(
<g>
<path d="M9.926,14.581c-6.5,0-5.912-5.912-5.912-5.912C11.108,8.669,9.926,14.581,9.926,14.581Z" />
<path d="M14.074,14.581c6.5,0,5.912-5.912,5.912-5.912C12.892,8.669,14.074,14.581,14.074,14.581Z" />
<path d="M22.5,10.25c0,6.352-7.5,13-10.5,13S1.5,16.6,1.5,10.25,5.648.75,12,.75,22.5,3.9,22.5,10.25Z" />
</g>
),
[ICONS.TECHNOLOGY]: buildIcon(
<g>
<rect x="0.5" y="13.5" width="23" height="10" rx="2" ry="2" />
<path d="M3.5,13.5v-1a3,3,0,0,1,3-3H20a3.5,3.5,0,0,0,0-7H13.5A1.5,1.5,0,0,1,12,1V.5" />
<line x1="4" y1="20.5" x2="5" y2="20.5" />
<line x1="4" y1="18.5" x2="5" y2="18.5" />
<line x1="7" y1="18.5" x2="8" y2="18.5" />
<line x1="10" y1="18.5" x2="11" y2="18.5" />
<line x1="13" y1="18.5" x2="14" y2="18.5" />
<line x1="16" y1="18.5" x2="17" y2="18.5" />
<line x1="19" y1="18.5" x2="20" y2="18.5" />
<line x1="4" y1="16.5" x2="5" y2="16.5" />
<line x1="7" y1="16.5" x2="8" y2="16.5" />
<line x1="10" y1="16.5" x2="11" y2="16.5" />
<line x1="13" y1="16.5" x2="14" y2="16.5" />
<line x1="16" y1="16.5" x2="17" y2="16.5" />
<line x1="19" y1="16.5" x2="20" y2="16.5" />
<line x1="7" y1="20.5" x2="17" y2="20.5" />
<line x1="19" y1="20.5" x2="20" y2="20.5" />
</g>
),
}; };

View file

@ -1,7 +0,0 @@
import { connect } from 'react-redux';
import { doToast } from 'redux/actions/notifications';
import CopyableStreamkey from './view';
export default connect(null, {
doToast,
})(CopyableStreamkey);

View file

@ -1,93 +0,0 @@
// @flow
import * as ICONS from 'constants/icons';
import { FormField } from 'component/common/form';
import Button from 'component/button';
import React, { useRef, Fragment } from 'react';
type Props = {
copyable: string,
snackMessage: ?string,
doToast: ({ message: string }) => void,
primaryButton?: boolean,
name?: string,
onCopy?: (string) => string,
enableMask?: boolean,
};
export default function CopyableStreamkey(props: Props) {
const { copyable, doToast, snackMessage, primaryButton = false, name, onCopy, enableMask = true } = props;
const input = useRef();
function copyToClipboard() {
const topRef = input.current;
if (topRef[1].type === 'password') {
navigator.clipboard.writeText(topRef[1].defaultValue);
}
if (topRef[1].type === 'text') {
topRef[1].select();
if (onCopy) {
onCopy(topRef[1]);
}
}
document.execCommand('copy');
}
function checkMaskType() {
if (enableMask === true) {
return 'password';
}
if (enableMask === false) {
return 'text';
}
}
function showStreamkeyFunc() {
const topRef = input.current;
if (topRef[1].type === 'password') {
topRef[1].type = 'text';
topRef[0].innerText = 'Hide';
return;
}
if (topRef[1].type === 'text') {
topRef[1].type = 'password';
topRef[0].innerText = 'Show';
}
}
return (
<Fragment>
<form ref={input}>
<div>
<label name="livestream-key">Stream key</label>{' '}
<Button
className="button--link"
label={__('Show')}
onClick={() => {
showStreamkeyFunc();
}}
/>
</div>
<FormField
type={checkMaskType()}
className="form-field--copyable-streamkey"
readOnly
name={name}
value={copyable || ''}
inputButton={
<Button
button={primaryButton ? 'primary' : 'secondary'}
icon={ICONS.COPY}
onClick={() => {
copyToClipboard();
doToast({
message: snackMessage || __('Text copied'),
});
}}
/>
}
/>
</form>
</Fragment>
);
}

View file

@ -12,23 +12,38 @@ type Props = {
primaryButton?: boolean, primaryButton?: boolean,
name?: string, name?: string,
onCopy?: (string) => string, onCopy?: (string) => string,
enableInputMask?: boolean,
}; };
export default function CopyableText(props: Props) { export default function CopyableText(props: Props) {
const { copyable, doToast, snackMessage, label, primaryButton = false, name, onCopy } = props; const { copyable, doToast, snackMessage, label, primaryButton = false, name, onCopy, enableInputMask } = props;
const [maskInput, setMaskInput] = React.useState(enableInputMask);
const input = useRef(); const input = useRef();
function copyToClipboard() { function handleCopyText() {
const topRef = input.current; if (enableInputMask) {
if (topRef && topRef.input && topRef.input.current) { navigator.clipboard
topRef.input.current.select(); .writeText(copyable)
if (onCopy) { .then(() => {
onCopy(topRef.input.current); doToast({ message: snackMessage || __('Text copied') });
})
.catch(() => {
doToast({ message: __('Failed to copy.'), isError: true });
});
} else {
const topRef = input.current;
if (topRef && topRef.input && topRef.input.current) {
topRef.input.current.select();
if (onCopy) {
// Allow clients to change the selection before making the copy.
onCopy(topRef.input.current);
}
} }
}
document.execCommand('copy'); document.execCommand('copy');
doToast({ message: snackMessage || __('Text copied') });
}
} }
function onFocus() { function onFocus() {
@ -41,7 +56,7 @@ export default function CopyableText(props: Props) {
return ( return (
<FormField <FormField
type="text" type={maskInput ? 'password' : 'text'}
className="form-field--copyable" className="form-field--copyable"
readOnly readOnly
name={name} name={name}
@ -50,16 +65,12 @@ export default function CopyableText(props: Props) {
ref={input} ref={input}
onFocus={onFocus} onFocus={onFocus}
inputButton={ inputButton={
<Button <Button button={primaryButton ? 'primary' : 'secondary'} icon={ICONS.COPY} onClick={handleCopyText} />
button={primaryButton ? 'primary' : 'secondary'} }
icon={ICONS.COPY} helper={
onClick={() => { enableInputMask && (
copyToClipboard(); <Button button="link" onClick={() => setMaskInput(!maskInput)} label={maskInput ? __('Show') : __('Hide')} />
doToast({ )
message: snackMessage || __('Text copied'),
});
}}
/>
} }
/> />
); );

View file

@ -27,7 +27,9 @@ export default function CreatorAnalytics(props: Props) {
const [error, setError] = React.useState(); const [error, setError] = React.useState();
const [fetchingStats, setFetchingStats] = React.useState(false); const [fetchingStats, setFetchingStats] = React.useState(false);
const claimId = claim && claim.claim_id; const claimId = claim && claim.claim_id;
const channelHasClaims = claim && claim.meta && claim.meta.claims_in_channel && claim.meta.claims_in_channel > 0; // TODO: put this back when hubs are fixed
// const channelHasClaims = claim && claim.meta && claim.meta.claims_in_channel && claim.meta.claims_in_channel > 0 || true;
const channelHasClaims = true;
React.useEffect(() => { React.useEffect(() => {
setStats(null); setStats(null);

View file

@ -104,11 +104,15 @@ class DateTime extends React.Component<Props, State> {
return null; return null;
} }
return <span title={moment(date).format(`MMMM Do, YYYY ${clockFormat}`)}>{DateTime.getTimeAgoStr(date)}</span>; return (
<span className="date_time" title={moment(date).format(`MMMM Do, YYYY ${clockFormat}`)}>
{DateTime.getTimeAgoStr(date)}
</span>
);
} }
return ( return (
<span> <span className="date_time">
{date && show === DateTime.SHOW_DATE && moment(date).format('MMMM Do, YYYY')} {date && show === DateTime.SHOW_DATE && moment(date).format('MMMM Do, YYYY')}
{date && show === DateTime.SHOW_TIME && moment(date).format(clockFormat)} {date && show === DateTime.SHOW_TIME && moment(date).format(clockFormat)}
{!date && '...'} {!date && '...'}

View file

@ -1,16 +1,24 @@
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import DownloadProgress from './view'; import DownloadProgress from './view';
import { doSetPlayingUri, doStopDownload } from 'redux/actions/content'; import { doSetPlayingUri, doStopDownload, doUpdateDownloadingStatus } from 'redux/actions/content';
import { selectFileInfosByOutpoint } from 'lbry-redux';
const select = (state) => { const select = (state) => {
// console.log('DownloadProgress select state', state.fileInfo); const byOutpoint = selectFileInfosByOutpoint(state);
const runningByOutpoint = [];
jessopb commented 2021-10-01 22:58:12 +02:00 (Migrated from github.com)
Review

I think I'd prefer to use the selector for consistency
4c72a563da/ui/redux/selectors/file_info.js (L6)

return { downloadList: selectFileInfosByOutpoint(state) }

I think I'd prefer to use the selector for consistency https://github.com/lbryio/lbry-desktop/blob/4c72a563daf15502787bbada67958ab72f63db59/ui/redux/selectors/file_info.js#L6 return { downloadList: selectFileInfosByOutpoint(state) }
for (const key in byOutpoint) {
if (byOutpoint[key] && byOutpoint[key].status === 'running') runningByOutpoint.push(byOutpoint[key]);
}
return { return {
downloadList: state.fileInfo.byOutpoint, downloadList: runningByOutpoint,
}; };
}; };
const perform = (dispatch) => ({ const perform = (dispatch) => ({
pause: () => dispatch(doSetPlayingUri({ uri: null })), pause: () => dispatch(doSetPlayingUri({ uri: null })),
stopDownload: (outpoint, sd_hash) => dispatch(doStopDownload(outpoint, sd_hash)), updateDownloadingStatus: (outpoint) => dispatch(doUpdateDownloadingStatus(outpoint)),
stopDownload: (outpoint) => dispatch(doStopDownload(outpoint)),
}); });
export default connect(select, perform)(DownloadProgress); export default connect(select, perform)(DownloadProgress);

210
ui/component/downloadProgress/view.jsx Normal file → Executable file
View file

@ -1,67 +1,52 @@
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// @flow // @flow
import React, { useState } from 'react'; import React, { useState, useEffect } from 'react';
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
import { shell } from 'electron'; import { shell } from 'electron';
import Icon from 'component/common/icon'; import Button from 'component/button';
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
import * as ICONS from 'constants/icons'; import * as ICONS from 'constants/icons';
import { buildURI } from 'lbry-redux';
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
import { formatBytes } from 'util/format-bytes';
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
import usePersistedState from 'effects/use-persisted-state';
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
type Props = { type Props = {
jessopb commented 2021-10-08 20:06:32 +02:00 (Migrated from github.com)
Review

I'm not sure I want the new loading gifs, but it might be ok. @kauffj will look by monday.

I'm not sure I want the new loading gifs, but it might be ok. @kauffj will look by monday.
downloadList: any, downloadList: any[],
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
stopDownload: (outpoint: string, sd_hash: string) => void, stopDownload: (outpoint: string) => void,
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
updateDownloadingStatus: (outpoint: string) => void,
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
}; };
function DownloadProgress(props: Props) { function DownloadProgress({ downloadList, stopDownload, updateDownloadingStatus }: Props) {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const [isShow, setIsShow] = useState(true); const [isShow, setIsShow] = usePersistedState('download-progress', true);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const [cancelHash] = useState({}); const [cancelHash] = useState({});
const [checkDownloadingHash] = useState({});
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const handleCancel = (hash, value) => { const handleCancel = (hash, value) => {
cancelHash[hash] = value; cancelHash[hash] = value;
}; };
// return (
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// <div className="download--header">
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// <button className="download--top-close-button" onClick={() => setIsShow(false)}>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// <div />
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// </button>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// <DownloadState
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// fileName="being-offended-is-a-bad-trait.mp4"
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// title="Being offended is a bad trait"
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// releaseTime={'9/27/2021'}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// writtenBytes={100000}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// totalBytes={500000}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// addedOn={1632388934}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// directory={''}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// stopDownload={props.stopDownload}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// outpoint={'asdfasdfsa'}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// sd_hash={'asdfsadfsadfsd'}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// isCancel
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// handleCancel={handleCancel}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// />
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// </div>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// );
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
// console.log('DownloadProgress', props.downloadList);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
if (!props.downloadList) return null;
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const downloadList = [];
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
Object.keys(props.downloadList).map((key) => {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const item = props.downloadList[key];
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
if (item.status === 'running') downloadList.push(item);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
});
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
if (downloadList.length === 0) return null; if (downloadList.length === 0) return null;
downloadList.map((item) => {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
if (item && !checkDownloadingHash[item.outpoint]) {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
updateDownloadingStatus(item.outpoint);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
checkDownloadingHash[item.outpoint] = true;
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
});
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
if (!isShow) { if (!isShow) {
return ( return (
<button onClick={() => setIsShow(true)} className="download__toggle-button"> <Button
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<Icon icon={ICONS.DOWNLOAD} size={40} /> iconSize={40}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
</button> icon={ICONS.DOWNLOAD}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
className="download-progress__toggle-button"
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
onClick={() => setIsShow(true)}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
/>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
); );
} }
return ( return (
<div className="download--header"> <div className="download-progress__header">
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<button className="download--top-close-button" onClick={() => setIsShow(false)}> <Button className="download-progress__top-close-button" onClick={() => setIsShow(false)}>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<div /> <div />
</button> </Button>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
{downloadList.map((item, index) => { {downloadList.map((item, index) => {
let releaseTime = ''; let releaseTime = '';
@ -69,9 +54,9 @@ function DownloadProgress(props: Props) {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
releaseTime = new Date(parseInt(item.metadata.release_time) * 1000).toISOString().split('T')[0]; releaseTime = new Date(parseInt(item.metadata.release_time) * 1000).toISOString().split('T')[0];
} }
return ( return (
<div key={item.sd_hash}> <div key={item.outpoint}>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
{index !== 0 && <hr className="download--divider" />} {index !== 0 && <hr className="download-progress__divider" />}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<DownloadState <DownloadProgressItem
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
fileName={item.suggested_file_name} fileName={item.suggested_file_name}
title={item.metadata.title} title={item.metadata.title}
releaseTime={releaseTime} releaseTime={releaseTime}
@ -79,10 +64,11 @@ function DownloadProgress(props: Props) {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
totalBytes={item.total_bytes} totalBytes={item.total_bytes}
addedOn={item.added_on} addedOn={item.added_on}
directory={item.download_directory} directory={item.download_directory}
stopDownload={props.stopDownload} stopDownload={stopDownload}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
outpoint={item.outpoint} outpoint={item.outpoint}
sd_hash={item.sd_hash} isCancel={cancelHash[item.outpoint]}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
isCancel={cancelHash[item.sd_hash]} claimID={item.claim_id}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
claimName={item.claim_name}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
handleCancel={handleCancel} handleCancel={handleCancel}
/> />
</div> </div>
@ -92,7 +78,7 @@ function DownloadProgress(props: Props) {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
); );
} }
type DownloadStateProps = { type DownloadProgressItemProps = {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
fileName: string, fileName: string,
writtenBytes: number, writtenBytes: number,
totalBytes: number, totalBytes: number,
@ -101,13 +87,14 @@ type DownloadStateProps = {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
releaseTime: string, releaseTime: string,
directory: string, directory: string,
outpoint: string, outpoint: string,
sd_hash: string,
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
isCancel: boolean, isCancel: boolean,
stopDownload: (outpoint: string, sd_hash: string) => void, claimID: string,
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
claimName: string,
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-02 01:38:16 +02:00 (Migrated from github.com)
Review

non-blocker, but I wonder if a side-docked indicator component would be better than a floating circle.

non-blocker, but I wonder if a side-docked indicator component would be better than a floating circle.
stopDownload: (outpoint: string) => void,
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
handleCancel: (hash: string, value: boolean) => void, handleCancel: (hash: string, value: boolean) => void,
}; };
function DownloadState({ function DownloadProgressItem({
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
fileName, fileName,
writtenBytes, writtenBytes,
totalBytes, totalBytes,
@ -116,86 +103,95 @@ function DownloadState({
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
releaseTime, releaseTime,
directory, directory,
outpoint, outpoint,
sd_hash,
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
isCancel, isCancel,
claimID,
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
claimName,
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
stopDownload, stopDownload,
handleCancel, handleCancel,
}: DownloadStateProps) { }: DownloadProgressItemProps) {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const processStopDownload = () => { const processStopDownload = () => {
handleCancel(sd_hash, false); handleCancel(outpoint, false);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
stopDownload(outpoint, sd_hash); stopDownload(outpoint);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
}; };
const percent = ((writtenBytes / totalBytes) * 100).toFixed(0); const [percent, setPercent] = useState(0);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const [progressText, setProgressText] = useState('');
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
useEffect(() => {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const updatePercent = ((writtenBytes / totalBytes) * 100).toFixed(0);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
setPercent(updatePercent);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
let updateText = '';
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const downloadSpeed = Math.ceil(writtenBytes / (Date.now() / 1000 - addedOn));
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const remainingSecond = Math.ceil((totalBytes - writtenBytes) / downloadSpeed);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const remainingMinutes = Math.floor(remainingSecond / 60);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
if (remainingMinutes > 0) {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
updateText += __('%remainingMinutes% minutes %remainSecond% seconds remaining', {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
remainingMinutes: remainingMinutes,
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
remainSecond: remainingSecond - 60 * remainingMinutes,
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
});
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
} else {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
updateText += __('%remainSecond% seconds remaining', { remainSecond: remainingSecond - 60 * remainingMinutes });
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
updateText += ' -- ';
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
updateText += __('%written% of %total%', {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
written: formatBytes(writtenBytes),
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
total: formatBytes(totalBytes),
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
});
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
updateText += ' ';
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
updateText += __('(%speed%/sec)', {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
speed: formatBytes(downloadSpeed),
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
});
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
setProgressText(updateText);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
}, [writtenBytes, totalBytes, addedOn]);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const sizeTypeText = ['Bytes', 'KB', 'MB', 'GB'];
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const getSizeType = (size) => Math.floor(Math.log(size) / Math.log(1024));
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const convertSizeUnit = (size, sizeType) => {
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const unitSize = size / Math.pow(1024, sizeType);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
if (unitSize > 100) return unitSize.toFixed(0);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
if (unitSize > 10) return unitSize.toFixed(1);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
return unitSize.toFixed(2);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
};
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const openDownloadFolder = () => { const openDownloadFolder = () => {
shell.openPath(directory); shell.openPath(directory);
}; };
let text = '';
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const downloadSpeed = Math.ceil(writtenBytes / (Date.now() / 1000 - addedOn));
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const remainingSecond = Math.ceil((totalBytes - writtenBytes) / downloadSpeed);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
const remainingMinutes = Math.floor(remainingSecond / 60);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
if (remainingMinutes > 0) text += `${remainingMinutes} minutes `;
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
text += `${remainingSecond - 60 * remainingMinutes} seconds remaining`;
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
text += ' -- ';
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
let sizeType = getSizeType(totalBytes);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
text += ` ${convertSizeUnit(writtenBytes, sizeType)} of ${convertSizeUnit(totalBytes, sizeType)} ${
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
sizeTypeText[sizeType]
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
}`;
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
sizeType = getSizeType(downloadSpeed);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
text += ` (${convertSizeUnit(downloadSpeed, sizeType)} ${sizeTypeText[sizeType]}/sec)`;
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
return ( return (
<div className="download--state-container"> <div className=" download-progress__state-container">
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<div className="download--state-bar"> <div className="download-progress__state-bar">
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<p className="download--file-name">{title}</p> <Button
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
label={title}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
className="download-progress__state-filename"
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
navigate={buildURI({ claimName, claimID })}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
/>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<div <div
className="download--close-button" className="download-progress__close-button"
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
onClick={() => { onClick={() => {
handleCancel(sd_hash, true); handleCancel(outpoint, true);
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
}} }}
> >
&times; &times;
</div> </div>
</div> </div>
<div className="download--state-bar"> <div className="download-progress__state-bar">
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<a className="download--file-name-link" onClick={openDownloadFolder}> <a className="download-progress__state-filename-link" onClick={openDownloadFolder}>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
{fileName} {fileName}
</a> </a>
<p className="download--release-Time">{releaseTime}</p> <p className="download-progress__release-time">{releaseTime}</p>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
</div> </div>
<div className="download-progress__state-bar">
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<div className="download--state-bar"> <div className="download-progress__bar-container">
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<div className="download--bar-container"> <div className="download-progress__bar-content" style={{ width: `${percent}%` }} />
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<div className="download--bar-content" style={{ width: `${percent}%` }} />
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
</div> </div>
</div> </div>
<p className="download-progress__count-time">{progressText}</p>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<p className="download-count-time">{text}</p>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
{isCancel && ( {isCancel && (
<div className="download-cancel"> <div className="download-progress__cancel">
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<p>Do you want to cancel download this file?</p> <p>{__('Do you cancel download this file?')}</p>
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<div className="download-cancel-confirm"> <div className="download-progress__cancel-confirm">
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<button type="button" className="download-cancel-ok" onClick={processStopDownload}> <Button label={__('Yes')} className="download-progress__cancel-ok" onClick={processStopDownload} />
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
Yes <Button
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
</button> label={__('No')}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
<button type="button" className="download-cancel-ok" onClick={() => handleCancel(sd_hash, false)}> className="download-progress__cancel-ok"
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
No onClick={() => handleCancel(outpoint, false)}
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
</button> />
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
</div> </div>
</div> </div>
)} )}

jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment
jessopb commented 2021-10-01 23:15:06 +02:00 (Migrated from github.com)
Review

(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)

(Object.keys(props.downloadList): any).map(..) Will fix your inevitable flowtype complaint here :)
jessopb commented 2021-10-01 23:22:28 +02:00 (Migrated from github.com)
Review

does our Button component work here?

        <Button
          iconSize={24}
          button="close" <- or your className?
          aria-label={__('Close')}
          icon={ICONS.REMOVE}
          onClick={...}
        />
        ```
does our Button component work here? ``` <Button iconSize={24} button="close" <- or your className? aria-label={__('Close')} icon={ICONS.REMOVE} onClick={...} /> ```
jessopb commented 2021-10-01 23:24:46 +02:00 (Migrated from github.com)
Review

All strings can be wrapped in __('some text') for i18n

All strings can be wrapped in __('some text') for i18n
jessopb commented 2021-10-01 23:51:27 +02:00 (Migrated from github.com)
Review

This could be <Button button="link" label={__('Yes')} /> if it works well.

This could be <Button button="link" label={__('Yes')} /> if it works well.
jessopb commented 2021-10-02 01:42:48 +02:00 (Migrated from github.com)
Review

This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like

<Button
...
navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id }))
>
This {title} should probably link to the FilePage for the content url Since an item in downloadList includes a claim_id and a claim_name, you can try using something like ``` <Button ... navigate={buildURI({ claimName: item.claim_name, claimID: item.claim_id })) > ```
jessopb commented 2021-10-02 02:09:01 +02:00 (Migrated from github.com)
Review

Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js

Neat to see this done from scratch and in about the same way! We have this util function: https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
jessopb commented 2021-10-02 06:00:24 +02:00 (Migrated from github.com)
Review

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.

I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
jessopb commented 2021-10-02 07:14:36 +02:00 (Migrated from github.com)
Review

we can persist this using our usePersistedState() hook

we can persist this using our usePersistedState() hook
jessopb commented 2021-10-02 08:03:23 +02:00 (Migrated from github.com)
Review

something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that sometimes doesn't load unless you yarn dev and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { : null } until file_list fetch comes back.

something weird happens here that crashes the app when I play a video. "cannot read status of null" redux devtools (which has a bug that sometimes doesn't load unless you `yarn dev` and wait for the app to finish before opening devtools) tells me initial state byOutpoint is { <outpoint>: null } until file_list fetch comes back.
jessopb commented 2021-10-08 20:03:24 +02:00 (Migrated from github.com)
Review

this name sounds like a function rather than an array.
downloadsToUpdate?

this name sounds like a function rather than an array. downloadsToUpdate?
jessopb commented 2021-10-08 20:07:16 +02:00 (Migrated from github.com)
Review

this could use a comment

this could use a comment

View file

@ -73,9 +73,17 @@ function FileDownloadLink(props: Props) {
if (fileInfo && fileInfo.written_bytes > 0) { if (fileInfo && fileInfo.written_bytes > 0) {
const progress = (fileInfo.written_bytes / fileInfo.total_bytes) * 100; const progress = (fileInfo.written_bytes / fileInfo.total_bytes) * 100;
return <span className="download-text">{__('%percent%% downloaded', { percent: progress.toFixed(0) })}</span>; return (
<span className="download-text" style={{ backgroundColor: '#FFF' }}>
{__('%percent%% downloaded', { percent: progress.toFixed(0) })}
</span>
);
} else { } else {
return <span className="download-text">{__('Connecting...')}</span>; return (
<span className="download-text" style={{ backgroundColor: '#FFF' }}>
{__('Connecting...')}
</span>
);
} }
} }
// @endif // @endif

View file

@ -65,6 +65,7 @@ const perform = (dispatch) => ({
), ),
dispatch(doSetPlayingUri({ uri, collectionId })) dispatch(doSetPlayingUri({ uri, collectionId }))
), ),
clearSecondarySource: (uri) => dispatch(doSetPlayingUri({ uri })),
}); });
export default withRouter(connect(select, perform)(FileRenderFloating)); export default withRouter(connect(select, perform)(FileRenderFloating));

View file

@ -31,6 +31,7 @@ type Props = {
title: ?string, title: ?string,
floatingPlayerEnabled: boolean, floatingPlayerEnabled: boolean,
closeFloatingPlayer: () => void, closeFloatingPlayer: () => void,
clearSecondarySource: (string) => void,
renderMode: string, renderMode: string,
playingUri: ?PlayingUri, playingUri: ?PlayingUri,
primaryUri: ?string, primaryUri: ?string,
@ -53,6 +54,7 @@ export default function FileRenderFloating(props: Props) {
title, title,
isFloating, isFloating,
closeFloatingPlayer, closeFloatingPlayer,
clearSecondarySource,
floatingPlayerEnabled, floatingPlayerEnabled,
renderMode, renderMode,
playingUri, playingUri,
@ -68,8 +70,11 @@ export default function FileRenderFloating(props: Props) {
} = props; } = props;
const { location, push } = useHistory(); const { location, push } = useHistory();
const hideFloatingPlayer = location.state && location.state.hideFloatingPlayer; const hideFloatingPlayer = location.state && location.state.hideFloatingPlayer;
const playingUriSource = playingUri && playingUri.source;
const isComment = playingUriSource === 'comment';
const isMobile = useIsMobile(); const isMobile = useIsMobile();
const mainFilePlaying = !isFloating && isURIEqual(uri, primaryUri); const mainFilePlaying = !isFloating && isURIEqual(uri, primaryUri);
const [fileViewerRect, setFileViewerRect] = useState(); const [fileViewerRect, setFileViewerRect] = useState();
const [desktopPlayStartTime, setDesktopPlayStartTime] = useState(); const [desktopPlayStartTime, setDesktopPlayStartTime] = useState();
const [wasDragging, setWasDragging] = useState(false); const [wasDragging, setWasDragging] = useState(false);
@ -86,11 +91,11 @@ export default function FileRenderFloating(props: Props) {
}); });
const navigateUrl = const navigateUrl =
playingUri && playingUri.primaryUri + (collectionId ? generateListSearchUrlParams(collectionId) : ''); playingUri &&
(playingUri.primaryUri || playingUri.uri) + (collectionId ? generateListSearchUrlParams(collectionId) : '');
const isFree = costInfo && costInfo.cost === 0; const isFree = costInfo && costInfo.cost === 0;
const canViewFile = isFree || claimWasPurchased; const canViewFile = isFree || claimWasPurchased;
const playingUriSource = playingUri && playingUri.source;
const isPlayable = RENDER_MODES.FLOATING_MODES.includes(renderMode); const isPlayable = RENDER_MODES.FLOATING_MODES.includes(renderMode);
const isReadyToPlay = isPlayable && (streamingUrl || (fileInfo && fileInfo.completed)); const isReadyToPlay = isPlayable && (streamingUrl || (fileInfo && fileInfo.completed));
const loadingMessage = const loadingMessage =
@ -145,13 +150,28 @@ export default function FileRenderFloating(props: Props) {
const jsonPosition = JSON.parse(stringifiedPosition); const jsonPosition = JSON.parse(stringifiedPosition);
if (isFloating) { if (isFloating) {
// When the player begins floating, remove the comment source
// so that it doesn't try to resize again in case of going back
// to the origin's comment section and fail to position correctly
if (isComment && playingUri) clearSecondarySource(playingUri.uri);
let pos = { x: jsonPosition.x, y: jsonPosition.y }; let pos = { x: jsonPosition.x, y: jsonPosition.y };
clampToScreen(pos); clampToScreen(pos);
if (pos.x !== position.x || pos.y !== position.y) { if (pos.x !== position.x || pos.y !== position.y) {
setPosition({ x: pos.x, y: pos.y }); setPosition({ x: pos.x, y: pos.y });
} }
} }
}, [clampToScreen, isFloating, position.x, position.y, setPosition, stringifiedPosition]); }, [
clampToScreen,
clearSecondarySource,
isComment,
isFloating,
playingUri,
position.x,
position.y,
setPosition,
stringifiedPosition,
]);
// Listen to main-window resizing and adjust the fp position accordingly: // Listen to main-window resizing and adjust the fp position accordingly:
useEffect(() => { useEffect(() => {
@ -197,7 +217,7 @@ export default function FileRenderFloating(props: Props) {
}, [mainFilePlaying]); }, [mainFilePlaying]);
useEffect(() => { useEffect(() => {
if (playingUri && playingUri.primaryUri) { if (playingUri && (playingUri.primaryUri || playingUri.uri)) {
handleResize(); handleResize();
setCountdownCanceled(false); setCountdownCanceled(false);
} }
@ -312,7 +332,7 @@ export default function FileRenderFloating(props: Props) {
className={classnames('content__viewer', { className={classnames('content__viewer', {
'content__viewer--floating': isFloating, 'content__viewer--floating': isFloating,
'content__viewer--inline': !isFloating, 'content__viewer--inline': !isFloating,
'content__viewer--secondary': playingUriSource === 'comment', 'content__viewer--secondary': isComment,
'content__viewer--theater-mode': !isFloating && videoTheaterMode, 'content__viewer--theater-mode': !isFloating && videoTheaterMode,
})} })}
style={ style={

View file

@ -1,5 +1,6 @@
// @flow // @flow
import React from 'react'; import React from 'react';
import 'scss/component/_view_count.scss';
type Props = { type Props = {
uri: string, uri: string,
@ -15,12 +16,12 @@ export default function FileViewCountInline(props: Props) {
let formattedViewCount; let formattedViewCount;
try { try {
// SI notation that changes 1234 to 1.2K, look up Intl.NumberFormat() for docs
formattedViewCount = Number(viewCount).toLocaleString(lang || 'en', { formattedViewCount = Number(viewCount).toLocaleString(lang || 'en', {
compactDisplay: 'short', compactDisplay: 'short',
notation: 'compact', notation: 'compact',
}); });
} catch (err) { } catch (err) {
// No soup for you!
formattedViewCount = Number(viewCount).toLocaleString(); formattedViewCount = Number(viewCount).toLocaleString();
} }
@ -29,6 +30,7 @@ export default function FileViewCountInline(props: Props) {
// clean up (only one place edit/remove). // clean up (only one place edit/remove).
const isChannelPage = window.location.pathname.startsWith('/@'); const isChannelPage = window.location.pathname.startsWith('/@');
// dont show if no view count, if it's a repost, a livestream or isn't a channel page
if (!viewCount || (claim && claim.repost_url) || isLivestream || !isChannelPage) { if (!viewCount || (claim && claim.repost_url) || isLivestream || !isChannelPage) {
// (1) Currently, makeSelectViewCountForUri doesn't differentiate between // (1) Currently, makeSelectViewCountForUri doesn't differentiate between
// un-fetched view-count vs zero view-count. But since it's probably not // un-fetched view-count vs zero view-count. But since it's probably not

View file

@ -18,7 +18,10 @@ export default function LivestreamLink(props: Props) {
const [livestreamClaim, setLivestreamClaim] = React.useState(false); const [livestreamClaim, setLivestreamClaim] = React.useState(false);
const [isLivestreaming, setIsLivestreaming] = React.useState(false); const [isLivestreaming, setIsLivestreaming] = React.useState(false);
const livestreamChannelId = (channelClaim && channelClaim.claim_id) || ''; // TODO: fail in a safer way, probably const livestreamChannelId = (channelClaim && channelClaim.claim_id) || ''; // TODO: fail in a safer way, probably
const isChannelEmpty = !channelClaim || !channelClaim.meta || !channelClaim.meta.claims_in_channel; // TODO: pput this back when hubs claims_in_channel are fixed
const isChannelEmpty = !channelClaim || !channelClaim.meta;
// ||
// !channelClaim.meta.claims_in_channel;
React.useEffect(() => { React.useEffect(() => {
// Don't search empty channels // Don't search empty channels

View file

@ -6,8 +6,8 @@ import { lazyImport } from 'util/lazyImport';
import SideNavigation from 'component/sideNavigation'; import SideNavigation from 'component/sideNavigation';
import SettingsSideNavigation from 'component/settingsSideNavigation'; import SettingsSideNavigation from 'component/settingsSideNavigation';
import Header from 'component/header'; import Header from 'component/header';
import DownloadProgress from '../downloadProgress';
/* @if TARGET='app' */ /* @if TARGET='app' */
import DownloadProgress from '../downloadProgress';
import StatusBar from 'component/common/status-bar'; import StatusBar from 'component/common/status-bar';
/* @endif */ /* @endif */
import usePersistedState from 'effects/use-persisted-state'; import usePersistedState from 'effects/use-persisted-state';
@ -103,7 +103,7 @@ function Page(props: Props) {
setSidebarOpen(false); setSidebarOpen(false);
} }
// TODO: make sure setState callback for usePersistedState uses useCallback to it doesn't cause effect to re-run // TODO: make sure setState callback for usePersistedState uses useCallback to it doesn't cause effect to re-run
}, [isOnFilePage, isMediumScreen]); }, [isOnFilePage, isMediumScreen, setSidebarOpen]);
return ( return (
<Fragment> <Fragment>
@ -151,7 +151,9 @@ function Page(props: Props) {
</React.Suspense> </React.Suspense>
)} )}
{/* @endif */} {/* @endif */}
{/* @if TARGET='app' */}
<DownloadProgress /> <DownloadProgress />
{/* @endif */}
</Fragment> </Fragment>
); );
} }

View file

@ -59,6 +59,7 @@ const ListBlockedPage = lazyImport(() => import('page/listBlocked' /* webpackChu
const ListsPage = lazyImport(() => import('page/lists' /* webpackChunkName: "secondary" */)); const ListsPage = lazyImport(() => import('page/lists' /* webpackChunkName: "secondary" */));
const LiveStreamSetupPage = lazyImport(() => import('page/livestreamSetup' /* webpackChunkName: "secondary" */)); const LiveStreamSetupPage = lazyImport(() => import('page/livestreamSetup' /* webpackChunkName: "secondary" */));
const LivestreamCurrentPage = lazyImport(() => import('page/livestreamCurrent' /* webpackChunkName: "secondary" */)); const LivestreamCurrentPage = lazyImport(() => import('page/livestreamCurrent' /* webpackChunkName: "secondary" */));
const OwnComments = lazyImport(() => import('page/ownComments' /* webpackChunkName: "ownComments" */));
const PasswordResetPage = lazyImport(() => import('page/passwordReset' /* webpackChunkName: "secondary" */)); const PasswordResetPage = lazyImport(() => import('page/passwordReset' /* webpackChunkName: "secondary" */));
const PasswordSetPage = lazyImport(() => import('page/passwordSet' /* webpackChunkName: "secondary" */)); const PasswordSetPage = lazyImport(() => import('page/passwordSet' /* webpackChunkName: "secondary" */));
const PublishPage = lazyImport(() => import('page/publish' /* webpackChunkName: "secondary" */)); const PublishPage = lazyImport(() => import('page/publish' /* webpackChunkName: "secondary" */));
@ -329,6 +330,7 @@ function AppRouter(props: Props) {
<PrivateRoute {...props} path={`/$/${PAGES.SWAP}`} component={SwapPage} /> <PrivateRoute {...props} path={`/$/${PAGES.SWAP}`} component={SwapPage} />
<PrivateRoute {...props} path={`/$/${PAGES.NOTIFICATIONS}`} component={NotificationsPage} /> <PrivateRoute {...props} path={`/$/${PAGES.NOTIFICATIONS}`} component={NotificationsPage} />
<PrivateRoute {...props} path={`/$/${PAGES.AUTH_WALLET_PASSWORD}`} component={SignInWalletPasswordPage} /> <PrivateRoute {...props} path={`/$/${PAGES.AUTH_WALLET_PASSWORD}`} component={SignInWalletPasswordPage} />
<PrivateRoute {...props} path={`/$/${PAGES.SETTINGS_OWN_COMMENTS}`} component={OwnComments} />
<Route path={`/$/${PAGES.EMBED}/:claimName`} exact component={EmbedWrapperPage} /> <Route path={`/$/${PAGES.EMBED}/:claimName`} exact component={EmbedWrapperPage} />
<Route path={`/$/${PAGES.EMBED}/:claimName/:claimId`} exact component={EmbedWrapperPage} /> <Route path={`/$/${PAGES.EMBED}/:claimName/:claimId`} exact component={EmbedWrapperPage} />

View file

@ -1,5 +1,5 @@
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { doWalletStatus, selectWalletIsEncrypted } from 'lbry-redux'; import { doWalletStatus, selectMyChannelClaims, selectWalletIsEncrypted } from 'lbry-redux';
import { selectUser, selectUserVerifiedEmail } from 'redux/selectors/user'; import { selectUser, selectUserVerifiedEmail } from 'redux/selectors/user';
import { selectLanguage } from 'redux/selectors/settings'; import { selectLanguage } from 'redux/selectors/settings';
@ -9,6 +9,7 @@ const select = (state) => ({
isAuthenticated: selectUserVerifiedEmail(state), isAuthenticated: selectUserVerifiedEmail(state),
walletEncrypted: selectWalletIsEncrypted(state), walletEncrypted: selectWalletIsEncrypted(state),
user: selectUser(state), user: selectUser(state),
myChannels: selectMyChannelClaims(state),
language: selectLanguage(state), language: selectLanguage(state),
}); });

View file

@ -15,12 +15,13 @@ type Props = {
isAuthenticated: boolean, isAuthenticated: boolean,
walletEncrypted: boolean, walletEncrypted: boolean,
user: User, user: User,
myChannels: ?Array<ChannelClaim>,
// --- perform --- // --- perform ---
doWalletStatus: () => void, doWalletStatus: () => void,
}; };
export default function SettingAccount(props: Props) { export default function SettingAccount(props: Props) {
const { isAuthenticated, walletEncrypted, user, doWalletStatus } = props; const { isAuthenticated, walletEncrypted, user, myChannels, doWalletStatus } = props;
const [storedPassword, setStoredPassword] = React.useState(false); const [storedPassword, setStoredPassword] = React.useState(false);
// Determine if password is stored. // Determine if password is stored.
@ -92,6 +93,17 @@ export default function SettingAccount(props: Props) {
</SettingsRow> </SettingsRow>
)} )}
{/* @endif */} {/* @endif */}
{myChannels && (
<SettingsRow title={__('Comments')} subtitle={__('View your past comments.')}>
<Button
button="inverse"
label={__('Manage')}
icon={ICONS.ARROW_RIGHT}
navigate={`/$/${PAGES.SETTINGS_OWN_COMMENTS}`}
/>
</SettingsRow>
)}
</> </>
} }
/> />

View file

@ -75,7 +75,8 @@ function SideNavigation(props: Props) {
followedTags, followedTags,
} = props; } = props;
const EXTRA_SIDEBAR_LINKS = GetLinksData(homepageData); const EXTRA_SIDEBAR_LINKS = GetLinksData(homepageData).map(({ pinnedUrls, ...theRest }) => theRest);
const FULL_LINKS: Array<SideNavLink> = [ const FULL_LINKS: Array<SideNavLink> = [
{ {
title: 'Your Tags', title: 'Your Tags',

View file

@ -7,7 +7,7 @@ import Icon from 'component/common/icon';
import LbcMessage from 'component/common/lbc-message'; import LbcMessage from 'component/common/lbc-message';
type Props = { type Props = {
removeSnack: any => void, removeSnack: (any) => void,
snack: ?{ snack: ?{
linkTarget: ?string, linkTarget: ?string,
linkText: ?string, linkText: ?string,
@ -53,9 +53,9 @@ class SnackBar extends React.PureComponent<Props> {
<div className="snack-bar__message"> <div className="snack-bar__message">
<Icon icon={isError ? ICONS.ALERT : ICONS.COMPLETED} size={18} /> <Icon icon={isError ? ICONS.ALERT : ICONS.COMPLETED} size={18} />
<div> <p className="snack-bar__messageText">
<LbcMessage>{message}</LbcMessage> <LbcMessage>{message}</LbcMessage>
</div> </p>
</div> </div>
{linkText && linkTarget && ( {linkText && linkTarget && (
// This is a little weird because of `linkTarget` code in `lbry-redux` // This is a little weird because of `linkTarget` code in `lbry-redux`

View file

@ -22,10 +22,14 @@ const channelsToSubscribe = AUTO_FOLLOW_CHANNELS.trim()
function UserChannelFollowIntro(props: Props) { function UserChannelFollowIntro(props: Props) {
const { subscribedChannels, channelSubscribe, onContinue, homepageData, prefsReady } = props; const { subscribedChannels, channelSubscribe, onContinue, homepageData, prefsReady } = props;
const { PRIMARY_CONTENT } = homepageData; const { PRIMARY_CONTENT, LATEST } = homepageData;
let channelIds; let channelIds;
if (PRIMARY_CONTENT && CUSTOM_HOMEPAGE) { if (CUSTOM_HOMEPAGE) {
channelIds = PRIMARY_CONTENT.channelIds; if (LATEST) {
channelIds = LATEST.channelIds;
} else if (PRIMARY_CONTENT) {
channelIds = PRIMARY_CONTENT.channelIds;
}
} }
const followingCount = (subscribedChannels && subscribedChannels.length) || 0; const followingCount = (subscribedChannels && subscribedChannels.length) || 0;
const followingCountIgnoringAutoFollows = (subscribedChannels || []).filter( const followingCountIgnoringAutoFollows = (subscribedChannels || []).filter(

View file

@ -253,6 +253,7 @@ export const COMMENT_LIST_STARTED = 'COMMENT_LIST_STARTED';
export const COMMENT_LIST_COMPLETED = 'COMMENT_LIST_COMPLETED'; export const COMMENT_LIST_COMPLETED = 'COMMENT_LIST_COMPLETED';
export const COMMENT_LIST_FAILED = 'COMMENT_LIST_FAILED'; export const COMMENT_LIST_FAILED = 'COMMENT_LIST_FAILED';
export const COMMENT_LIST_RESET = 'COMMENT_LIST_RESET'; export const COMMENT_LIST_RESET = 'COMMENT_LIST_RESET';
export const COMMENT_BY_ID_STARTED = 'COMMENT_BY_ID_STARTED';
export const COMMENT_BY_ID_COMPLETED = 'COMMENT_BY_ID_COMPLETED'; export const COMMENT_BY_ID_COMPLETED = 'COMMENT_BY_ID_COMPLETED';
export const COMMENT_CREATE_STARTED = 'COMMENT_CREATE_STARTED'; export const COMMENT_CREATE_STARTED = 'COMMENT_CREATE_STARTED';
export const COMMENT_CREATE_COMPLETED = 'COMMENT_CREATE_COMPLETED'; export const COMMENT_CREATE_COMPLETED = 'COMMENT_CREATE_COMPLETED';
@ -352,3 +353,7 @@ export const FETCH_NO_SOURCE_CLAIMS_STARTED = 'FETCH_NO_SOURCE_CLAIMS_STARTED';
export const FETCH_NO_SOURCE_CLAIMS_COMPLETED = 'FETCH_NO_SOURCE_CLAIMS_COMPLETED'; export const FETCH_NO_SOURCE_CLAIMS_COMPLETED = 'FETCH_NO_SOURCE_CLAIMS_COMPLETED';
export const FETCH_NO_SOURCE_CLAIMS_FAILED = 'FETCH_NO_SOURCE_CLAIMS_FAILED'; export const FETCH_NO_SOURCE_CLAIMS_FAILED = 'FETCH_NO_SOURCE_CLAIMS_FAILED';
export const VIEWERS_RECEIVED = 'VIEWERS_RECEIVED'; export const VIEWERS_RECEIVED = 'VIEWERS_RECEIVED';
export const FETCH_ACTIVE_LIVESTREAMS_STARTED = 'FETCH_ACTIVE_LIVESTREAMS_STARTED';
export const FETCH_ACTIVE_LIVESTREAMS_FAILED = 'FETCH_ACTIVE_LIVESTREAMS_FAILED';
export const FETCH_ACTIVE_LIVESTREAMS_SKIPPED = 'FETCH_ACTIVE_LIVESTREAMS_SKIPPED';
export const FETCH_ACTIVE_LIVESTREAMS_COMPLETED = 'FETCH_ACTIVE_LIVESTREAMS_COMPLETED';

View file

@ -9,6 +9,7 @@ export const SORT_BY = {
OLDEST: 1, OLDEST: 1,
CONTROVERSY: 2, CONTROVERSY: 2,
POPULARITY: 3, POPULARITY: 3,
NEWEST_NO_PINS: 4,
}; };
export const BLOCK_LEVEL = { export const BLOCK_LEVEL = {

View file

@ -174,3 +174,8 @@ export const BADGE_STREAMER = 'BadgeStreamer';
export const REPLAY = 'Replay'; export const REPLAY = 'Replay';
export const REPEAT = 'Repeat'; export const REPEAT = 'Repeat';
export const SHUFFLE = 'Shuffle'; export const SHUFFLE = 'Shuffle';
export const HOLD_PHONE = 'HoldPhone';
export const LIFE = 'Life';
export const ARTISTS = 'Artists';
export const MYSTERIES = 'Mysteries';
export const TECHNOLOGY = 'Technology';

View file

@ -1,6 +1,7 @@
// Customer-facing title for a page. // Customer-facing title for a page.
// //
// Primarily used for the browser tab and history title. // Primarily used for the browser tab and history title.
// Ensure new strings are added to 'app-string.json' for localization.
import * as PAGES from 'constants/pages'; import * as PAGES from 'constants/pages';
@ -9,14 +10,16 @@ export const PAGE_TITLE = {
[PAGES.BIG_HITS]: 'Big Hits', [PAGES.BIG_HITS]: 'Big Hits',
[PAGES.DISCOVER]: 'Wild West', [PAGES.DISCOVER]: 'Wild West',
// [PAGES.ENLIGHTENMENT] = 'Enlightenment', // [PAGES.ENLIGHTENMENT] = 'Enlightenment',
[PAGES.FINANCE]: 'Finance', [PAGES.FINANCE]: 'Finance 2.0',
[PAGES.GAMING]: 'Gaming', [PAGES.GAMING]: 'Gaming',
[PAGES.GENERAL]: 'Cheese', [PAGES.GENERAL]: 'Cheese',
[PAGES.LAB]: 'Lab', [PAGES.LAB]: 'Lab',
[PAGES.MOVIES]: 'Movies', [PAGES.MOVIES]: 'Movies',
[PAGES.MUSIC]: 'Music', [PAGES.MUSIC]: 'Music',
[PAGES.NEWS]: 'News & Politics', [PAGES.NEWS]: 'News & Politics',
// [PAGES.RABBIT_HOLE] = 'The Rabbit Hole'; // [PAGES.RABBIT_HOLE]: 'The Rabbit Hole';
[PAGES.TECH]: 'Tech',
[PAGES.UNIVERSE]: 'The Universe',
[PAGES.WILD_WEST]: 'Wild West', [PAGES.WILD_WEST]: 'Wild West',
// --- Everything else in alphabetical order --- // --- Everything else in alphabetical order ---
@ -46,9 +49,10 @@ export const PAGE_TITLE = {
[PAGES.SETTINGS_BLOCKED_MUTED]: 'Block and muted channels', [PAGES.SETTINGS_BLOCKED_MUTED]: 'Block and muted channels',
[PAGES.SETTINGS_CREATOR]: 'Creator settings', [PAGES.SETTINGS_CREATOR]: 'Creator settings',
[PAGES.SETTINGS_NOTIFICATIONS]: 'Manage notifications', [PAGES.SETTINGS_NOTIFICATIONS]: 'Manage notifications',
[PAGES.SETTINGS_STRIPE_ACCOUNT]: 'settings/tip_account', [PAGES.SETTINGS_STRIPE_ACCOUNT]: 'Bank Accounts',
[PAGES.SETTINGS_STRIPE_CARD]: 'settings/card', [PAGES.SETTINGS_STRIPE_CARD]: 'Payment Methods',
[PAGES.SETTINGS_UPDATE_PWD]: 'Update password', [PAGES.SETTINGS_UPDATE_PWD]: 'Update password',
[PAGES.SETTINGS_OWN_COMMENTS]: 'Your comments',
[PAGES.SWAP]: 'Swap Credits', [PAGES.SWAP]: 'Swap Credits',
[PAGES.TAGS_FOLLOWING]: 'Tags', [PAGES.TAGS_FOLLOWING]: 'Tags',
[PAGES.TAGS_FOLLOWING_MANAGE]: 'Manage tags', [PAGES.TAGS_FOLLOWING_MANAGE]: 'Manage tags',
@ -56,4 +60,5 @@ export const PAGE_TITLE = {
[PAGES.UPLOADS]: 'Your uploads', [PAGES.UPLOADS]: 'Your uploads',
[PAGES.WALLET]: 'Wallet', [PAGES.WALLET]: 'Wallet',
[PAGES.WELCOME]: 'Welcome', [PAGES.WELCOME]: 'Welcome',
[PAGES.YOUTUBE_SYNC]: 'YouTube Sync',
}; };

View file

@ -20,6 +20,8 @@ exports.NEWS = 'news';
exports.RABBIT_HOLE = 'rabbithole'; exports.RABBIT_HOLE = 'rabbithole';
exports.SCIENCE = 'science'; exports.SCIENCE = 'science';
exports.TECHNOLOGY = 'technology'; exports.TECHNOLOGY = 'technology';
exports.TECH = 'tech';
exports.UNIVERSE = 'universe';
exports.WILD_WEST = 'wildwest'; exports.WILD_WEST = 'wildwest';
exports.HOME = 'home'; exports.HOME = 'home';
exports.HELP = 'help'; exports.HELP = 'help';
@ -44,6 +46,7 @@ exports.SETTINGS_NOTIFICATIONS = 'settings/notifications';
exports.SETTINGS_BLOCKED_MUTED = 'settings/block_and_mute'; exports.SETTINGS_BLOCKED_MUTED = 'settings/block_and_mute';
exports.SETTINGS_CREATOR = 'settings/creator'; exports.SETTINGS_CREATOR = 'settings/creator';
exports.SETTINGS_UPDATE_PWD = 'settings/update_password'; exports.SETTINGS_UPDATE_PWD = 'settings/update_password';
exports.SETTINGS_OWN_COMMENTS = 'settings/ownComments';
exports.SHOW = 'show'; exports.SHOW = 'show';
exports.ACCOUNT = 'account'; exports.ACCOUNT = 'account';
exports.SEARCH = 'search'; exports.SEARCH = 'search';

View file

@ -0,0 +1,24 @@
// @flow
import { useState, useEffect } from 'react';
export default function useFetchViewCount(
shouldFetch: ?boolean,
uris: Array<string>,
claimsByUri: any,
doFetchViewCount: (string) => void
) {
const [fetchedUris, setFetchedUris] = useState([]);
useEffect(() => {
if (shouldFetch && uris && uris.length > 0) {
const urisToFetch = uris.filter((uri) => uri && !fetchedUris.includes(uri) && Boolean(claimsByUri[uri]));
if (urisToFetch.length > 0) {
const claimIds = urisToFetch.map((uri) => claimsByUri[uri].claim_id);
doFetchViewCount(claimIds.join(','));
setFetchedUris([...fetchedUris, ...urisToFetch]);
}
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [uris]);
}

View file

@ -1,55 +0,0 @@
// @flow
import React from 'react';
import { LIVESTREAM_LIVE_API } from 'constants/livestream';
/**
* Gets latest livestream info list. Returns null (instead of a blank object)
* when there are no active livestreams.
*
* @param minViewers
* @param refreshMs
* @returns {{livestreamMap: null, loading: boolean}}
*/
export default function useGetLivestreams(minViewers: number = 0, refreshMs: number = 0) {
const [loading, setLoading] = React.useState(true);
const [livestreamMap, setLivestreamMap] = React.useState(null);
React.useEffect(() => {
function checkCurrentLivestreams() {
fetch(LIVESTREAM_LIVE_API)
.then((res) => res.json())
.then((res) => {
setLoading(false);
if (!res.data) {
setLivestreamMap(null);
return;
}
const livestreamMap = res.data.reduce((acc, curr) => {
if (curr.viewCount >= minViewers) {
acc[curr.claimId] = curr;
}
return acc;
}, {});
setLivestreamMap(livestreamMap);
})
.catch((err) => {
setLoading(false);
});
}
checkCurrentLivestreams();
if (refreshMs > 0) {
let fetchInterval = setInterval(checkCurrentLivestreams, refreshMs);
return () => {
if (fetchInterval) {
clearInterval(fetchInterval);
}
};
}
}, []);
return { livestreamMap, loading };
}

View file

@ -153,9 +153,9 @@ export default function ModalBlockChannel(props: Props) {
case TAB.MODERATOR: case TAB.MODERATOR:
return ( return (
<p className="help"> <p className="help">
{__('Block this channel on behalf of %creator%', { {contentChannelClaim
creator: contentChannelClaim ? contentChannelClaim.name : __('creator'), ? __('Block this channel on behalf of %creator%.', { creator: contentChannelClaim.name })
})} : __('Block this channel on behalf of the creator.')}
</p> </p>
); );
case TAB.ADMIN: case TAB.ADMIN:

View file

@ -1,13 +1,18 @@
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { SETTINGS } from 'lbry-redux'; import { SETTINGS } from 'lbry-redux';
import { doFetchActiveLivestreams } from 'redux/actions/livestream';
import { selectActiveLivestreams } from 'redux/selectors/livestream';
import { selectSubscriptions } from 'redux/selectors/subscriptions'; import { selectSubscriptions } from 'redux/selectors/subscriptions';
import { makeSelectClientSetting } from 'redux/selectors/settings'; import { makeSelectClientSetting } from 'redux/selectors/settings';
import ChannelsFollowingPage from './view'; import ChannelsFollowingPage from './view';
const select = state => ({ const select = (state) => ({
subscribedChannels: selectSubscriptions(state), subscribedChannels: selectSubscriptions(state),
tileLayout: makeSelectClientSetting(SETTINGS.TILE_LAYOUT)(state), tileLayout: makeSelectClientSetting(SETTINGS.TILE_LAYOUT)(state),
activeLivestreams: selectActiveLivestreams(state),
}); });
export default connect(select)(ChannelsFollowingPage); export default connect(select, {
doFetchActiveLivestreams,
})(ChannelsFollowingPage);

View file

@ -9,24 +9,32 @@ import ClaimListDiscover from 'component/claimListDiscover';
import Page from 'component/page'; import Page from 'component/page';
import Button from 'component/button'; import Button from 'component/button';
import Icon from 'component/common/icon'; import Icon from 'component/common/icon';
import useGetLivestreams from 'effects/use-get-livestreams';
import { splitBySeparator } from 'lbry-redux'; import { splitBySeparator } from 'lbry-redux';
import { getLivestreamUris } from 'util/livestream';
type Props = { type Props = {
subscribedChannels: Array<Subscription>, subscribedChannels: Array<Subscription>,
tileLayout: boolean, tileLayout: boolean,
activeLivestreams: ?LivestreamInfo,
doFetchActiveLivestreams: () => void,
}; };
function ChannelsFollowingPage(props: Props) { function ChannelsFollowingPage(props: Props) {
const { subscribedChannels, tileLayout } = props; const { subscribedChannels, tileLayout, activeLivestreams, doFetchActiveLivestreams } = props;
const hasSubsribedChannels = subscribedChannels.length > 0; const hasSubsribedChannels = subscribedChannels.length > 0;
const { livestreamMap } = useGetLivestreams(); const channelIds = subscribedChannels.map((sub) => splitBySeparator(sub.uri)[1]);
React.useEffect(() => {
doFetchActiveLivestreams();
}, []);
return !hasSubsribedChannels ? ( return !hasSubsribedChannels ? (
<ChannelsFollowingDiscoverPage /> <ChannelsFollowingDiscoverPage />
) : ( ) : (
<Page noFooter fullWidthPage={tileLayout}> <Page noFooter fullWidthPage={tileLayout}>
<ClaimListDiscover <ClaimListDiscover
prefixUris={getLivestreamUris(activeLivestreams, channelIds)}
hideAdvancedFilter={SIMPLE_SITE} hideAdvancedFilter={SIMPLE_SITE}
streamType={SIMPLE_SITE ? CS.CONTENT_ALL : undefined} streamType={SIMPLE_SITE ? CS.CONTENT_ALL : undefined}
tileLayout={tileLayout} tileLayout={tileLayout}
@ -37,7 +45,7 @@ function ChannelsFollowingPage(props: Props) {
</span> </span>
} }
defaultOrderBy={CS.ORDER_BY_NEW} defaultOrderBy={CS.ORDER_BY_NEW}
channelIds={subscribedChannels.map((sub) => splitBySeparator(sub.uri)[1])} channelIds={channelIds}
meta={ meta={
<Button <Button
icon={ICONS.SEARCH} icon={ICONS.SEARCH}
@ -46,8 +54,6 @@ function ChannelsFollowingPage(props: Props) {
navigate={`/$/${PAGES.CHANNELS_FOLLOWING_DISCOVER}`} navigate={`/$/${PAGES.CHANNELS_FOLLOWING_DISCOVER}`}
/> />
} }
liveLivestreamsFirst
livestreamMap={livestreamMap}
showNoSourceClaims={ENABLE_NO_SOURCE_CLAIMS} showNoSourceClaims={ENABLE_NO_SOURCE_CLAIMS}
hasSource hasSource
/> />

View file

@ -28,10 +28,14 @@ type ChannelsFollowingItem = {
function ChannelsFollowingDiscover(props: Props) { function ChannelsFollowingDiscover(props: Props) {
const { followedTags, subscribedChannels, blockedChannels, homepageData } = props; const { followedTags, subscribedChannels, blockedChannels, homepageData } = props;
const { PRIMARY_CONTENT } = homepageData; const { PRIMARY_CONTENT, LATEST } = homepageData;
let channelIds; let channelIds;
if (PRIMARY_CONTENT && CUSTOM_HOMEPAGE) { if (CUSTOM_HOMEPAGE) {
channelIds = PRIMARY_CONTENT.channelIds; if (LATEST) {
channelIds = LATEST.channelIds;
} else if (PRIMARY_CONTENT) {
channelIds = PRIMARY_CONTENT.channelIds;
}
} }
let rowData: Array<ChannelsFollowingItem> = []; let rowData: Array<ChannelsFollowingItem> = [];
const notChannels = subscribedChannels const notChannels = subscribedChannels

View file

@ -1,6 +1,8 @@
import * as CS from 'constants/claim_search'; import * as CS from 'constants/claim_search';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { makeSelectClaimForUri, doResolveUri, SETTINGS } from 'lbry-redux'; import { makeSelectClaimForUri, doResolveUri, SETTINGS } from 'lbry-redux';
import { doFetchActiveLivestreams } from 'redux/actions/livestream';
import { selectActiveLivestreams } from 'redux/selectors/livestream';
import { selectUserVerifiedEmail } from 'redux/selectors/user'; import { selectUserVerifiedEmail } from 'redux/selectors/user';
import { selectFollowedTags } from 'redux/selectors/tags'; import { selectFollowedTags } from 'redux/selectors/tags';
import { doToggleTagFollowDesktop } from 'redux/actions/tags'; import { doToggleTagFollowDesktop } from 'redux/actions/tags';
@ -18,10 +20,12 @@ const select = (state, props) => {
repostedClaim: repostedUri ? makeSelectClaimForUri(repostedUri)(state) : null, repostedClaim: repostedUri ? makeSelectClaimForUri(repostedUri)(state) : null,
isAuthenticated: selectUserVerifiedEmail(state), isAuthenticated: selectUserVerifiedEmail(state),
tileLayout: makeSelectClientSetting(SETTINGS.TILE_LAYOUT)(state), tileLayout: makeSelectClientSetting(SETTINGS.TILE_LAYOUT)(state),
activeLivestreams: selectActiveLivestreams(state),
}; };
}; };
export default connect(select, { export default connect(select, {
doToggleTagFollowDesktop, doToggleTagFollowDesktop,
doResolveUri, doResolveUri,
doFetchActiveLivestreams,
})(Tags); })(Tags);

View file

@ -8,15 +8,17 @@ import Page from 'component/page';
import ClaimListDiscover from 'component/claimListDiscover'; import ClaimListDiscover from 'component/claimListDiscover';
import Button from 'component/button'; import Button from 'component/button';
import useHover from 'effects/use-hover'; import useHover from 'effects/use-hover';
import { useIsMobile } from 'effects/use-screensize'; import { useIsMobile, useIsLargeScreen } from 'effects/use-screensize';
import analytics from 'analytics'; import analytics from 'analytics';
import HiddenNsfw from 'component/common/hidden-nsfw'; import HiddenNsfw from 'component/common/hidden-nsfw';
import Icon from 'component/common/icon'; import Icon from 'component/common/icon';
import Ads from 'web/component/ads'; import Ads from 'web/component/ads';
import LbcSymbol from 'component/common/lbc-symbol'; import LbcSymbol from 'component/common/lbc-symbol';
import I18nMessage from 'component/i18nMessage'; import I18nMessage from 'component/i18nMessage';
import useGetLivestreams from 'effects/use-get-livestreams';
import moment from 'moment'; import moment from 'moment';
import { getLivestreamUris } from 'util/livestream';
const DEFAULT_LIVESTREAM_TILE_LIMIT = 8;
type Props = { type Props = {
location: { search: string }, location: { search: string },
@ -28,6 +30,8 @@ type Props = {
isAuthenticated: boolean, isAuthenticated: boolean,
dynamicRouteProps: RowDataItem, dynamicRouteProps: RowDataItem,
tileLayout: boolean, tileLayout: boolean,
activeLivestreams: ?LivestreamInfo,
doFetchActiveLivestreams: (orderBy?: Array<string>, pageSize?: number, forceFetch?: boolean) => void,
}; };
function DiscoverPage(props: Props) { function DiscoverPage(props: Props) {
@ -40,12 +44,14 @@ function DiscoverPage(props: Props) {
doResolveUri, doResolveUri,
isAuthenticated, isAuthenticated,
tileLayout, tileLayout,
activeLivestreams,
doFetchActiveLivestreams,
dynamicRouteProps, dynamicRouteProps,
} = props; } = props;
const buttonRef = useRef(); const buttonRef = useRef();
const isHovering = useHover(buttonRef); const isHovering = useHover(buttonRef);
const isMobile = useIsMobile(); const isMobile = useIsMobile();
const { livestreamMap } = useGetLivestreams(); const isLargeScreen = useIsLargeScreen();
const urlParams = new URLSearchParams(search); const urlParams = new URLSearchParams(search);
const claimType = urlParams.get('claim_type'); const claimType = urlParams.get('claim_type');
@ -58,6 +64,8 @@ function DiscoverPage(props: Props) {
// Eventually allow more than one tag on this page // Eventually allow more than one tag on this page
// Restricting to one to make follow/unfollow simpler // Restricting to one to make follow/unfollow simpler
const tag = (tags && tags[0]) || null; const tag = (tags && tags[0]) || null;
const channelIds =
(dynamicRouteProps && dynamicRouteProps.options && dynamicRouteProps.options.channelIds) || undefined;
const isFollowing = followedTags.map(({ name }) => name).includes(tag); const isFollowing = followedTags.map(({ name }) => name).includes(tag);
let label = isFollowing ? __('Following --[button label indicating a channel has been followed]--') : __('Follow'); let label = isFollowing ? __('Following --[button label indicating a channel has been followed]--') : __('Follow');
@ -65,6 +73,46 @@ function DiscoverPage(props: Props) {
label = __('Unfollow'); label = __('Unfollow');
} }
const initialLivestreamTileLimit = getPageSize(DEFAULT_LIVESTREAM_TILE_LIMIT);
const [showViewMoreLivestreams, setShowViewMoreLivestreams] = React.useState(!dynamicRouteProps);
const livestreamUris = getLivestreamUris(activeLivestreams, channelIds);
const useDualList = showViewMoreLivestreams && livestreamUris.length > initialLivestreamTileLimit;
function getElemMeta() {
return !dynamicRouteProps ? (
<a
className="help"
href="https://lbry.com/faq/trending"
title={__('Learn more about LBRY Credits on %DOMAIN%', { DOMAIN })}
>
<I18nMessage
tokens={{
lbc: <LbcSymbol />,
}}
>
Results boosted by %lbc%
</I18nMessage>
</a>
) : (
tag && !isMobile && (
<Button
ref={buttonRef}
button="alt"
icon={ICONS.SUBSCRIBE}
iconColor="red"
onClick={handleFollowClick}
requiresAuth={IS_WEB}
label={label}
/>
)
);
}
function getPageSize(originalSize) {
return isLargeScreen ? originalSize * (3 / 2) : originalSize;
}
React.useEffect(() => { React.useEffect(() => {
if (repostedUri && !repostedClaimIsResolved) { if (repostedUri && !repostedClaimIsResolved) {
doResolveUri(repostedUri); doResolveUri(repostedUri);
@ -106,16 +154,53 @@ function DiscoverPage(props: Props) {
); );
} }
React.useEffect(() => {
if (showViewMoreLivestreams) {
doFetchActiveLivestreams(CS.ORDER_BY_TRENDING_VALUE);
} else {
doFetchActiveLivestreams();
}
}, []);
return ( return (
<Page noFooter fullWidthPage={tileLayout}> <Page noFooter fullWidthPage={tileLayout}>
{useDualList && (
<>
<ClaimListDiscover
uris={livestreamUris.slice(0, initialLivestreamTileLimit)}
headerLabel={headerLabel}
header={repostedUri ? <span /> : undefined}
tileLayout={repostedUri ? false : tileLayout}
hideAdvancedFilter
hideFilters
infiniteScroll={false}
showNoSourceClaims={ENABLE_NO_SOURCE_CLAIMS}
meta={getElemMeta()}
/>
<div className="livestream-list--view-more">
<Button
label={__('Show more livestreams')}
button="link"
iconRight={ICONS.ARROW_RIGHT}
className="claim-grid__title--secondary"
onClick={() => {
doFetchActiveLivestreams();
setShowViewMoreLivestreams(false);
}}
/>
</div>
</>
)}
<ClaimListDiscover <ClaimListDiscover
prefixUris={useDualList ? undefined : livestreamUris}
hideAdvancedFilter={SIMPLE_SITE} hideAdvancedFilter={SIMPLE_SITE}
hideFilters={SIMPLE_SITE ? !dynamicRouteProps : undefined} hideFilters={SIMPLE_SITE ? !dynamicRouteProps : undefined}
header={repostedUri ? <span /> : undefined} header={useDualList ? <span /> : repostedUri ? <span /> : undefined}
tileLayout={repostedUri ? false : tileLayout} tileLayout={repostedUri ? false : tileLayout}
defaultOrderBy={SIMPLE_SITE ? (dynamicRouteProps ? undefined : CS.ORDER_BY_TRENDING) : undefined} defaultOrderBy={SIMPLE_SITE ? (dynamicRouteProps ? undefined : CS.ORDER_BY_TRENDING) : undefined}
claimType={claimType ? [claimType] : undefined} claimType={claimType ? [claimType] : undefined}
headerLabel={headerLabel} headerLabel={!useDualList && headerLabel}
tags={tags} tags={tags}
hiddenNsfwMessage={<HiddenNsfw type="page" />} hiddenNsfwMessage={<HiddenNsfw type="page" />}
repostedClaimId={repostedClaim ? repostedClaim.claim_id : null} repostedClaimId={repostedClaim ? repostedClaim.claim_id : null}
@ -133,47 +218,14 @@ function DiscoverPage(props: Props) {
: undefined : undefined
} }
feeAmount={SIMPLE_SITE ? !dynamicRouteProps && CS.FEE_AMOUNT_ANY : undefined} feeAmount={SIMPLE_SITE ? !dynamicRouteProps && CS.FEE_AMOUNT_ANY : undefined}
channelIds={ channelIds={channelIds}
(dynamicRouteProps && dynamicRouteProps.options && dynamicRouteProps.options.channelIds) || undefined
}
limitClaimsPerChannel={ limitClaimsPerChannel={
SIMPLE_SITE SIMPLE_SITE
? (dynamicRouteProps && dynamicRouteProps.options && dynamicRouteProps.options.limitClaimsPerChannel) || ? (dynamicRouteProps && dynamicRouteProps.options && dynamicRouteProps.options.limitClaimsPerChannel) ||
undefined undefined
: 3 : 3
} }
meta={ meta={!useDualList && getElemMeta()}
!dynamicRouteProps ? (
<a
className="help"
href="https://lbry.com/faq/trending"
title={__('Learn more about LBRY Credits on %DOMAIN%', { DOMAIN })}
>
<I18nMessage
tokens={{
lbc: <LbcSymbol />,
}}
>
Results boosted by %lbc%
</I18nMessage>
</a>
) : (
tag &&
!isMobile && (
<Button
ref={buttonRef}
button="alt"
icon={ICONS.SUBSCRIBE}
iconColor="red"
onClick={handleFollowClick}
requiresAuth={IS_WEB}
label={label}
/>
)
)
}
liveLivestreamsFirst
livestreamMap={livestreamMap}
hasSource hasSource
showNoSourceClaims={ENABLE_NO_SOURCE_CLAIMS} showNoSourceClaims={ENABLE_NO_SOURCE_CLAIMS}
/> />

View file

@ -220,7 +220,7 @@ function FilePage(props: Props) {
{!collection && !isMarkdown && !videoTheaterMode && <RecommendedContent uri={uri} />} {!collection && !isMarkdown && !videoTheaterMode && <RecommendedContent uri={uri} />}
{isMarkdown && ( {isMarkdown && (
<div className="file-page__post-comments"> <div className="file-page__post-comments">
<CommentsList uri={uri} linkedCommentId={linkedCommentId} /> <CommentsList uri={uri} linkedCommentId={linkedCommentId} commentsAreExpanded />
</div> </div>
)} )}
</Page> </Page>

View file

@ -1,4 +1,6 @@
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { doFetchActiveLivestreams } from 'redux/actions/livestream';
import { selectActiveLivestreams } from 'redux/selectors/livestream';
import { selectFollowedTags } from 'redux/selectors/tags'; import { selectFollowedTags } from 'redux/selectors/tags';
import { selectUserVerifiedEmail } from 'redux/selectors/user'; import { selectUserVerifiedEmail } from 'redux/selectors/user';
import { selectSubscriptions } from 'redux/selectors/subscriptions'; import { selectSubscriptions } from 'redux/selectors/subscriptions';
@ -12,8 +14,11 @@ const select = (state) => ({
authenticated: selectUserVerifiedEmail(state), authenticated: selectUserVerifiedEmail(state),
showNsfw: selectShowMatureContent(state), showNsfw: selectShowMatureContent(state),
homepageData: selectHomepageData(state), homepageData: selectHomepageData(state),
activeLivestreams: selectActiveLivestreams(state),
}); });
const perform = {}; const perform = (dispatch) => ({
doFetchActiveLivestreams: () => dispatch(doFetchActiveLivestreams()),
});
export default connect(select, perform)(DiscoverPage); export default connect(select, perform)(DiscoverPage);

View file

@ -9,8 +9,8 @@ import ClaimTilesDiscover from 'component/claimTilesDiscover';
import ClaimPreviewTile from 'component/claimPreviewTile'; import ClaimPreviewTile from 'component/claimPreviewTile';
import Icon from 'component/common/icon'; import Icon from 'component/common/icon';
import WaitUntilOnPage from 'component/common/wait-until-on-page'; import WaitUntilOnPage from 'component/common/wait-until-on-page';
import useGetLivestreams from 'effects/use-get-livestreams';
import { GetLinksData } from 'util/buildHomepage'; import { GetLinksData } from 'util/buildHomepage';
import { getLivestreamUris } from 'util/livestream';
// @if TARGET='web' // @if TARGET='web'
import Pixel from 'web/component/pixel'; import Pixel from 'web/component/pixel';
@ -23,14 +23,23 @@ type Props = {
subscribedChannels: Array<Subscription>, subscribedChannels: Array<Subscription>,
showNsfw: boolean, showNsfw: boolean,
homepageData: any, homepageData: any,
activeLivestreams: any,
doFetchActiveLivestreams: () => void,
}; };
function HomePage(props: Props) { function HomePage(props: Props) {
const { followedTags, subscribedChannels, authenticated, showNsfw, homepageData } = props; const {
followedTags,
subscribedChannels,
authenticated,
showNsfw,
homepageData,
activeLivestreams,
doFetchActiveLivestreams,
} = props;
const showPersonalizedChannels = (authenticated || !IS_WEB) && subscribedChannels && subscribedChannels.length > 0; const showPersonalizedChannels = (authenticated || !IS_WEB) && subscribedChannels && subscribedChannels.length > 0;
const showPersonalizedTags = (authenticated || !IS_WEB) && followedTags && followedTags.length > 0; const showPersonalizedTags = (authenticated || !IS_WEB) && followedTags && followedTags.length > 0;
const showIndividualTags = showPersonalizedTags && followedTags.length < 5; const showIndividualTags = showPersonalizedTags && followedTags.length < 5;
const { livestreamMap } = useGetLivestreams();
const rowData: Array<RowDataItem> = GetLinksData( const rowData: Array<RowDataItem> = GetLinksData(
homepageData, homepageData,
@ -52,13 +61,13 @@ function HomePage(props: Props) {
))} ))}
</ul> </ul>
); );
const claimTiles = ( const claimTiles = (
<ClaimTilesDiscover <ClaimTilesDiscover
{...options} {...options}
liveLivestreamsFirst
livestreamMap={livestreamMap}
showNoSourceClaims={ENABLE_NO_SOURCE_CLAIMS} showNoSourceClaims={ENABLE_NO_SOURCE_CLAIMS}
hasSource hasSource
prefixUris={getLivestreamUris(activeLivestreams, options.channelIds)}
pinUrls={pinUrls} pinUrls={pinUrls}
/> />
); );
@ -95,6 +104,10 @@ function HomePage(props: Props) {
); );
} }
React.useEffect(() => {
doFetchActiveLivestreams();
}, []);
return ( return (
<Page fullWidthPage> <Page fullWidthPage>
{!SIMPLE_SITE && (authenticated || !IS_WEB) && !subscribedChannels.length && ( {!SIMPLE_SITE && (authenticated || !IS_WEB) && !subscribedChannels.length && (

View file

@ -221,15 +221,17 @@ function ListBlocked(props: Props) {
function getRefreshElem() { function getRefreshElem() {
return ( return (
<Button myChannelClaims && (
icon={ICONS.REFRESH} <Button
button="alt" icon={ICONS.REFRESH}
label={__('Refresh')} button="alt"
onClick={() => { label={__('Refresh')}
fetchModBlockedList(); onClick={() => {
fetchModAmIList(); fetchModBlockedList();
}} fetchModAmIList();
/> }}
/>
)
); );
} }

View file

@ -13,7 +13,6 @@ import { Lbry } from 'lbry-redux';
import { toHex } from 'util/hex'; import { toHex } from 'util/hex';
import { FormField } from 'component/common/form'; import { FormField } from 'component/common/form';
import CopyableText from 'component/copyableText'; import CopyableText from 'component/copyableText';
import CopyableStreamkey from 'component/copyableStreamkey';
import Card from 'component/common/card'; import Card from 'component/common/card';
import ClaimList from 'component/claimList'; import ClaimList from 'component/claimList';
import usePersistedState from 'effects/use-persisted-state'; import usePersistedState from 'effects/use-persisted-state';
@ -185,14 +184,15 @@ export default function LivestreamSetupPage(props: Props) {
name="stream-server" name="stream-server"
label={__('Stream server')} label={__('Stream server')}
copyable={LIVESTREAM_RTMP_URL} copyable={LIVESTREAM_RTMP_URL}
snackMessage={__('Copied')} snackMessage={__('Copied stream server URL.')}
/> />
<CopyableStreamkey <CopyableText
primaryButton primaryButton
enableInputMask
name="livestream-key" name="livestream-key"
label={__('Stream key')} label={__('Stream key')}
copyable={streamKey} copyable={streamKey}
snackMessage={__('Copied')} snackMessage={__('Copied stream key.')}
/> />
</> </>
} }

View file

@ -0,0 +1,33 @@
import { connect } from 'react-redux';
import { doCommentListOwn, doCommentReset } from 'redux/actions/comments';
import { selectActiveChannelClaim } from 'redux/selectors/app';
import {
selectIsFetchingComments,
makeSelectCommentsForUri,
makeSelectTotalCommentsCountForUri,
makeSelectTopLevelTotalPagesForUri,
} from 'redux/selectors/comments';
import { selectClaimsById } from 'lbry-redux';
import OwnComments from './view';
const select = (state) => {
const activeChannelClaim = selectActiveChannelClaim(state);
const uri = activeChannelClaim && activeChannelClaim.canonical_url;
return {
activeChannelClaim,
allComments: makeSelectCommentsForUri(uri)(state),
totalComments: makeSelectTotalCommentsCountForUri(uri)(state),
topLevelTotalPages: makeSelectTopLevelTotalPagesForUri(uri)(state),
isFetchingComments: selectIsFetchingComments(state),
claimsById: selectClaimsById(state),
};
};
const perform = (dispatch) => ({
doCommentReset: (a) => dispatch(doCommentReset(a)),
doCommentListOwn: (a, b, c) => dispatch(doCommentListOwn(a, b, c)),
});
export default connect(select, perform)(OwnComments);

View file

@ -0,0 +1,210 @@
// @flow
import React from 'react';
import Button from 'component/button';
import ChannelSelector from 'component/channelSelector';
import ClaimPreview from 'component/claimPreview';
import Comment from 'component/comment';
import Card from 'component/common/card';
import Empty from 'component/common/empty';
import Page from 'component/page';
import Spinner from 'component/spinner';
import { COMMENT_PAGE_SIZE_TOP_LEVEL } from 'constants/comment';
import * as ICONS from 'constants/icons';
import useFetched from 'effects/use-fetched';
import debounce from 'util/debounce';
function scaleToDevicePixelRatio(value) {
const devicePixelRatio = window.devicePixelRatio || 1.0;
if (devicePixelRatio < 1.0) {
return Math.ceil(value / devicePixelRatio);
}
return Math.ceil(value * devicePixelRatio);
}
type Props = {
activeChannelClaim: ?ChannelClaim,
allComments: Array<Comment>,
totalComments: number,
topLevelTotalPages: number,
isFetchingComments: boolean,
claimsById: any,
doCommentReset: (claimId: string) => void,
doCommentListOwn: (channelId: string, page: number, pageSize: number) => void,
};
export default function OwnComments(props: Props) {
const {
activeChannelClaim,
allComments,
totalComments,
isFetchingComments,
claimsById,
doCommentReset,
doCommentListOwn,
} = props;
const spinnerRef = React.useRef();
const [page, setPage] = React.useState(0);
const [activeChannelId, setActiveChannelId] = React.useState('');
// Since we are sharing the key for Discussion and MyComments, don't show
// the list until we've gone through the initial reset.
const wasResetAndReady = useFetched(isFetchingComments);
const totalPages = Math.ceil(totalComments / COMMENT_PAGE_SIZE_TOP_LEVEL);
const moreBelow = page < totalPages;
function getCommentsElem(comments) {
return comments.map((comment) => {
const contentClaim = claimsById[comment.claim_id];
const isChannel = contentClaim && contentClaim.value_type === 'channel';
const isLivestream = Boolean(contentClaim && contentClaim.value_type === 'stream' && !contentClaim.value.source);
return (
<div key={comment.comment_id} className="comments-own card__main-actions">
<div className="section__actions">
<div className="comments-own--claim">
{contentClaim && (
<ClaimPreview
uri={contentClaim.canonical_url}
searchParams={{
...(isChannel ? { view: 'discussion' } : {}),
...(isLivestream ? {} : { lc: comment.comment_id }),
}}
hideActions
hideMenu
properties={() => null}
/>
)}
{!contentClaim && <Empty text={__('Content or channel was deleted.')} />}
</div>
<Comment
isTopLevel
hideActions
authorUri={comment.channel_url}
author={comment.channel_name}
commentId={comment.comment_id}
message={comment.comment}
timePosted={comment.timestamp * 1000}
commentIsMine
supportAmount={comment.support_amount}
numDirectReplies={0} // Don't show replies here
isModerator={comment.is_moderator}
isGlobalMod={comment.is_global_mod}
isFiat={comment.is_fiat}
/>
</div>
</div>
);
});
}
// Active channel changed
React.useEffect(() => {
if (activeChannelClaim && activeChannelClaim.claim_id !== activeChannelId) {
setActiveChannelId(activeChannelClaim.claim_id);
setPage(0);
}
}, [activeChannelClaim, activeChannelId]);
// Reset comments
React.useEffect(() => {
if (page === 0 && activeChannelId) {
doCommentReset(activeChannelId);
setPage(1);
}
}, [page, activeChannelId]); // eslint-disable-line react-hooks/exhaustive-deps
// Fetch own comments
React.useEffect(() => {
if (page !== 0 && activeChannelId) {
doCommentListOwn(activeChannelId, page, COMMENT_PAGE_SIZE_TOP_LEVEL);
}
}, [page]); // eslint-disable-line react-hooks/exhaustive-deps
// Infinite scroll
React.useEffect(() => {
function shouldFetchNextPage(page, topLevelTotalPages, window, document, yPrefetchPx = 1000) {
if (!spinnerRef || !spinnerRef.current) {
return false;
}
const rect = spinnerRef.current.getBoundingClientRect(); // $FlowFixMe
const windowH = window.innerHeight || document.documentElement.clientHeight; // $FlowFixMe
const windowW = window.innerWidth || document.documentElement.clientWidth; // $FlowFixMe
const isApproachingViewport = yPrefetchPx !== 0 && rect.top < windowH + scaleToDevicePixelRatio(yPrefetchPx);
const isInViewport =
rect.width > 0 &&
rect.height > 0 &&
rect.bottom >= 0 &&
rect.right >= 0 &&
// $FlowFixMe
rect.top <= windowH &&
// $FlowFixMe
rect.left <= windowW;
return (isInViewport || isApproachingViewport) && page < topLevelTotalPages;
}
const handleCommentScroll = debounce(() => {
if (shouldFetchNextPage(page, totalPages, window, document)) {
setPage(page + 1);
}
}, 200);
if (!isFetchingComments && moreBelow && spinnerRef && spinnerRef.current) {
if (shouldFetchNextPage(page, totalPages, window, document, 0)) {
setPage(page + 1);
} else {
window.addEventListener('scroll', handleCommentScroll);
return () => window.removeEventListener('scroll', handleCommentScroll);
}
}
}, [page, spinnerRef, isFetchingComments, moreBelow, totalPages]);
// **************************************************************************
// **************************************************************************
if (!activeChannelClaim) {
return null;
}
return (
<Page noFooter noSideNavigation settingsPage backout={{ title: __('Your comments'), backLabel: __('Back') }}>
<ChannelSelector hideAnon />
<Card
isBodyList
title={
totalComments > 0
? totalComments === 1
? __('1 comment')
: __('%total_comments% comments', { total_comments: totalComments })
: isFetchingComments
? ''
: __('No comments')
}
titleActions={
<Button
button="alt"
icon={ICONS.REFRESH}
title={__('Refresh')}
onClick={() => {
setPage(0);
}}
/>
}
body={
<>
{wasResetAndReady && <ul className="comments">{allComments && getCommentsElem(allComments)}</ul>}
{(isFetchingComments || moreBelow) && (
<div className="main--empty" ref={spinnerRef}>
<Spinner type="small" />
</div>
)}
</>
}
/>
</Page>
);
}

View file

@ -3,7 +3,15 @@ import * as ACTIONS from 'constants/action_types';
import * as REACTION_TYPES from 'constants/reactions'; import * as REACTION_TYPES from 'constants/reactions';
import * as PAGES from 'constants/pages'; import * as PAGES from 'constants/pages';
import { SORT_BY, BLOCK_LEVEL } from 'constants/comment'; import { SORT_BY, BLOCK_LEVEL } from 'constants/comment';
import { Lbry, parseURI, buildURI, selectClaimsByUri, selectMyChannelClaims, isURIEqual } from 'lbry-redux'; import {
Lbry,
parseURI,
buildURI,
selectClaimsByUri,
selectMyChannelClaims,
isURIEqual,
doClaimSearch,
} from 'lbry-redux';
import { doToast, doSeeNotifications } from 'redux/actions/notifications'; import { doToast, doSeeNotifications } from 'redux/actions/notifications';
import { import {
makeSelectMyReactionsForComment, makeSelectMyReactionsForComment,
@ -127,7 +135,6 @@ export function doCommentList(
type: ACTIONS.COMMENT_LIST_FAILED, type: ACTIONS.COMMENT_LIST_FAILED,
data: 'unable to find claim for uri', data: 'unable to find claim for uri',
}); });
return; return;
} }
@ -139,7 +146,7 @@ export function doCommentList(
}); });
// Adding 'channel_id' and 'channel_name' enables "CreatorSettings > commentsEnabled". // Adding 'channel_id' and 'channel_name' enables "CreatorSettings > commentsEnabled".
const authorChannelClaim = claim.value_type === 'channel' ? claim : claim.signing_channel; const creatorChannelClaim = claim.value_type === 'channel' ? claim : claim.signing_channel;
return Comments.comment_list({ return Comments.comment_list({
page, page,
@ -147,8 +154,8 @@ export function doCommentList(
page_size: pageSize, page_size: pageSize,
parent_id: parentId || undefined, parent_id: parentId || undefined,
top_level: !parentId, top_level: !parentId,
channel_id: authorChannelClaim ? authorChannelClaim.claim_id : undefined, channel_id: creatorChannelClaim ? creatorChannelClaim.claim_id : undefined,
channel_name: authorChannelClaim ? authorChannelClaim.name : undefined, channel_name: creatorChannelClaim ? creatorChannelClaim.name : undefined,
sort_by: sortBy, sort_by: sortBy,
}) })
.then((result: CommentListResponse) => { .then((result: CommentListResponse) => {
@ -162,7 +169,7 @@ export function doCommentList(
totalFilteredItems: total_filtered_items, totalFilteredItems: total_filtered_items,
totalPages: total_pages, totalPages: total_pages,
claimId: claimId, claimId: claimId,
commenterClaimId: authorChannelClaim ? authorChannelClaim.claim_id : undefined, creatorClaimId: creatorChannelClaim ? creatorChannelClaim.claim_id : undefined,
uri: uri, uri: uri,
}, },
}); });
@ -175,7 +182,7 @@ export function doCommentList(
dispatch({ dispatch({
type: ACTIONS.COMMENT_LIST_COMPLETED, type: ACTIONS.COMMENT_LIST_COMPLETED,
data: { data: {
authorClaimId: authorChannelClaim ? authorChannelClaim.claim_id : undefined, creatorClaimId: creatorChannelClaim ? creatorChannelClaim.claim_id : undefined,
disabled: true, disabled: true,
}, },
}); });
@ -201,8 +208,109 @@ export function doCommentList(
}; };
} }
export function doCommentListOwn(
channelId: string,
page: number = 1,
pageSize: number = 99999,
sortBy: number = SORT_BY.NEWEST_NO_PINS
) {
return async (dispatch: Dispatch, getState: GetState) => {
const state = getState();
const myChannelClaims = selectMyChannelClaims(state);
if (!myChannelClaims) {
console.error('Failed to fetch channel list.'); // eslint-disable-line
return;
}
const channelClaim = myChannelClaims.find((x) => x.claim_id === channelId);
if (!channelClaim) {
console.error('You do not own this channel.'); // eslint-disable-line
return;
}
const channelSignature = await channelSignName(channelClaim.claim_id, channelClaim.name);
if (!channelSignature) {
console.error('Failed to sign channel name.'); // eslint-disable-line
return;
}
dispatch({
type: ACTIONS.COMMENT_LIST_STARTED,
data: {},
});
return Comments.comment_list({
page,
page_size: pageSize,
sort_by: sortBy,
author_claim_id: channelId,
requestor_channel_name: channelClaim.name,
requestor_channel_id: channelClaim.claim_id,
signature: channelSignature.signature,
signing_ts: channelSignature.signing_ts,
})
.then((result: CommentListResponse) => {
const { items: comments, total_items, total_filtered_items, total_pages } = result;
if (!comments) {
dispatch({ type: ACTIONS.COMMENT_LIST_FAILED, data: 'No more comments.' });
return;
}
dispatch(
doClaimSearch({
page: 1,
page_size: 20,
no_totals: true,
claim_ids: comments.map((c) => c.claim_id),
})
)
.then((result) => {
dispatch({
type: ACTIONS.COMMENT_LIST_COMPLETED,
data: {
comments,
totalItems: total_items,
totalFilteredItems: total_filtered_items,
totalPages: total_pages,
uri: channelClaim.canonical_url, // hijack "Discussion Page"
claimId: channelClaim.claim_id, // hijack "Discussion Page"
},
});
})
.catch((err) => {
dispatch({ type: ACTIONS.COMMENT_LIST_FAILED, data: err });
});
})
.catch((error) => {
switch (error.message) {
case FETCH_API_FAILED_TO_FETCH:
dispatch(
doToast({
isError: true,
message: Comments.isCustomServer
? __('Failed to fetch comments. Verify custom server settings.')
: __('Failed to fetch comments.'),
})
);
dispatch(doToast({ isError: true, message: `${error.message}` }));
dispatch({ type: ACTIONS.COMMENT_LIST_FAILED, data: error });
break;
default:
dispatch(doToast({ isError: true, message: `${error.message}` }));
dispatch({ type: ACTIONS.COMMENT_LIST_FAILED, data: error });
}
});
};
}
export function doCommentById(commentId: string, toastIfNotFound: boolean = true) { export function doCommentById(commentId: string, toastIfNotFound: boolean = true) {
return (dispatch: Dispatch, getState: GetState) => { return (dispatch: Dispatch, getState: GetState) => {
dispatch({
type: ACTIONS.COMMENT_BY_ID_STARTED,
});
return Comments.comment_by_id({ comment_id: commentId, with_ancestors: true }) return Comments.comment_by_id({ comment_id: commentId, with_ancestors: true })
.then((result: CommentByIdResponse) => { .then((result: CommentByIdResponse) => {
const { item, items, ancestors } = result; const { item, items, ancestors } = result;
@ -235,17 +343,10 @@ export function doCommentById(commentId: string, toastIfNotFound: boolean = true
}; };
} }
export function doCommentReset(uri: string) { export function doCommentReset(claimId: string) {
return (dispatch: Dispatch, getState: GetState) => { return (dispatch: Dispatch) => {
const state = getState();
const claim = selectClaimsByUri(state)[uri];
const claimId = claim ? claim.claim_id : null;
if (!claimId) { if (!claimId) {
dispatch({ console.error(`Failed to reset comments`); //eslint-disable-line
type: ACTIONS.COMMENT_LIST_FAILED,
data: 'unable to find claim for uri',
});
return; return;
} }
@ -1055,6 +1156,10 @@ export function doFetchModBlockedList() {
return async (dispatch: Dispatch, getState: GetState) => { return async (dispatch: Dispatch, getState: GetState) => {
const state = getState(); const state = getState();
const myChannels = selectMyChannelClaims(state); const myChannels = selectMyChannelClaims(state);
if (!myChannels) {
dispatch({ type: ACTIONS.COMMENT_MODERATION_BLOCK_LIST_FAILED });
return;
}
dispatch({ dispatch({
type: ACTIONS.COMMENT_MODERATION_BLOCK_LIST_STARTED, type: ACTIONS.COMMENT_MODERATION_BLOCK_LIST_STARTED,
@ -1377,6 +1482,10 @@ export function doFetchCommentModAmIList(channelClaim: ChannelClaim) {
return async (dispatch: Dispatch, getState: GetState) => { return async (dispatch: Dispatch, getState: GetState) => {
const state = getState(); const state = getState();
const myChannels = selectMyChannelClaims(state); const myChannels = selectMyChannelClaims(state);
if (!myChannels) {
dispatch({ type: ACTIONS.COMMENT_MODERATION_AM_I_LIST_FAILED });
return;
}
dispatch({ type: ACTIONS.COMMENT_MODERATION_AM_I_LIST_STARTED }); dispatch({ type: ACTIONS.COMMENT_MODERATION_AM_I_LIST_STARTED });

View file

@ -5,6 +5,7 @@ import * as MODALS from 'constants/modal_types';
import { ipcRenderer } from 'electron'; import { ipcRenderer } from 'electron';
// @endif // @endif
import { doOpenModal } from 'redux/actions/app'; import { doOpenModal } from 'redux/actions/app';
import { doDeleteFile } from 'redux/actions/file';
import { import {
Lbry, Lbry,
SETTINGS, SETTINGS,
@ -25,12 +26,11 @@ import { makeSelectClientSetting, selectosNotificationsEnabled, selectDaemonSett
const DOWNLOAD_POLL_INTERVAL = 1000; const DOWNLOAD_POLL_INTERVAL = 1000;
var timeOutHash = {}; var timeOutHash = {};
export function doUpdateLoadStatus(uri: string, outpoint: string) { export function doUpdateLoadStatus(uri: any, outpoint: string) {
// Updates the loading status for a uri as it's downloading // Updates the loading status for a uri as it's downloading
// Calls file_list and checks the written_bytes value to see if the number has increased // Calls file_list and checks the written_bytes value to see if the number has increased
// Not needed on web as users aren't actually downloading the file // Not needed on web as users aren't actually downloading the file
jessopb commented 2021-10-02 07:15:27 +02:00 (Migrated from github.com)
Review

If I refresh, this gets cleared and the progress gets stuck.

If I refresh, this gets cleared and the progress gets stuck.
// @if TARGET='app' // @if TARGET='app'
return (dispatch: Dispatch, getState: GetState) => { return (dispatch: Dispatch, getState: GetState) => {
const setNextStatusUpdate = () => const setNextStatusUpdate = () =>
(timeOutHash[outpoint] = setTimeout(() => { (timeOutHash[outpoint] = setTimeout(() => {
@ -100,22 +100,21 @@ export function doUpdateLoadStatus(uri: string, outpoint: string) {
// @endif // @endif
} }
export function doStopDownload(outpoint: string, sd_hash: string) { export function doUpdateDownloadingStatus(outpoint: string) {
return (dispatch: Dispatch) => {
if (!timeOutHash[outpoint]) {
dispatch(doUpdateLoadStatus(null, outpoint));
}
};
}
export function doStopDownload(outpoint: string) {
return (dispatch: Dispatch) => { return (dispatch: Dispatch) => {
if (timeOutHash[outpoint]) { if (timeOutHash[outpoint]) {
clearInterval(timeOutHash[outpoint]); clearInterval(timeOutHash[outpoint]);
timeOutHash[outpoint] = undefined; timeOutHash[outpoint] = undefined;
} }
Lbry.file_delete({ dispatch(doDeleteFile(outpoint, false, false, null));
sd_hash,
});
dispatch({
type: ACTIONS.FILE_DELETE,
data: {
outpoint,
},
});
}; };
} }

View file

@ -1,6 +1,7 @@
// @flow // @flow
import * as ACTIONS from 'constants/action_types'; import * as ACTIONS from 'constants/action_types';
import { doClaimSearch } from 'lbry-redux'; import { doClaimSearch } from 'lbry-redux';
import { LIVESTREAM_LIVE_API } from 'constants/livestream';
export const doFetchNoSourceClaims = (channelId: string) => async (dispatch: Dispatch, getState: GetState) => { export const doFetchNoSourceClaims = (channelId: string) => async (dispatch: Dispatch, getState: GetState) => {
dispatch({ dispatch({
@ -31,3 +32,90 @@ export const doFetchNoSourceClaims = (channelId: string) => async (dispatch: Dis
}); });
} }
}; };
const FETCH_ACTIVE_LIVESTREAMS_MIN_INTERVAL_MS = 5 * 60 * 1000;
export const doFetchActiveLivestreams = (
orderBy: Array<string> = ['release_time'],
pageSize: number = 50,
forceFetch: boolean = false
) => {
return async (dispatch: Dispatch, getState: GetState) => {
const state = getState();
const now = Date.now();
const timeDelta = now - state.livestream.activeLivestreamsLastFetchedDate;
const prevOptions = state.livestream.activeLivestreamsLastFetchedOptions;
const nextOptions = { page_size: pageSize, order_by: orderBy };
const sameOptions = JSON.stringify(prevOptions) === JSON.stringify(nextOptions);
if (!forceFetch && sameOptions && timeDelta < FETCH_ACTIVE_LIVESTREAMS_MIN_INTERVAL_MS) {
dispatch({ type: ACTIONS.FETCH_ACTIVE_LIVESTREAMS_SKIPPED });
return;
}
dispatch({ type: ACTIONS.FETCH_ACTIVE_LIVESTREAMS_STARTED });
fetch(LIVESTREAM_LIVE_API)
.then((res) => res.json())
.then((res) => {
if (!res.data) {
dispatch({ type: ACTIONS.FETCH_ACTIVE_LIVESTREAMS_FAILED });
return;
}
const activeLivestreams: LivestreamInfo = res.data.reduce((acc, curr) => {
acc[curr.claimId] = {
live: curr.live,
viewCount: curr.viewCount,
creatorId: curr.claimId,
};
return acc;
}, {});
dispatch(
// ** Creators can have multiple livestream claims (each with unique
// chat), and all of them will play the same stream when creator goes
// live. The UI usually just wants to report the latest claim, so we
// query that store it in `latestClaimUri`.
doClaimSearch({
page_size: nextOptions.page_size,
has_no_source: true,
channel_ids: Object.keys(activeLivestreams),
claim_type: ['stream'],
order_by: nextOptions.order_by, // **
limit_claims_per_channel: 1, // **
no_totals: true,
})
)
.then((resolveInfo) => {
Object.values(resolveInfo).forEach((x) => {
// $FlowFixMe
const channelId = x.stream.signing_channel.claim_id;
activeLivestreams[channelId] = {
...activeLivestreams[channelId],
// $FlowFixMe
latestClaimId: x.stream.claim_id,
// $FlowFixMe
latestClaimUri: x.stream.canonical_url,
};
});
dispatch({
type: ACTIONS.FETCH_ACTIVE_LIVESTREAMS_COMPLETED,
data: {
activeLivestreams,
activeLivestreamsLastFetchedDate: now,
activeLivestreamsLastFetchedOptions: nextOptions,
},
});
})
.catch(() => {
dispatch({ type: ACTIONS.FETCH_ACTIVE_LIVESTREAMS_FAILED });
});
})
.catch((err) => {
dispatch({ type: ACTIONS.FETCH_ACTIVE_LIVESTREAMS_FAILED });
});
};
};

View file

@ -1,6 +1,5 @@
// @flow // @flow
import * as ACTIONS from 'constants/action_types'; import * as ACTIONS from 'constants/action_types';
import { SEARCH_OPTIONS } from 'constants/search';
import { selectShowMatureContent } from 'redux/selectors/settings'; import { selectShowMatureContent } from 'redux/selectors/settings';
import { import {
buildURI, buildURI,
@ -13,7 +12,8 @@ import {
import { makeSelectSearchUrisForQuery, selectSearchValue } from 'redux/selectors/search'; import { makeSelectSearchUrisForQuery, selectSearchValue } from 'redux/selectors/search';
import handleFetchResponse from 'util/handle-fetch'; import handleFetchResponse from 'util/handle-fetch';
import { getSearchQueryString } from 'util/query-params'; import { getSearchQueryString } from 'util/query-params';
import { SIMPLE_SITE, SEARCH_SERVER_API } from 'config'; import { getRecommendationSearchOptions } from 'util/search';
import { SEARCH_SERVER_API } from 'config';
type Dispatch = (action: any) => any; type Dispatch = (action: any) => any;
type GetState = () => { search: SearchState }; type GetState = () => { search: SearchState };
@ -140,17 +140,7 @@ export const doFetchRecommendedContent = (uri: string) => (dispatch: Dispatch, g
const claimIsMature = makeSelectClaimIsNsfw(uri)(state); const claimIsMature = makeSelectClaimIsNsfw(uri)(state);
if (claim && claim.value && claim.claim_id) { if (claim && claim.value && claim.claim_id) {
const options: SearchOptions = { size: 20, nsfw: matureEnabled, isBackgroundSearch: true }; const options: SearchOptions = getRecommendationSearchOptions(matureEnabled, claimIsMature, claim.claim_id);
if (SIMPLE_SITE) {
options[SEARCH_OPTIONS.CLAIM_TYPE] = SEARCH_OPTIONS.INCLUDE_FILES;
options[SEARCH_OPTIONS.MEDIA_VIDEO] = true;
options[SEARCH_OPTIONS.PRICE_FILTER_FREE] = true;
}
if (matureEnabled || !claimIsMature) {
options[SEARCH_OPTIONS.RELATED_TO] = claim.claim_id;
}
const { title } = claim.value; const { title } = claim.value;
if (title && options) { if (title && options) {

View file

@ -21,6 +21,7 @@ const defaultState: CommentsState = {
superChatsByUri: {}, superChatsByUri: {},
pinnedCommentsById: {}, // ClaimId -> array of pinned comment IDs pinnedCommentsById: {}, // ClaimId -> array of pinned comment IDs
isLoading: false, isLoading: false,
isLoadingById: false,
isLoadingByParentId: {}, isLoadingByParentId: {},
isCommenting: false, isCommenting: false,
myComments: undefined, myComments: undefined,
@ -245,7 +246,7 @@ export default handleActions(
claimId, claimId,
uri, uri,
disabled, disabled,
commenterClaimId, creatorClaimId,
} = action.data; } = action.data;
const commentById = Object.assign({}, state.commentById); const commentById = Object.assign({}, state.commentById);
@ -261,8 +262,8 @@ export default handleActions(
const isLoadingByParentId = Object.assign({}, state.isLoadingByParentId); const isLoadingByParentId = Object.assign({}, state.isLoadingByParentId);
const settingsByChannelId = Object.assign({}, state.settingsByChannelId); const settingsByChannelId = Object.assign({}, state.settingsByChannelId);
settingsByChannelId[commenterClaimId] = { settingsByChannelId[creatorClaimId] = {
...(settingsByChannelId[commenterClaimId] || {}), ...(settingsByChannelId[creatorClaimId] || {}),
comments_enabled: !disabled, comments_enabled: !disabled,
}; };
@ -335,6 +336,8 @@ export default handleActions(
}; };
}, },
[ACTIONS.COMMENT_BY_ID_STARTED]: (state) => ({ ...state, isLoadingById: true }),
[ACTIONS.COMMENT_BY_ID_COMPLETED]: (state: CommentsState, action: any) => { [ACTIONS.COMMENT_BY_ID_COMPLETED]: (state: CommentsState, action: any) => {
const { comment, ancestors } = action.data; const { comment, ancestors } = action.data;
const claimId = comment.claim_id; const claimId = comment.claim_id;
@ -349,9 +352,7 @@ export default handleActions(
const linkedCommentAncestors = Object.assign({}, state.linkedCommentAncestors); const linkedCommentAncestors = Object.assign({}, state.linkedCommentAncestors);
const updateStore = (comment, commentById, byId, repliesByParentId, topLevelCommentsById) => { const updateStore = (comment, commentById, byId, repliesByParentId, topLevelCommentsById) => {
// 'comment.ByID' doesn't populate 'replies'. We should have at least 1 commentById[comment.comment_id] = comment;
// at the moment, and the correct value will populated by 'comment.List'.
commentById[comment.comment_id] = { ...comment, replies: 1 };
byId[claimId] ? byId[claimId].unshift(comment.comment_id) : (byId[claimId] = [comment.comment_id]); byId[claimId] ? byId[claimId].unshift(comment.comment_id) : (byId[claimId] = [comment.comment_id]);
const parentId = comment.parent_id; const parentId = comment.parent_id;
@ -377,6 +378,7 @@ export default handleActions(
return { return {
...state, ...state,
isLoadingById: false,
topLevelCommentsById, topLevelCommentsById,
topLevelTotalCommentsById, topLevelTotalCommentsById,
topLevelTotalPagesById, topLevelTotalPagesById,

View file

@ -5,6 +5,10 @@ import { handleActions } from 'util/redux-utils';
const defaultState: LivestreamState = { const defaultState: LivestreamState = {
fetchingById: {}, fetchingById: {},
viewersById: {}, viewersById: {},
fetchingActiveLivestreams: false,
activeLivestreams: null,
activeLivestreamsLastFetchedDate: 0,
activeLivestreamsLastFetchedOptions: {},
}; };
export default handleActions( export default handleActions(
@ -36,6 +40,22 @@ export default handleActions(
newViewersById[claimId] = connected; newViewersById[claimId] = connected;
return { ...state, viewersById: newViewersById }; return { ...state, viewersById: newViewersById };
}, },
[ACTIONS.FETCH_ACTIVE_LIVESTREAMS_STARTED]: (state: LivestreamState) => {
return { ...state, fetchingActiveLivestreams: true };
},
[ACTIONS.FETCH_ACTIVE_LIVESTREAMS_FAILED]: (state: LivestreamState) => {
return { ...state, fetchingActiveLivestreams: false };
},
[ACTIONS.FETCH_ACTIVE_LIVESTREAMS_COMPLETED]: (state: LivestreamState, action: any) => {
const { activeLivestreams, activeLivestreamsLastFetchedDate, activeLivestreamsLastFetchedOptions } = action.data;
return {
...state,
fetchingActiveLivestreams: false,
activeLivestreams,
activeLivestreamsLastFetchedDate,
activeLivestreamsLastFetchedOptions,
};
},
}, },
defaultState defaultState
); );

View file

@ -70,7 +70,6 @@ const defaultState = {
// Content // Content
[SETTINGS.SHOW_MATURE]: false, [SETTINGS.SHOW_MATURE]: false,
[SETTINGS.AUTOPLAY_MEDIA]: true, [SETTINGS.AUTOPLAY_MEDIA]: true,
[SETTINGS.AUTOPLAY_NEXT]: [SETTINGS.AUTOPLAY_MEDIA],
[SETTINGS.FLOATING_PLAYER]: true, [SETTINGS.FLOATING_PLAYER]: true,
[SETTINGS.AUTO_DOWNLOAD]: true, [SETTINGS.AUTO_DOWNLOAD]: true,
[SETTINGS.HIDE_REPOSTS]: SIMPLE_SITE, [SETTINGS.HIDE_REPOSTS]: SIMPLE_SITE,
@ -80,6 +79,7 @@ const defaultState = {
[SETTINGS.TO_TRAY_WHEN_CLOSED]: true, [SETTINGS.TO_TRAY_WHEN_CLOSED]: true,
}, },
}; };
defaultState.clientSettings[SETTINGS.AUTOPLAY_NEXT] = defaultState.clientSettings[SETTINGS.AUTOPLAY_MEDIA];
reducers[ACTIONS.REHYDRATE] = (state, action) => { reducers[ACTIONS.REHYDRATE] = (state, action) => {
const { clientSettings } = state; const { clientSettings } = state;

View file

@ -1,5 +1,6 @@
// @flow // @flow
import { createSelector } from 'reselect'; import { createSelector } from 'reselect';
import { splitBySeparator } from 'lbry-redux';
const selectState = (state: { blocked: BlocklistState }) => state.blocked || {}; const selectState = (state: { blocked: BlocklistState }) => state.blocked || {};
@ -11,3 +12,15 @@ export const makeSelectChannelIsMuted = (uri: string) =>
createSelector(selectMutedChannels, (state: Array<string>) => { createSelector(selectMutedChannels, (state: Array<string>) => {
return state.includes(uri); return state.includes(uri);
}); });
export const selectMutedAndBlockedChannelIds = createSelector(
selectState,
(state) => state.comments,
(state, commentsState) => {
const mutedUris = state.blockedChannels;
const blockedUris = commentsState.moderationBlockList;
return Array.from(
new Set((mutedUris || []).concat(blockedUris || []).map((uri) => splitBySeparator(uri)[1]))
).sort();
}
);

View file

@ -9,6 +9,7 @@ const selectState = (state) => state.comments || {};
export const selectCommentsById = createSelector(selectState, (state) => state.commentById || {}); export const selectCommentsById = createSelector(selectState, (state) => state.commentById || {});
export const selectIsFetchingComments = createSelector(selectState, (state) => state.isLoading); export const selectIsFetchingComments = createSelector(selectState, (state) => state.isLoading);
export const selectIsFetchingCommentsById = createSelector(selectState, (state) => state.isLoadingById);
export const selectIsFetchingCommentsByParentId = createSelector(selectState, (state) => state.isLoadingByParentId); export const selectIsFetchingCommentsByParentId = createSelector(selectState, (state) => state.isLoadingByParentId);
export const selectIsPostingComment = createSelector(selectState, (state) => state.isCommenting); export const selectIsPostingComment = createSelector(selectState, (state) => state.isCommenting);
export const selectIsFetchingReacts = createSelector(selectState, (state) => state.isFetchingReacts); export const selectIsFetchingReacts = createSelector(selectState, (state) => state.isFetchingReacts);

View file

@ -32,13 +32,19 @@ export const makeSelectIsPlaying = (uri: string) =>
export const makeSelectIsPlayerFloating = (location: UrlLocation) => export const makeSelectIsPlayerFloating = (location: UrlLocation) =>
createSelector(selectPrimaryUri, selectPlayingUri, (primaryUri, playingUri) => { createSelector(selectPrimaryUri, selectPlayingUri, (primaryUri, playingUri) => {
const hasSecondarySource = playingUri && (playingUri.source === 'comment' || playingUri.source === 'markdown'); if (!playingUri) return false;
const { pathname, search } = location;
const hasSecondarySource = Boolean(playingUri.source);
const isComment = playingUri.source === 'comment';
const isInlineSecondaryPlayer = const isInlineSecondaryPlayer =
playingUri && playingUri.uri !== primaryUri && location.pathname === playingUri.pathname && hasSecondarySource; hasSecondarySource && playingUri.uri !== primaryUri && pathname === playingUri.pathname;
if (isComment && isInlineSecondaryPlayer && search && search !== '?view=discussion') return true;
if ( if (
(playingUri && (hasSecondarySource ? playingUri.primaryUri === primaryUri : playingUri.uri === primaryUri)) || isInlineSecondaryPlayer ||
isInlineSecondaryPlayer (hasSecondarySource && !isComment ? playingUri.primaryUri === primaryUri : playingUri.uri === primaryUri)
) { ) {
return false; return false;
} }

View file

@ -1,11 +1,11 @@
import { selectClaimsByUri, selectIsFetchingClaimListMine, selectMyClaims } from 'lbry-redux'; import { selectClaimsByUri, selectIsFetchingClaimListMine, selectMyClaims } from 'lbry-redux';
import { createSelector } from 'reselect'; import { createSelector } from 'reselect';
export const selectState = state => state.fileInfo || {}; export const selectState = (state) => state.fileInfo || {};
export const selectFileInfosByOutpoint = createSelector(selectState, state => state.byOutpoint || {}); export const selectFileInfosByOutpoint = createSelector(selectState, (state) => state.byOutpoint || {});
export const selectIsFetchingFileList = createSelector(selectState, state => state.isFetchingFileList); export const selectIsFetchingFileList = createSelector(selectState, (state) => state.isFetchingFileList);
export const selectIsFetchingFileListDownloadedOrPublished = createSelector( export const selectIsFetchingFileListDownloadedOrPublished = createSelector(
selectIsFetchingFileList, selectIsFetchingFileList,
@ -13,31 +13,31 @@ export const selectIsFetchingFileListDownloadedOrPublished = createSelector(
(isFetchingFileList, isFetchingClaimListMine) => isFetchingFileList || isFetchingClaimListMine (isFetchingFileList, isFetchingClaimListMine) => isFetchingFileList || isFetchingClaimListMine
); );
export const makeSelectFileInfoForUri = uri => export const makeSelectFileInfoForUri = (uri) =>
createSelector(selectClaimsByUri, selectFileInfosByOutpoint, (claims, byOutpoint) => { createSelector(selectClaimsByUri, selectFileInfosByOutpoint, (claims, byOutpoint) => {
const claim = claims[uri]; const claim = claims[uri];
const outpoint = claim ? `${claim.txid}:${claim.nout}` : undefined; const outpoint = claim ? `${claim.txid}:${claim.nout}` : undefined;
return outpoint ? byOutpoint[outpoint] : undefined; return outpoint ? byOutpoint[outpoint] : undefined;
}); });
export const selectDownloadingByOutpoint = createSelector(selectState, state => state.downloadingByOutpoint || {}); export const selectDownloadingByOutpoint = createSelector(selectState, (state) => state.downloadingByOutpoint || {});
export const makeSelectDownloadingForUri = uri => export const makeSelectDownloadingForUri = (uri) =>
createSelector(selectDownloadingByOutpoint, makeSelectFileInfoForUri(uri), (byOutpoint, fileInfo) => { createSelector(selectDownloadingByOutpoint, makeSelectFileInfoForUri(uri), (byOutpoint, fileInfo) => {
if (!fileInfo) return false; if (!fileInfo) return false;
return byOutpoint[fileInfo.outpoint]; return byOutpoint[fileInfo.outpoint];
}); });
export const selectUrisLoading = createSelector(selectState, state => state.urisLoading || {}); export const selectUrisLoading = createSelector(selectState, (state) => state.urisLoading || {});
export const makeSelectLoadingForUri = uri => createSelector(selectUrisLoading, byUri => byUri && byUri[uri]); export const makeSelectLoadingForUri = (uri) => createSelector(selectUrisLoading, (byUri) => byUri && byUri[uri]);
export const selectFileInfosDownloaded = createSelector( export const selectFileInfosDownloaded = createSelector(
selectFileInfosByOutpoint, selectFileInfosByOutpoint,
selectMyClaims, selectMyClaims,
(byOutpoint, myClaims) => (byOutpoint, myClaims) =>
Object.values(byOutpoint).filter(fileInfo => { Object.values(byOutpoint).filter((fileInfo) => {
const myClaimIds = myClaims.map(claim => claim.claim_id); const myClaimIds = myClaims.map((claim) => claim.claim_id);
return fileInfo && myClaimIds.indexOf(fileInfo.claim_id) === -1 && (fileInfo.completed || fileInfo.written_bytes); return fileInfo && myClaimIds.indexOf(fileInfo.claim_id) === -1 && (fileInfo.completed || fileInfo.written_bytes);
}) })
@ -59,7 +59,7 @@ export const selectDownloadingFileInfos = createSelector(
const outpoints = Object.keys(downloadingByOutpoint); const outpoints = Object.keys(downloadingByOutpoint);
const fileInfos = []; const fileInfos = [];
outpoints.forEach(outpoint => { outpoints.forEach((outpoint) => {
const fileInfo = fileInfosByOutpoint[outpoint]; const fileInfo = fileInfosByOutpoint[outpoint];
if (fileInfo) fileInfos.push(fileInfo); if (fileInfo) fileInfos.push(fileInfo);
@ -69,10 +69,10 @@ export const selectDownloadingFileInfos = createSelector(
} }
); );
export const selectTotalDownloadProgress = createSelector(selectDownloadingFileInfos, fileInfos => { export const selectTotalDownloadProgress = createSelector(selectDownloadingFileInfos, (fileInfos) => {
const progress = []; const progress = [];
fileInfos.forEach(fileInfo => { fileInfos.forEach((fileInfo) => {
progress.push((fileInfo.written_bytes / fileInfo.total_bytes) * 100); progress.push((fileInfo.written_bytes / fileInfo.total_bytes) * 100);
}); });
@ -82,4 +82,4 @@ export const selectTotalDownloadProgress = createSelector(selectDownloadingFileI
return -1; return -1;
}); });
export const selectFileInfoErrors = createSelector(selectState, state => state.errors || {}); export const selectFileInfoErrors = createSelector(selectState, (state) => state.errors || {});

View file

@ -40,3 +40,23 @@ export const makeSelectPendingLivestreamsForChannelId = (channelId: string) =>
claim.signing_channel.claim_id === channelId claim.signing_channel.claim_id === channelId
); );
}); });
export const selectActiveLivestreams = createSelector(selectState, (state) => state.activeLivestreams);
export const makeSelectIsActiveLivestream = (uri: string) =>
createSelector(selectState, (state) => {
const activeLivestreamValues = (state.activeLivestreams && Object.values(state.activeLivestreams)) || [];
// $FlowFixMe
return Boolean(activeLivestreamValues.find((v) => v.latestClaimUri === uri));
});
export const makeSelectActiveLivestreamUris = (uri: string) =>
createSelector(selectState, (state) => {
const activeLivestreamValues = (state.activeLivestreams && Object.values(state.activeLivestreams)) || [];
const uris = [];
activeLivestreamValues.forEach((v) => {
// $FlowFixMe
if (v.latestClaimUri) uris.push(v.latestClaimUri);
});
return uris;
});

View file

@ -13,7 +13,7 @@ import {
makeSelectIsUriResolving, makeSelectIsUriResolving,
} from 'lbry-redux'; } from 'lbry-redux';
import { createSelector } from 'reselect'; import { createSelector } from 'reselect';
import { createNormalizedSearchKey } from 'util/search'; import { createNormalizedSearchKey, getRecommendationSearchOptions } from 'util/search';
import { selectMutedChannels } from 'redux/selectors/blocked'; import { selectMutedChannels } from 'redux/selectors/blocked';
import { selectHistory } from 'redux/selectors/content'; import { selectHistory } from 'redux/selectors/content';
import { selectAllCostInfoByUri } from 'lbryinc'; import { selectAllCostInfoByUri } from 'lbryinc';
@ -155,36 +155,34 @@ export const makeSelectRecommendedContentForUri = (uri: string) =>
); );
export const makeSelectRecommendedRecsysIdForClaimId = (claimId: string) => export const makeSelectRecommendedRecsysIdForClaimId = (claimId: string) =>
createSelector(makeSelectClaimForClaimId(claimId), selectSearchResultByQuery, (claim, searchUrisByQuery) => { createSelector(
// TODO: DRY this out. makeSelectClaimForClaimId(claimId),
let poweredBy; selectShowMatureContent,
if (claim && claimId) { selectSearchResultByQuery,
const isMature = isClaimNsfw(claim); (claim, matureEnabled, searchUrisByQuery) => {
const { title } = claim.value; // TODO: DRY this out.
let poweredBy;
if (claim && claimId) {
const isMature = isClaimNsfw(claim);
const { title } = claim.value;
if (!title) {
return;
}
if (!title) { const options = getRecommendationSearchOptions(matureEnabled, isMature, claimId);
return; const searchQuery = getSearchQueryString(title.replace(/\//, ' '), options);
} const normalizedSearchQuery = createNormalizedSearchKey(searchQuery);
const options: { const searchResult = searchUrisByQuery[normalizedSearchQuery];
related_to?: string, if (searchResult) {
nsfw?: boolean, poweredBy = searchResult.recsys;
isBackgroundSearch?: boolean, } else {
} = { related_to: claim.claim_id, isBackgroundSearch: true }; return normalizedSearchQuery;
}
options['nsfw'] = isMature;
const searchQuery = getSearchQueryString(title.replace(/\//, ' '), options);
const normalizedSearchQuery = createNormalizedSearchKey(searchQuery);
let searchResult = searchUrisByQuery[normalizedSearchQuery];
if (searchResult) {
poweredBy = searchResult.recsys;
} else {
return normalizedSearchQuery;
} }
return poweredBy;
} }
return poweredBy; );
});
export const makeSelectWinningUriForQuery = (query: string) => { export const makeSelectWinningUriForQuery = (query: string) => {
const uriFromQuery = `lbry://${query}`; const uriFromQuery = `lbry://${query}`;

View file

@ -14,6 +14,7 @@
@import 'component/button'; @import 'component/button';
@import 'component/card'; @import 'component/card';
@import 'component/channel'; @import 'component/channel';
@import 'component/channel-mention';
@import 'component/claim-list'; @import 'component/claim-list';
@import 'component/collection'; @import 'component/collection';
@import 'component/comments'; @import 'component/comments';

View file

@ -0,0 +1,125 @@
.channel-mention {
display: flex;
align-items: center;
position: absolute;
bottom: calc(100% - 1.8rem);
z-index: 3;
font-size: var(--font-small);
padding-left: var(--spacing-s);
> .icon {
top: 0;
left: var(--spacing-m);
height: 100%;
position: absolute;
z-index: 1;
stroke: var(--color-input-placeholder);
}
@media (min-width: $breakpoint-small) {
padding: 0;
}
}
.channel-mention__suggestions {
@extend .card;
display: flex;
flex-direction: column;
overflow-y: auto;
max-height: 30vh;
position: absolute;
text-overflow: ellipsis;
width: 22rem;
z-index: 3;
left: 0;
right: 0;
bottom: 0;
box-shadow: var(--card-box-shadow);
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
border-bottom: none;
.channel-mention__label:first-of-type {
margin-top: var(--spacing-xs);
}
}
.channel-mention__suggestions[flow-bottom] {
top: 4rem;
bottom: auto;
border-top-right-radius: 0;
border-top-left-radius: 0;
border-top: none;
border-bottom-right-radius: var(--border-radius);
border-bottom-left-radius: var(--border-radius);
border-bottom: auto;
}
.channel-mention__input--none {
opacity: 0;
width: 0;
height: 0;
}
.channel-mention__label {
@extend .wunderbar__label;
}
.channel-mention__top-separator {
@extend .wunderbar__top-separator;
}
.channel-mention__suggestion {
display: flex;
align-items: center;
padding: 0 var(--spacing-xxs);
margin-left: var(--spacing-xxs);
overflow: hidden;
text-overflow: ellipsis;
.channel-thumbnail {
@include handleChannelGif(2.1rem);
position: absolute;
@media (min-width: $breakpoint-small) {
@include handleChannelGif(2.1rem);
}
}
}
.channel-mention__suggestion-label {
@extend .wunderbar__suggestion-label;
margin-left: var(--spacing-m);
display: block;
position: relative;
}
.channel-mention__suggestion-name {
@extend .wunderbar__suggestion-name;
margin-left: calc(var(--spacing-l) - var(--spacing-xxs));
}
.channel-mention__suggestion-title {
@extend .wunderbar__suggestion-title;
margin-left: calc(var(--spacing-l) - var(--spacing-xxs));
}
.channel-mention__placeholder-suggestion {
@extend .wunderbar__placeholder-suggestion;
padding: 0 var(--spacing-xxs);
margin-left: var(--spacing-xxs);
}
.channel-mention__placeholder-label {
@extend .wunderbar__placeholder-label;
margin-left: var(--spacing-m);
}
.channel-mention__placeholder-thumbnail {
@extend .wunderbar__placeholder-thumbnail;
margin-left: var(--spacing-m);
}
.channel-mention__placeholder-info {
@extend .wunderbar__placeholder-info;
margin-left: var(--spacing-m);
}

View file

@ -556,9 +556,9 @@
.claim-tile__info { .claim-tile__info {
display: flex; display: flex;
margin-top: var(--spacing-s); margin-top: var(--spacing-s);
padding: var(--spacing-s);
border-top: 1px solid var(--color-border); border-top: 1px solid var(--color-border);
color: var(--color-subtitle); color: var(--color-subtitle);
padding: var(--spacing-s);
.channel-thumbnail { .channel-thumbnail {
@include handleChannelGif(2.1rem); @include handleChannelGif(2.1rem);
@ -605,13 +605,6 @@
flex-wrap: wrap; flex-wrap: wrap;
} }
.view_count {
&::after {
content: '';
margin: 0 var(--spacing-xxs);
}
}
.claim-preview__file-property-overlay { .claim-preview__file-property-overlay {
position: absolute; position: absolute;
bottom: var(--spacing-xxs); bottom: var(--spacing-xxs);

View file

@ -34,6 +34,16 @@ $thumbnailWidthSmall: 1rem;
.comment__create { .comment__create {
font-size: var(--font-small); font-size: var(--font-small);
position: relative;
fieldset-section,
.form-field--SimpleMDE {
margin-top: 0;
}
.form-field__two-column {
column-count: 2;
}
} }
.comment__create--reply { .comment__create--reply {
@ -80,6 +90,10 @@ $thumbnailWidthSmall: 1rem;
} }
} }
.content_comment {
position: relative;
}
.comment__thumbnail-wrapper { .comment__thumbnail-wrapper {
flex: 0; flex: 0;
margin-top: var(--spacing-xxs); margin-top: var(--spacing-xxs);
@ -186,6 +200,9 @@ $thumbnailWidthSmall: 1rem;
} }
.comment__body-container { .comment__body-container {
display: flex;
flex-direction: column;
min-width: 0;
flex: 1; flex: 1;
margin-left: var(--spacing-xs); margin-left: var(--spacing-xs);
@ -473,3 +490,60 @@ $thumbnailWidthSmall: 1rem;
margin-bottom: -3px; // TODO fix few instances of these (find "-2px") margin-bottom: -3px; // TODO fix few instances of these (find "-2px")
} }
} }
.comments-own {
.section__actions {
align-items: flex-start;
}
.comments-own--claim {
min-width: 100%;
max-width: 100%;
@media (min-width: $breakpoint-medium) {
min-width: 40%;
max-width: 40%;
}
.media__thumb {
flex-shrink: 0;
overflow: hidden;
$width: 5rem;
@include handleClaimListGifThumbnail($width);
width: $width;
height: calc(#{$width} * (9 / 16));
margin-right: var(--spacing-s);
}
.channel-thumbnail {
@include handleChannelGif(calc(5rem * 9 / 16));
margin-right: var(--spacing-xs);
@media (min-width: $breakpoint-small) {
@include handleChannelGif(calc(5rem * 9 / 16));
margin-right: var(--spacing-s);
}
}
}
.claim-preview__wrapper {
margin: 0 0;
padding: 0;
@media (min-width: $breakpoint-medium) {
margin: 0 var(--spacing-xs);
}
}
.comment {
margin-top: var(--spacing-s);
margin-left: 0;
padding-left: var(--spacing-m);
border-left: 4px solid var(--color-border);
@media (min-width: $breakpoint-medium) {
margin-top: 0;
margin-left: var(--spacing-s);
}
}
}

View file

@ -1,4 +1,4 @@
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
.download--header { .download-progress__header {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
padding: 15px; padding: 15px;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
@ -6,11 +6,11 @@
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
width: 400px; width: 400px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background-color: #f2f2f2; background-color: var(--color-header-background); //var(--color-gray-9):dark-mode
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
border-radius: 10px; border-radius: 10px;
border: 1px solid #c5c4c3; border: 1px solid var(--color-gray-3);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
} }
.download--top-close-button { .download-progress__top-close-button {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
position: absolute; position: absolute;
top: 7px; top: 7px;
right: 15px; right: 15px;
@ -21,18 +21,18 @@
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
div { div {
height: 2px; height: 2px;
width: 13px; width: 13px;
background-color: #979696; background-color: var(--color-gray-4);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
border-radius: 3px; border-radius: 3px;
} }
} }
.download--state-container { .download-progress__state-container {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
margin-top: 10px; margin-top: 10px;
padding-bottom: 10px; padding-bottom: 10px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 100%; width: 100%;
} }
.download--file-name { .download-progress__state-filename {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
margin: 0; margin: 0;
font-weight: 800; font-weight: 800;
font-size: 13px; font-size: 13px;
@ -41,8 +41,11 @@
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
margin-right: 10px; margin-right: 10px;
span.button__label {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
color: var(--color-text);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
}
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
} }
.download--file-name-link { .download-progress__state-filename-link {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
margin: 0; margin: 0;
font-weight: 800; font-weight: 800;
font-size: 13px; font-size: 13px;
@ -54,56 +57,55 @@
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
text-decoration: underline; text-decoration: underline;
cursor: pointer; cursor: pointer;
} }
.download--release-Time { .download-progress__release-time {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
margin: 0; margin: 0;
font-weight: 800; font-weight: 800;
font-size: 12px; font-size: 12px;
margin-left: auto; margin-left: auto;
font-style: italic; font-style: italic;
} }
.download--state-bar { .download-progress__state-bar {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
display: flex; display: flex;
flex-direction: row; flex-direction: row;
width: 100%; width: 100%;
align-items: center; align-items: center;
margin-bottom: 2px; margin-bottom: 2px;
} }
.download--bar-container { .download-progress__bar-container {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
width: 100%; width: 100%;
background-color: gray; background-color: var(--color-gray-5);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
height: 6px; height: 6px;
border-radius: 10px; border-radius: 10px;
} }
.download--bar-content { .download-progress__bar-content {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
border-radius: 10px; border-radius: 10px;
height: 100%; height: 100%;
background-color: #ff9933; background-color: var(--color-primary);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
} }
.download--close-button { .download-progress__close-button {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
flex-shrink: 0; flex-shrink: 0;
margin-left: auto; margin-left: auto;
font-size: 20px; font-size: 20px;
cursor: pointer; cursor: pointer;
} }
.download-count-time { .download-progress__count-time {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
font-size: 11px; font-size: 11px;
// color: gray; letter-spacing: -0.6px;
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
} }
.download--divider { .download-progress__divider {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
border-top: 1px solid #bbb; border-top: 1px solid var(--color-gray-6);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
margin-left: -15px; margin-left: -15px;
width: 110%; width: 110%;
} }
.download-cancel { .download-progress__cancel {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
margin-top: 7px; margin-top: 7px;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
.download-cancel p { .download-progress__cancel p {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
margin: 0; margin: 0;
color: black;
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
font-size: 12px; font-size: 12px;
margin: 0; margin: 0;
white-space: nowrap; white-space: nowrap;
@ -111,23 +113,23 @@
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.download-cancel b { .download-progress__cancel b {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
font-size: 13px; font-size: 13px;
} }
.download-cancel-confirm { .download-progress__cancel-confirm {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
width: 90px; width: 90px;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
align-items: center; align-items: center;
} }
.download-cancel-ok { .download-progress__cancel-ok {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
border: none; border: none;
// color: rgb(4, 120, 87);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
background-color: transparent; background-color: transparent;
font-size: 13px; font-size: 13px;
color: var(--color-text);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
} }
.download-cancel-ok:hover { .download-progress__cancel-ok:hover {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
color: rgb(4, 120, 87); color: var(--color-primary);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
} }
.download__container { .download__container {
position: fixed; position: fixed;
@ -136,21 +138,24 @@
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
width: 400px; width: 400px;
height: 300px; height: 300px;
border-radius: 10px; border-radius: 10px;
box-shadow: 2px 2px 5px grey; box-shadow: 2px 2px 5px var(--color-gray-4);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
background-color: white; background-color: var(--color-white);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
transition: width 2s; transition: width 2s;
} }
.download__toggle-button { .download-progress__toggle-button {
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
position: fixed; position: fixed;
bottom: 10px; bottom: 10px;
right: 10px; right: 10px;
border: none; border: none;
background: white; background: var(--color-white);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
color: #4f4f4fbf; color: var(--color-gray-6);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
width: 60px; width: 50px;
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
height: 60px; height: 50px;
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
border-radius: 30px; border-radius: 10px;
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
box-shadow: 2px 2px 4px grey; box-shadow: 0px 5px 4px var(--color-gray-4);
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
display: flex;
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
justify-content: center;
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
align-items: center;
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
} }
.download_close_modal { .download_close_modal {
float: right; float: right;

jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-01 23:38:11 +02:00 (Migrated from github.com)
Review

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.

We'll probably want to replace a lot of values with some existing vars at polishing time. This will also make it support dark mode.
jessopb commented 2021-10-01 23:58:10 +02:00 (Migrated from github.com)
Review

I like this color, but maybe it should use var(--color-primary)?

I like this color, but maybe it should use var(--color-primary)?
jessopb commented 2021-10-02 06:49:48 +02:00 (Migrated from github.com)
Review

dark mode, unless my .env is messed up
image

dark mode, unless my .env is messed up ![image](https://user-images.githubusercontent.com/36554050/135703949-ec59f91e-6512-43b7-8a08-4376ab509243.png)
jessopb commented 2021-10-02 07:07:15 +02:00 (Migrated from github.com)
Review

http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container

http://getbem.com/naming/ This is our css naming convention, so download-progress__bar-container
jessopb commented 2021-10-08 20:25:59 +02:00 (Migrated from github.com)
Review

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?

having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
jessopb commented 2021-10-08 20:34:40 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)
jessopb commented 2021-10-08 20:36:36 +02:00 (Migrated from github.com)
Review

try var(--border-radius)

try var(--border-radius)

View file

@ -1,10 +1,12 @@
$COLLAPSED_HEIGHT: 120px;
.expandable--closed, .expandable--closed,
.expandable--open { .expandable--open {
margin-bottom: var(--spacing-s); margin-bottom: var(--spacing-s);
} }
.expandable--closed { .expandable--closed {
max-height: 10rem; max-height: $COLLAPSED_HEIGHT * 3 / 4;
overflow-y: hidden; overflow-y: hidden;
position: relative; position: relative;
-webkit-mask-image: -webkit-gradient(linear, left 30%, left bottom, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0))); -webkit-mask-image: -webkit-gradient(linear, left 30%, left bottom, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0)));

View file

@ -27,8 +27,6 @@ $recent-msg-button__height: 2rem;
.livestream__discussion { .livestream__discussion {
width: 100%; width: 100%;
margin-top: var(--spacing-m);
margin-bottom: var(--spacing-s);
@media (min-width: $breakpoint-medium) { @media (min-width: $breakpoint-medium) {
margin: 0; margin: 0;
@ -359,6 +357,10 @@ $recent-msg-button__height: 2rem;
p { p {
word-break: break-word; word-break: break-word;
} }
.channel-name {
font-size: var(--font-small);
}
} }
} }
@ -459,3 +461,9 @@ $recent-msg-button__height: 2rem;
} }
} }
} }
.livestream-list--view-more {
display: flex;
align-items: flex-end;
margin-bottom: var(--spacing-m);
}

Some files were not shown because too many files have changed in this diff Show more