Issue/7152 #7214
Closed
billycolon wants to merge 9 commits from
issue/7152
into master
pull from: issue/7152
merge into: LBRYCommunity:master
LBRYCommunity:master
LBRYCommunity:dependabot/npm_and_yarn/electron-22.3.21
LBRYCommunity:dependabot/npm_and_yarn/semver-5.7.2
LBRYCommunity:7681-remove-block-list-apis
LBRYCommunity:new-sync-demo-no-user
LBRYCommunity:commentserver-swap-test-2
LBRYCommunity:Comment-server-swap
LBRYCommunity:7683-upgrade-to-electron-20
LBRYCommunity:7668-improve-startup-performance-while-fetching-comment-moderation-info
LBRYCommunity:feat-exportWalletSync
LBRYCommunity:feat-walletExport
LBRYCommunity:new-sync-demo
LBRYCommunity:test-updates4b
LBRYCommunity:test-updates-4a
LBRYCommunity:update-test-3c
LBRYCommunity:update-test-3b
LBRYCommunity:update-test-3
LBRYCommunity:test7495b2
LBRYCommunity:test7495a2
LBRYCommunity:test7495b
LBRYCommunity:test7495
LBRYCommunity:test109
LBRYCommunity:test-sdk-109
LBRYCommunity:feat-restoreLocalNotifications
LBRYCommunity:test-gatekeeper
LBRYCommunity:test-107
LBRYCommunity:test-mac-notarize
LBRYCommunity:update-postcss-quagmire
LBRYCommunity:testpush
LBRYCommunity:commentApiDefault
LBRYCommunity:inspect-upgrades
LBRYCommunity:fix-unblockIsChannelClaim
LBRYCommunity:ody255
LBRYCommunity:robd-mac-2
LBRYCommunity:sso-demo
LBRYCommunity:robd-universal
LBRYCommunity:remove-swap
LBRYCommunity:cleaning.dec.21
LBRYCommunity:update-trending-param
LBRYCommunity:collection-ordering
LBRYCommunity:download-progress
LBRYCommunity:anton
LBRYCommunity:anthony-fix-video-ios
LBRYCommunity:saltdev
LBRYCommunity:bump-electron-to-11
LBRYCommunity:fix-noBlockSubmitOnImgError
LBRYCommunity:x.lint.extras
LBRYCommunity:x.final
LBRYCommunity:somehow-working
LBRYCommunity:reenable-ads
LBRYCommunity:chat-markdown
LBRYCommunity:ip/muted.uris
LBRYCommunity:odysee-split
LBRYCommunity:feat-desktopRelated
LBRYCommunity:ip/memo
LBRYCommunity:bs
LBRYCommunity:ip/memoization
LBRYCommunity:bump-flow-version
LBRYCommunity:ip/shared.block.list
LBRYCommunity:keycloak-sso
LBRYCommunity:a-r-w-k-2
LBRYCommunity:auth-refactor-w-keycloak
LBRYCommunity:auth-refactor
LBRYCommunity:rb-ip/embed-replay
LBRYCommunity:issue/2120
LBRYCommunity:oidc
LBRYCommunity:fix-videojs-ios
LBRYCommunity:fiat-tip-improvements
LBRYCommunity:test-tom-1
LBRYCommunity:fix-videojs-issues
LBRYCommunity:fix-persistSupportOption
LBRYCommunity:ctrl-txt
LBRYCommunity:add-play-button-on-pause-ios
LBRYCommunity:mobile-ui-bugfix-for-preview-images
LBRYCommunity:fix-livestream-claim-type
LBRYCommunity:playback-controls-2
LBRYCommunity:copy-list
LBRYCommunity:feat-collection-background-publishing
LBRYCommunity:ip/repost.in.homepage
LBRYCommunity:wallet-iteration-2
LBRYCommunity:broken-ads-branch
LBRYCommunity:move-stripe-transactions-to-wallet-fix
LBRYCommunity:lint.autoformat
LBRYCommunity:jessop-stripe
LBRYCommunity:move-transactions
LBRYCommunity:stripe-move-transactions-to-wallet
LBRYCommunity:mater
LBRYCommunity:more-stripe-integration
LBRYCommunity:more-stripe-integration1
LBRYCommunity:desktop-redirect
LBRYCommunity:rss-test
LBRYCommunity:fixed-collectionEdit
LBRYCommunity:watchman-plugin-odysee-anthony
LBRYCommunity:grin
LBRYCommunity:watchman-plugin-odysee
LBRYCommunity:protocol
LBRYCommunity:salt_saved_list
LBRYCommunity:salt-saved_list
LBRYCommunity:watchman-plugin
LBRYCommunity:more-stripe-integration2
LBRYCommunity:salt-savedList
LBRYCommunity:salt/mobile-comments
LBRYCommunity:chromecast-test2
LBRYCommunity:odysee
LBRYCommunity:wpe-on-ody
LBRYCommunity:bring-back-subtitles-button
LBRYCommunity:merge-to-odysee
LBRYCommunity:bugfix-tip-error
LBRYCommunity:popup-fix
LBRYCommunity:favi-cherry
LBRYCommunity:searchDefaults
LBRYCommunity:pin-from-homepages-master
LBRYCommunity:ody-7-22-c
LBRYCommunity:ody-7-22-b
LBRYCommunity:ody-7-22
LBRYCommunity:ody-7-21
LBRYCommunity:cherry.pick.thumbs.fix
LBRYCommunity:ody-rb-7-20c
LBRYCommunity:test-chromecast
LBRYCommunity:ody-7-20-rb
LBRYCommunity:odysee-cnsearch
LBRYCommunity:ody-7-19-b
LBRYCommunity:anthony-odysee
LBRYCommunity:drewhancock-patch-2
LBRYCommunity:horizon-server
LBRYCommunity:feat-nicer-outages
LBRYCommunity:tech-debt/selectors-search
LBRYCommunity:fix-lbry-tv-thumbnails
LBRYCommunity:drewhancock-patch-1
LBRYCommunity:jbnrecsys
LBRYCommunity:feat/disableListEditPending
LBRYCommunity:testapi
LBRYCommunity:bump-lightouse-throttle
LBRYCommunity:popup
LBRYCommunity:replays-rebased-tom
LBRYCommunity:pre-reoll-ads-rebase
LBRYCommunity:julianchandra-patch-1
LBRYCommunity:feat/better-chat
LBRYCommunity:revert-livestream
LBRYCommunity:feat/code-splitting
LBRYCommunity:feat/go-live-forms
LBRYCommunity:UI/drop-down-menu-animation
LBRYCommunity:faster-builds
No reviewers
Labels
Clear labels
Work is part of a proposal
Beamer is waiting on you!
Discuss this issue at the next planning meeting, then remove this label
Welcome to Hacktoberfest
Long-term storage
No knowledge of the existing code required
Some knowledge of the existing code is recommended
Significant knowledge of the existing code is recommended
Intimate knowledge of the existing code is recommended
Solution unclear, needs research
Issue needs to be groomed before work can start
Priority level needs to be defined
Issue needs step-by-step instructions on how to reproduce in latest code
Needs technical design signoff before implementation can begin
Temporarily paused
Issue is blocking release, do ASAP
Work needs to be moved into sprint ASAP
Work should be done but can stay in the backlog for now
Work needs to be done within 2-3 sprints
general redesign not prioritize for anyone release
Requires work on lbry-sdk repo
Existing functionality is wrong or broken
A conversation. No specific changes requested
Existing (or partially existing) functionality needs to be changed
New functionality that does not exist yet
Minimal user-visible changes, but significant internal work
Either work that's not related to the code, or a small chore that does not fit into other categories
Solution needs additional user testing
Work that was not planned into the spirnt, took priority over planned work
accessibility
app-parity
area: creator
area: daemon
area: design
area: devops
area: discovery
area: docs
area: installer
area: internal
area: livestream
area: performance
area: proposal
Work is part of a proposal
area: reposts
area: rewards
area: search
area: security
area: subscriptions
area: sync
area: ux
area: viewer
area: wallet
BEAMER
Beamer is waiting on you!
channel
comments
community PR
consider soon
Discuss this issue at the next planning meeting, then remove this label
core team
css
dependencies
electron
Epic
feature request
first-timers-only
good first issue
hacktoberfest
Welcome to Hacktoberfest
help wanted
hub-dependent
icebox
Long-term storage
Invalid
level: 0
level: 1
No knowledge of the existing code required
level: 2
Some knowledge of the existing code is recommended
level: 3
Significant knowledge of the existing code is recommended
level: 4
Intimate knowledge of the existing code is recommended
merge when green
needs: exploration
Solution unclear, needs research
needs: grooming
Issue needs to be groomed before work can start
needs: priority
Priority level needs to be defined
needs: repro
Issue needs step-by-step instructions on how to reproduce in latest code
needs: tech design
Needs technical design signoff before implementation can begin
notifications
odysee
on hold
Temporarily paused
playlists
priority: blocker
Issue is blocking release, do ASAP
priority: high
Work needs to be moved into sprint ASAP
priority: low
Work should be done but can stay in the backlog for now
priority: medium
Work needs to be done within 2-3 sprints
protocol dependent
recsys
redesign
general redesign not prioritize for anyone release
regression
resilience
sdk dependent
Requires work on lbry-sdk repo
Tom's Wishlist
trending
type: bug
Existing functionality is wrong or broken
type: discussion
A conversation. No specific changes requested
type: improvement
Existing (or partially existing) functionality needs to be changed
type: new feature
New functionality that does not exist yet
type: refactor
Minimal user-visible changes, but significant internal work
type: task
Either work that's not related to the code, or a small chore that does not fit into other categories
type: testing
Solution needs additional user testing
unplanned
Work that was not planned into the spirnt, took priority over planned work
windows
No labels
accessibility
app-parity
area: creator
area: daemon
area: design
area: devops
area: discovery
area: docs
area: installer
area: internal
area: livestream
area: performance
area: proposal
area: reposts
area: rewards
area: search
area: security
area: subscriptions
area: sync
area: ux
area: viewer
area: wallet
BEAMER
channel
comments
community PR
consider soon
core team
css
dependencies
electron
Epic
feature request
first-timers-only
good first issue
hacktoberfest
help wanted
hub-dependent
icebox
Invalid
level: 0
level: 1
level: 2
level: 3
level: 4
merge when green
needs: exploration
needs: grooming
needs: priority
needs: repro
needs: tech design
notifications
odysee
on hold
playlists
priority: blocker
priority: high
priority: low
priority: medium
protocol dependent
recsys
redesign
regression
resilience
sdk dependent
Tom's Wishlist
trending
type: bug
type: discussion
type: improvement
type: new feature
type: refactor
type: task
type: testing
unplanned
windows
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference: LBRYCommunity/lbry-desktop#7214
Reference in a new issue
No description provided.
Delete branch "issue/7152"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Issue Number: 7152
Added download progress and cancel features.
The look and feel is great and the code is clean and readable.
Just pointed out some DRY reuse opportunities a couple bugs and codebase style consistency preferences.
Did you think context menu download was a worthwhile path, or is it better to improve styling on the overlay download?
@ -0,0 +5,4 @@
import { selectPrimaryUri, selectPlayingUri } from 'redux/selectors/content';
import { makeSelectClientSetting } from 'redux/selectors/settings';
const select = (state) => {
I think I'd prefer to use the selector for consistency
4c72a563da/ui/redux/selectors/file_info.js (L6)
return { downloadList: selectFileInfosByOutpoint(state) }
(Object.keys(props.downloadList): any).map(..)
Will fix your inevitable flowtype complaint here :)
does our Button component work here?
All strings can be wrapped in __('some text') for i18n
This could be <Button button="link" label={__('Yes')} /> if it works well.
This {title} should probably link to the FilePage for the content url
Since an item in downloadList includes a claim_id and a claim_name, you can try using something like
Neat to see this done from scratch and in about the same way!
We have this util function:
https://github.com/lbryio/lbry-desktop/blob/master/ui/util/format-bytes.js
I think DownloadProgressItem be clearer? The word "state" takes a second for me to disambiguate.
we can persist this using our usePersistedState() hook
something weird happens here that crashes the app when I play a video.
"cannot read status of null"
redux devtools (which has a bug that 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.@ -0,0 +89,4 @@
}
});
if (!isShow) {
non-blocker, but I wonder if a side-docked indicator component would be better than a floating circle.
Since this feature is only desktop app, related imports should be wrapped with this directive
@ -20,3 +20,3 @@
} from 'lbry-redux';
import { doPurchaseUri } from 'redux/actions/file';
import { doPurchaseUri, doDeleteFile } from 'redux/actions/file';
import { makeSelectCostInfoForUri, Lbryio } from 'lbryinc';
on Refresh, doUpdateLoadStatus doesn't get restarted (I guess this was a noted TODO issue) :( which means the progress gets stuck.
uri passed in seems unused - it doesn't appear to play any role at all according to redux devtools so
doUpdateLoadStatus(null, outpoint)
should work fine to restart it. Stripping it out would be nice though.@ -28,4 +29,4 @@
// 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
// Not needed on web as users aren't actually downloading the file
// @if TARGET='app'
If I refresh, this gets cleared and the progress gets stuck.
This should probably be moved to redux/actions/file and call doDeleteFile
4c72a563da/ui/redux/actions/file.js (L33)
Not a blocker, but this api call could easily add "pause" if it works
https://lbry.tech/api/sdk#file_set_status
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.
I like this color, but maybe it should use var(--color-primary)?
dark mode, unless my .env is messed up
http://getbem.com/naming/
This is our css naming convention, so
download-progress__bar-container
Changes look better, but:
Card overlay download status styling is invisible on dark mode
Download then Playing another created a condition where a download was stuck - and X-ing the download killed the playing video.
Playing a video and then playing another video causes indicator to get stuck at
Infinity minutes NaN
I think it might be better to show download progress for all videos downloading whether playing or not. But perhaps disable the 'x' if currently playing - maybe indicate currently playing as well.
We need to make sure progress X behavior isn't confusing when download progress is what is currently playing.
It is fixed.
It is good idea and I implemented it according to your logic.
this name sounds like a function rather than an array.
downloadsToUpdate?
this could use a comment
@ -0,0 +7,4 @@
import { formatBytes } from 'util/format-bytes';
import { areEqual, removeItem } from 'util/array';
import loadingIcon from '../../../static/img/white_loading.gif';
import darkLoadingIcon from '../../../static/img/dark_loading.gif';
I'm not sure I want the new loading gifs, but it might be ok. @kauffj will look by monday.
@ -0,0 +99,4 @@
onClick={() => setIsShow(true)}
>
<div className="download-progress__current-downloading">
<span className="notification__bubble">
I think we want information about how many, but not urgent distraction of bouncing. And maybe not red (but maybe?)
@ -0,0 +270,4 @@
<div className="download-progress__cancel">
<p>{__('Do you cancel download this file?')}</p>
<div className="download-progress__cancel-confirm">
<Button label={__('Yes')} className="download-progress__cancel-ok" onClick={processStopDownload} />
When this shows up it shifts the whole component - is it a good idea for this to take the place of the X?
having a border, especially high contrast, is a somewhat new pattern. what would make it more consistent with the rest of the app?
try var(--border-radius)
try var(--border-radius)
<hr>
and border elements could be same style as the background preview cards. But I feel like the progress cards could be just a bit different - maybe the button type=alt bg color.Still getting buggy/stuck display with infinity and NaN when clicking from play to play. Not sure what changed.
Check to see if on your branch, the side menu works while on a player page. It seems to work on master, so might be a rebase issue.
clear cache and try again
clear cache and try again.
cleared electron application info, cleared the dist folder, checked that most recent branch is
update css
made sure I didn't have other repos linked locally. Your new bouncing notification button shows up. Playing videos do not show up.confirmed navbar bug and not showing playing video progress item on fresh install on fresh machine. I'm not sure what's wrong or why this might be interfering with reach-ui.
closed in favor of rebase
Pull request closed