Commit graph

735 commits

Author SHA1 Message Date
Louis Sandoval
d58d96b8dd Fixes #5822 display of upload date and view count on smaller screens 2021-04-04 22:51:07 -04:00
infinite-persistence
2037dfbd03 prepareEdit: ensure 'incognito' is false when channel is active.
## Issue
Closes #5720: Edit: channel-selector should re-populate with original channel

## Notes
'incognito' was not set to false, causing the 'ChannelSelector' to select Anonymous.
2021-03-29 08:42:58 +08:00
infinite-persistence
a69512372a Update changelog 2021-03-24 20:56:57 -04:00
Sean Yesmunt
c08e4eed9c prevent release notes from extending beyond height of app 2021-03-18 18:17:10 -04:00
Sean Yesmunt
0011102393 update changelog 2021-03-15 16:28:20 -04:00
Sean Yesmunt
9ae28bb66d bump changelog 2021-03-15 16:19:13 -04:00
infinite-persistence
dc1be2791f Wunderbar: Use typical Home/End behavior instead of ReachUI's.
## Issue
- Closes "Wunder: Keyboard typing confusion" (https://discord.com/channels/362322208485277697/377895389992321064/784309720293965824)
- Closes 5316: "Home and End keys not working in search box"

## New behavior
Home/End key now behaves like it normally would in a typical text box, i.e.:
- Brings you to the start or end position.
- Adding a <Shift> key also selects the text from the current position.

To select the top or bottom item in the Suggestion Popup List, use Ctrl+Home/End instead (without this change, it was just Home/End previously).

## Approach
Adding the listener at the element level allows us to run it before the component's listener.
2021-03-09 15:52:57 -05:00
infinite-persistence
31ec01542f Update changelog with recent customer-facing changes. 2021-03-09 15:44:50 -05:00
Sean Yesmunt
45a603c1d6 update changelog 2021-02-19 15:23:24 -05:00
Jeffrey Fisher
4c97cb4ba4 Enable PDF Viewer in App
Closes #2903
2021-01-28 10:21:35 -05:00
infiinte-persistence
7419fefa2d Zoomable image viewer in Markdown (posts and comments)
## Issue
4899: Ability to expand images in markdown posts for viewing
2021-01-27 10:06:31 -05:00
Sean Yesmunt
6ee0f13383 update changelog 2021-01-26 16:38:25 -05:00
Sean Yesmunt
a178cdba08 update changelog 2021-01-26 15:36:59 -05:00
Sean Yesmunt
e318bb38b4 update changelog 2021-01-26 11:02:23 -05:00
Sean Yesmunt
08f2d7cc40 bump sdk to 0.88.0 2021-01-25 14:24:57 -05:00
Sean Yesmunt
d2dda1f629 update changelog 2021-01-25 14:24:57 -05:00
infiinte-persistence
d0f42ce6b3 Desktop: Enable 'Alt+Left/Right' for history navigation.
## Why
- Consistent behavior across Web and Desktop.
2020-12-30 14:55:24 -05:00
Sean Yesmunt
e677fa21d5 update changelog 2020-12-30 14:02:58 -05:00
infiinte-persistence
897128a168 Restore "Handle timestamp in Markdown."
This reverts the revertion in:
- 85f8965d44.
- d3f0e471e5.
2020-12-18 11:35:47 -05:00
Sean Yesmunt
1168cd291b update changelog 2020-12-15 16:22:40 -05:00
Sean Yesmunt
85f8965d44 Revert "Handle timestamp in Markdown."
This reverts commit 3f1913e5f4.
2020-12-14 22:31:18 -05:00
infiinte-persistence
3f1913e5f4 Handle timestamp in Markdown.
The videojs player is exposed through the 'window' object.
2020-12-14 12:12:50 -05:00
infinite-persistence
04fbde49ec
Video: Mobile UI + overlay for keyboard shortcut feedback (#5119)
Co-authored-by: import <>
2020-12-14 11:40:59 -05:00
infiinte-persistence
a75840ab4d Bump changelog to 0.49.0 2020-12-11 10:18:07 -05:00
Sean Yesmunt
f9c37ecc70 bump lbry-sdk to 0.86.1 2020-12-08 17:19:11 -05:00
Sean Yesmunt
e802827299 bump lbry-sdk to 0.86.0 2020-12-08 10:27:58 -05:00
Sean Yesmunt
1ff2dec93f update changelog 2020-12-03 12:59:00 -05:00
Sean Yesmunt
7a29ebf398 bump lbry-sdk to 0.85.1 2020-11-23 14:03:51 -05:00
infiinte-persistence
28e7fec338 videojs: Add shortcuts for Playback-Rate
">" (shift + .) = Speed Up
"<" (shift + ,) = Speed Down
2020-11-23 13:12:22 -05:00
infiinte-persistence
c9831d1949 Customize scrollbar to fit the theme colors
## Issue
4727: Sidebar's transient scrollbar doesn't fit in the Dark Theme

## Approach
The 'webkit' API works on Chrome, but Firefox ignores it and uses it's own fancy scrollbar when 'webkit' is used (can't seem to change any properties). It's better than the current look, but still doesn't fit our theme, plus it makes the product look different on different browsers.

Firefox now supports the new 'scrollbar' API, so we can now tweak the scrollbar, but the API only provides limited attributes.

Don't wanna complicate things by using Javascript, so we'll use Firefox's limited attributes as the common denominator and just live with a plain, rectangle scroll bar BUT with better color to match the theme.
2020-11-23 11:00:41 -05:00
infiinte-persistence
00350fec80 Hide mouse cursor when video is playing
## Issue:
5044: Auto hide cursor on video on static hover

## Approach
The existing code only hides the cursor when playing in fullscreen. Extend that to normal mode as well.

## Extra
Add in few new strings
2020-11-17 12:53:01 -05:00
infiinte-persistence
18debf51cd FloatingPlayer: fix unusable volume slider in fp-mode
4913: Can't slide volume slider in pop out mode

I first tried to handle this at the floating player level, but it was impossible to hack there due to how 'react-draggable' works (it already moved the window before the "move" handler is called, so we can't do much).

Fix by overriding the dragging behavior of the videojs' VolumeBar class by not propagating the event further. It is odd that videojs didn't already do this, since it's SeekBar does stop the propagation.
2020-11-16 10:38:29 -05:00
infiinte-persistence
dfef97d715 claim_search: Don't clear past page results if subsequent pages timeout.
## Issue
4609: If claim search on latter page fails, don't clear out all previous data

## Note
This requires an accompanying change in `lbry-redux` to mark `claimSearchResultLastPageReached` during timeout and to not purge past results.

## Change
The previous flow was: increment the page, and expect the next render to either be 0 (timeout + purge) or fill in at least 1 new item.

Since it is now possible for no results to be returned for the new page (due to timeout + no purging), the code continues to make another query. This commit stops the perpetual querying.

## Test Case:
1. https://lbry.tv/$/discover?t=imherelbry&content=video&order=top&fresh=year
2. Scroll down a few pages until it timeout happens. Past results are gone.
2020-11-13 13:23:50 -05:00
Sean Yesmunt
4755a7b57f update changelog 2020-11-02 17:27:08 -05:00
Sean Yesmunt
dc6267f757 update changelog 2020-10-19 23:37:39 -04:00
Sean Yesmunt
2311fbdaae update changelog 2020-10-16 13:05:56 -04:00
Sean Yesmunt
bcb65cd9fa update changelog 2020-10-15 14:32:58 -04:00
Sean Yesmunt
efb03d016b bump sdk to 0.83.0 2020-10-12 15:01:24 -04:00
Sean Yesmunt
a59e0c928f update changelog 2020-10-08 12:20:59 -04:00
Sean Yesmunt
0ea287a7bf update changelog 2020-10-08 10:53:46 -04:00
infiinte-persistence
329f6b3da6 Comment: Change 'shift+enter' to 'ctrl|cmd+enter' for quick submit.
ctrl+enter is generally used for this action, while shift+enter generally used to insert a <br>.
2020-10-06 02:02:11 -04:00
infiinte-persistence
108a898ebf Expandable: Fade out section when 'closed'
## Issue
The abrupt cut-off of the expandable section bugs me (looks like a rendering glitch), especially when it cuts off in the middle of a line.

## Change
In addition to the existing 'More' button, we fade out the section to provide additional visual cues.

## Approach
This solution doesn't require the background color to be known, so it will work regardless where <Expandable> is used, or whatever color-scheme is chosen.

However, it does utilize non-standard css -- for older browsers, it should simply cut-off like the before.
2020-10-02 11:54:43 -04:00
infiinte-persistence
589903f5e8 PublishPreview: strings and changelog 2020-10-02 10:25:17 -04:00
Sean Yesmunt
1f2fabe81b Use sentence case for all card titles 2020-09-29 17:12:32 -04:00
infiinte-persistence
5b897e5748 Corrected version in changelog 2020-09-29 12:09:16 -04:00
Sean Yesmunt
68ef9a0561 update changelog 2020-09-23 11:52:10 -04:00
infiinte-persistence
6a73e02bf1 Fix "Price=free" giving 0 results in Following query
## Issue
Fixes 4477: `Price="free" yields nothing`

## Remarks
I didn't consult the documentation, but simply did a trial-and-error.
"=0" -- didn't work
"<=0" -- works
2020-09-21 12:22:33 -04:00
infiinte-persistence
dbcd677e69 MDE: Replace the iframe with a stub in "edit + preview" mode.
## Issue
4644: Markdown Preview breaks when <iframe> is present

Error: "Invariant violation: could not find 'store' ..."

## Change
Until we figure out a way to pass the store to the SimpleMDE preview formatter, just replace the embed with a stub region.
2020-09-16 16:15:27 -04:00
infiinte-persistence
4fc5a018e5 Clear 'passwordSet*' flags too in USER_PASSWORD_SET_CLEAR
## Issue
4749: "Password updated successfully" kept showing up

## Change
In addition to the `passwordReset*` variables, reset the `passwordSet*` variables as well for `USER_PASSWORD_SET_CLEAR`.
2020-09-15 12:52:12 -04:00
Sean Yesmunt
3308b152c9 update changelog 2020-09-10 14:36:11 -04:00
infiinte-persistence
e784107a0b FloatingPlayer: Stay within screen when window is resized
## Issue
4741: `Pop out player disappears or is cut off`

## Approach:
- When dragging stops, determine the location of the floating player with respect to the main window in terms of percentage.
- When window is resized, roughly re-position based on the stored percentage.
2020-09-10 11:06:35 -04:00
infiinte-persistence
202269ebeb Web: Fix 'Download' not triggering until second attempt
## Issue
4669: `Download doesn't trigger on web until 2nd attempt`

The issue only happens when _Autoplay_ is disabled in the User Settings and the video hasn't been loaded when _Download_ is clicked.

The following code:
   `if (didClickDownloadButton && streamingUrl)`
didn't triggered because:
1. `streamingUrl` has not resolved yet when the Effect ran.
2. When it did resolve, the parent component was also notified and unmounted things, causing `didClickDownloadButton` to reset.

## Approach
Avoid the unnecessary unmounting by not using a conditional section wrapper within a return statement. React probably couldn't do the diffs when the conditional is at a section level.
2020-09-04 11:52:38 -04:00
infiinte-persistence
7edd9f7c92 Fix partially untranslated text in the Upgrade Modal
## Issue
- "See the" was not encapsulated with the translation macro.
- Split-strings are not translatable for some languages.

## Change
Combine the entire sentence into a single string with variable.
2020-09-04 11:51:31 -04:00
infiinte-persistence
2e1d7fde1a Fix floating player being paused after dragging.
## Issue
Fixes 4709 `Dragging floating player via video section pauses video`

## Changes
Don't propagate the key-up action if the window was dragged. Hopefully there isn't another sub-component that relies on the action being propagated.

## Note
If you drag at exactly the "Play" icon the control bar, the issue still happens.
2020-08-27 13:59:25 -04:00
infiinte-persistence
9e3fe5de37 Fix changelog
- Added entry for the new "in-app editor"
- Fixed URL and sentence (made a guess on what it was supposed to be) for the file-property icon location change.
- Fixed missing parenthesis.
2020-08-21 00:17:02 -04:00
Sean Yesmunt
964a8f7031 update changelog 2020-08-20 01:26:21 -04:00
Newbyte
2525dcf983 Implement OpenSearch support 2020-08-12 13:35:49 -04:00
infiinte-persistence
c75bab5979 Tip Modal: Don't do final submit when the intention is to create New Channel.
## Issue
Fixes `4544 Channel-creation in "Tip|Support" Modal shouldn't submit LBC immediately`

## Changes
`Form` seems to have already tried to stop the propagation of `onSubmit`, so I'm not sure why it was still propagated.

Fix by using the same method used in the `CommentCreate`, which is simply to check for `CHANNEL_NEW` as the current selection.
2020-08-05 13:01:29 -04:00
infiinte-persistence
37a1fd88e3 selectChannel: sync auto-resolved value during mounting.
## Issue
Fixes `4621 Can't create Comments if you recently deleted a channel`

The `channel` that the parent passes in is from a persisted state. If the channel has been deleted, `<select>` will automatically resolve to another selectable value. However, `onChange` will not be called for this scenario, so we now have a mismatch.

## Changes
- Manually check if the value has been auto-resolved and report it to the parent.
- An extra `setTimeout` was needed. It seems like `onChannelChange` needs to be called after the first `useEffect` of the parent, otherwise the call has no effect.
2020-08-05 12:59:54 -04:00
infiinte-persistence
93d26a0ebb Fix 'Comments' being loaded on Autoplay despite not visible. 2020-07-29 17:56:38 -04:00
infiinte-persistence
f53bda865c Fix changelog for 0.47.1 2020-07-27 10:35:58 -04:00
infiinte-persistence
4c57cdd99f Block mature content when accessed directly from URL
## Issue:
Fixes 4549 `Mature content + navigating to URLs directly`
_If a user navigates to mature content directly, we currently show the page even if mature content setting is not enabled. With our recent mature content verification setting, we should hide the page until the user turns it on - we can prompt directly on the file page._

## Changes:
1. Show basic info of the claim like URL and Title, so that user knows which page is being blocked.
2. Initially, I had 2 "boxes" -- one for the title and another for the message. It felt a bit messy, so `FileTitle` was augmented to house everything in one box.
2020-07-24 16:59:02 -04:00
infiinte-persistence
2f5beb84fa Fix sluggish Back button when navigation back to channels with lots of comments
## Issue
When navigating back and forth between a File and Channel page, the back-action will be laggy (no response) if the channel contains a lot of comments and is in the midst of resolving them.

## Changes
The "full" fix would be to batch-load comments, as this would improve the performance of fetching both Channel and File comments. For now, this commit focuses on the Back action problem only.

Skip fetching comments by not mounting 'ChannelDiscussion' until the tab is selected. I couldn't find anything in the Reach UI documentation on how to not render inactive `TabPanel`s, so I used the straight-forward state method.
2020-07-24 09:22:35 -04:00
Sean Yesmunt
f7a13ab52e update changelog 2020-07-22 14:24:42 -04:00
Sean Yesmunt
b7f3dcad76 remove paid content reward claim 2020-07-22 12:58:20 -04:00
infiinte-persistence
ca4dd9e246 New Channel: Fix incorrect GUI configuration at entry
## Issue:
Fixes 4411 `"SelectChannel=New" doesn't show all fields on re-entry`

## Code Changes:
`selectChannel`: Correct the value of `addingChannel` in the constructor based on the given props.
2020-07-20 11:36:36 -04:00
infiinte-persistence
60af367b18 Fix channel file-search not available in mobile
## Issue
Fixes 4524 `[mobile] in channel search not available`

## Changes
There are currently 3 wunderbars: (1) header (2) channel list (3) downloaded list.

The additional `wrapperStyle` in the header made it hard to find a solution that works for all 3, so I split 2 and 3 into `wunderbar__input--inline`.
2020-07-20 10:37:10 -04:00
infiinte-persistence
f31369a16d Fix 'transcoding' checkbox state when switching file types.
## Issue:
Currently, the checkbox grayed-out state is only correctly updated when changing from "no-file" to "file selected". If you have selected a video file and later changed to a text file, the checkbox doesn't gray out.

## Code Changes:
`fileVid` wasn't being updated for the case of non-videos; now it does.
2020-07-20 09:57:59 -04:00
infiinte-persistence
7bef092013 Add option to retry video stream on failure
## Issue
Closes 4475 Option to retry video stream on failure
2020-07-15 16:10:10 -04:00
infiinte-persistence
cba2ccf1cb Show "YT Creator" label in File Page as well.
## Issue
Closes 3964 `Add Youtuber info to file page`

## Changes
(1) Refactor the YT-info query into `YoutubeBadge` component.
(2) For the File Page case, don't show "- last sync <date>" since the date has nothing to do with the file.

## Test
[x] YT Channel page
[x] YT Channel's claim page
[x] Non YT Channel page
[x] Non YT Channel's claim page
[x] No channel (anonymous) claim page
[x] Various RENDER_MODES
2020-07-15 15:27:03 -04:00
infiinte-persistence
2ea66f9d8d Refactor zooming code into "effects/use-zoom.js" 2020-07-14 16:08:24 -04:00
infiinte-persistence
bc19503419 Allow zooming on Desktop
## Issue
Closes 4501 `Font size`

## New behavior
The Desktop app can now zoom the same way as browsers:
- Zoom In: "Ctrl+=" or "Ctrl+numpadPlus" or "Ctrl+WheelUp"
- Zoom Out: "Ctrl+-" or "Ctrl+numpadMinus" or "Ctrl+WheelDown"
- Zoom Reset: "Ctrl+0" or "Ctrl+numpad0"

## Code changes
(1) Electron provides this functionality through the `zoomIn|zoomOut|resetZoom` roles in the Menu, so it would have been a quick job.

However, given that Electron currently does not support having multiple accelerators for one item, we can't add `Ctrl+WheelUp` to the mix and would have to implement our own handler and use `webFrame`.

Given that we need to add code anyways, we handle both keyboard and mouse cases through the same handler, hence the existence of `zoomWindow.js`.  It also provides the opportunity to few a few quirks with Electron's default implementation (e.g. stuck at both extremes)

(2) I recall there is another Issue for adding keyboard shortcuts.  Given that these shortcuts are universally used in browsers, they are probably "reserved", so shouldn't clash with that task.
2020-07-14 16:08:24 -04:00
infiinte-persistence
2754c962a4 Inf-scroll: Fix glitch when results are exactly the page size.
## Issue
Fixes 2675 `Claim search with exactly 20 results keep fetching next page`

## Changes
Use `claimSearchResultLastPageReached` (I didn't know it existed back then).

The unnecessary "loading" refresh will still happen one time, but at least now it doesn't happen every time we scroll to the bottom (and incorrectly incrementing 'page').
2020-07-14 16:05:42 -04:00
Sean Yesmunt
03136cef19 update changelog 2020-07-13 12:23:47 -04:00
Sean Yesmunt
856cc41f39 comment out lbry-first code 2020-07-13 10:03:00 -04:00
Sean Yesmunt
c9de6031c9 update changelog 2020-07-10 10:42:39 -04:00
infiinte-persistence
3f8d447b2a Add 'Forgot Password' button when changing passwords in the Settings Page.
This will directly go into the Reset Password page. This scenario is only possible after already signed in.
2020-07-08 14:36:04 -04:00
infiinte-persistence
19a94d3039 Revert "Add password reset ... (4468)" to redo using redirect page method. 2020-07-08 14:36:04 -04:00
infiinte-persistence
e5c4246e15 Add password reset link to settings page (4468) 2020-07-08 14:36:04 -04:00
Sean Yesmunt
d6f198afca update changelog 2020-07-08 14:23:43 -04:00
Sean Yesmunt
f53bf6817c bump lbry-sdk to 0.77.0 2020-07-07 09:41:34 -04:00
infiinte-persistence
92be15ae04 ShareModal: Change "..." icon to "Links" 2020-07-07 09:29:05 -04:00
infiinte-persistence
12db7c519f Revert the Links Modal; we'll augment the Share Modal to include the download link.
This reverts commit cb47ed61375b4de32adacd89ce46d5da183150b5.
2020-07-07 09:29:05 -04:00
infiinte-persistence
3a2284a244 Add dialog to copy various types of links for a claim.
## Issue
Fixes 4293 `Better download link support`

- [x] make it so you can right click a download button > copy download URL
   Given that this could be useful in mobile/web as well, I used a button+modal instead of the right-click approach.

- [ ] in share dialog, show download URL to copy for non-video content
   This is already implemented, albeit hidden in the "More..." expansion.
2020-07-07 09:29:05 -04:00
infiinte-persistence
833bceeacc Fix unmuted state lost or reverted when playing a new video.
## Issue
Fixes 4460 `unmuted state lost / reverted`

1. Play a video.
2. Press mute.
3. Drag the volume bar to unmute.
4. Play a new video --> the video starts muted.

## Fix
The `volumechange` handler was comparing against stale variables, so there are times where the state was not saved. Just save both `muted` and `volume` without additional gating (the gating is probably unnecessary in the first place, since we are in a onChange function).
2020-07-07 09:28:04 -04:00
Sean Yesmunt
7e8a8dbdec update changelog 2020-07-06 21:27:02 -04:00
infiinte-persistence
f50eb2b5ab Update changelog 2020-07-06 09:42:16 -04:00
infiinte-persistence
192bf12a0e refresh youtube creator status when switching between channels
Issue 3750
2020-06-29 10:19:05 -04:00
infiinte-persistence
7839bbf2a1 Fix language-change not applied to all components immediately.
## Fixes:
3641 Language switch does not take effect right away

## Assessment:
Although `Card`s in the Settings Page are actually being re-rendered, the `actions` within them might not be getting the signal, depending on their props.

## Changes:
(1) Pass the language variable to the `actions`'s props for items that are affected.
(2) Make the Wunderbar listen to language-changes as well (the only component outside of Settings that would need an immediate update).
2020-06-29 09:48:12 -04:00
infiinte-persistence
b010325618 Pause 'Autoplay': cleanup
1. Use a constant for the classname instead of being hardcoded.
2. Use existing 'debounce' function instead of introducing another.
3. Added changelog entry.
2020-06-25 00:23:47 -04:00
infiinte-persistence
d7b1cde274 Add claim-overwrite prevention.
---Fixes:
#-2882: "Fix UX around publishing to already published URL".

---Changes:
1. Improved the error message (change color to red; emphasized the URL; tweaked the sentences a bit).
2. The `Publish` button will be grayed out in this scenario, until user explicitly decides to edit existing claim instead.
2020-06-22 15:21:42 -04:00
Sean Yesmunt
f69792770b update changelog 2020-06-22 09:53:10 -04:00
Sean Yesmunt
cc6ca19a62 update changelog 2020-06-16 17:14:22 -04:00
eatdostacos
178fcf28c9 Add new unreleased version to changelog 2020-06-16 09:12:43 -04:00
Sean Yesmunt
06bc2da427 update changelog 2020-06-10 12:21:56 -04:00
eatdostacos
5757ec9a86 Change some Change Logs to Changelogs 2020-06-09 09:28:08 -04:00
Sean Yesmunt
c658ee8123 update changelog 2020-06-08 16:30:14 -04:00
eatdostacos
8d7cc3c93d Changelog update for Catalan support 2020-06-05 13:11:44 -04:00
infiinte-persistence
50fc2698d6 Add StatusBar into Page for 'app' only.
#3776 #4259
2020-06-04 10:31:06 -04:00
Sean Yesmunt
aabcd9690a bump lbry-sdk to 0.75.0 2020-06-03 16:25:06 -04:00