Commit graph

3795 commits

Author SHA1 Message Date
infinite-persistence
05a1f3cdab
More theme color fixes
## Issue
#5998 Theme color problems
2021-06-07 11:36:38 +08:00
infinite-persistence
3abaed0f17
Sort all language dropdowns, not just in the Settings Page. 2021-06-07 10:15:07 +08:00
infinite-persistence
bd8172693c Re-enable "file download" in Odysee
## Issue
Closes 6167 Make downloading more intuitive / obvious in web mode
2021-06-07 09:18:08 +08:00
infinite-persistence
fae90c4ba1
i18n update
- Screen readers will announce an <img> tag as that, so no need to say "image" again in the `alt` text.
2021-06-07 09:15:55 +08:00
infinite-persistence
f1bf067ebd Combine Buy and Swap
## Issue
5873 Unify swap and buy flow // swaps round 2

## Changes
- Added "Buy|Swap" tab in the Buy Page and display the Swap component when needed.
- Removed 'Swap' button from Wallet Page.
- "Buy More" and related tooltips updated to "Buy or Swap Credits".
2021-06-05 10:07:38 +08:00
Anthony
272eb90392 remove native controls for ios 2021-06-04 15:41:42 -04:00
Anthony
eef218a807 use video js viewer for ios and add playsinline 2021-06-04 15:41:42 -04:00
Thomas Zarebczan
b8c5a0ed29
Add support for reward approval prompt 2021-06-03 14:54:06 -04:00
zeppi
3ce551f106 copy 2021-06-03 12:08:46 -04:00
zeppi
28a3db28b7 use tag to disable interactions on livestreams 2021-06-03 12:08:46 -04:00
saltrafael
213c336192 fix multi line links 2021-06-03 10:56:28 -04:00
zeppi
f386352be3 fix lint 2021-06-02 22:42:50 -04:00
Jeremy Kauffman
22447aa20a
shorter text on sign up 2021-06-02 13:42:30 -04:00
Jeremy Kauffman
417f0a853b
eliminate text wrapping on sign in 2021-06-02 13:41:06 -04:00
infinite-persistence
a613f28bc8 Login graphic improvements
1. Lock the width of the second pane so that the layout doesn't shift after the image is fetched.
2. The image is huge, so pass through the optimizer.
  - Wait until the container is mounted to get the exact image width.

Unfortunately, it still takes 0.8s on average to fetch the image, regardless of how small the image has been optimized.
Login graphic improvements

1. Lock the width of the second pane so that the layout doesn't shift after the image is fetched.
2. The image is huge, so pass through the optimizer.
  - Wait until the container is mounted to get the exact image width.

Unfortunately, it still takes 1s (on average) to fetch the image, regardless of how small the image has been optimized.
2021-06-02 08:24:35 +08:00
infinite-persistence
15015dacd7 Performance: don't spread in 'reduce' 2021-06-02 08:21:43 +08:00
infinite-persistence
dec38e1770 ChannelThumbnail: use 1x1 transparent image as starting point instead of 'undefined'.
## Issue
6135

While waiting for the lazy-loader IntersectionObserver to initialize, and for the real image to be fetched, an undefined `src` results in the "broken image" thumbnail.

## Fix
Use a transparent image as the starting point. This visually retains the current behavior but minus the "broken image" part.
2021-06-02 08:20:37 +08:00
infinite-persistence
8da7ddf6e6 Parallelize 'channel_sign' calls.
## Issue
If the account has lots of channels, each channel name was sequentially signed, delaying the final action.
2021-06-01 13:39:53 -04:00
infinite-persistence
eba8de1cda i18n update 2021-06-01 13:33:58 -04:00
infinite-persistence
315bbe21b1 Open the sidebar by default
## Issue
Closes "6112 Side menu expanded by default unless collapsed by user"
2021-06-01 11:16:08 -04:00
infinite-persistence
d6d1cf58e9 Fix SidebarNavigation key errors 2021-06-01 11:15:30 -04:00
infinite-persistence
27a9f654d4 Bump up notification content width to show more text
## Issue
Closes "6056 Extend notificaiton text to show more characters"

## Notes
Looking at the code and comments, I couldn't figure out what was the reason for adding the width constraint (just in case this breaks something).

My guesses:
- Try not to make the rhs thumbnail too far apart from the lhs thumbnail.
- Try not to make the rhs thumbnail misaligned due to dynamic width of the "xx days ago" string on the far right.

## Changes:
Extended the width as much as possible, while retaining some gap before the "xx days ago" string and "unread dot" so that thumbnails stay align in the general case.

The components still reflows nicely (as it did previously) per window-size.
2021-06-01 11:15:04 -04:00
Thomas Zarebczan
97a4f5fcab
Fix metadata and make thumbs work 2021-05-27 17:00:19 -04:00
infinite-persistence
6043b6101b ClaimTilesDiscover: pause visual update until new results are fetched
## Issue
GUI fix for 5979 `claim search runs twice sometimes and "refreshes" view`

The search query might encounter minor alterations after rendered (e.g. for the case of 5979, the `moderation.Blocklist` data came late). The code currently resets the result to 0 before initiating `claim_search`, so we see the GUI blink.

## Idea
There is a possibility that the query-change does not alter the final results in the end. Instead of reseting to the results to zero, hold on to the previous results until the fetch is done.

## Known issue
The tiles no longer blink if there is no change, but the "LIVE" indicator still does. I didn't want to propagate the info too deep, so leaving as is for now. It can be considered a feature ("blinking LIVE indicator" :))

## Results
- No blinking if results stay the same.
- Minimal tile-shifting if new ones are added or removed.
- In the current Odysee homepage, reduced React commits from 88 to 76 (save some CPU cycles).
2021-05-27 13:50:59 -04:00
zeppi
a6e76bab31 fix: ignore flow linter promise allsettled 2021-05-27 12:17:23 -04:00
infinite-persistence
1b3fec0452 Add sign-in graphics for SIMPLE_SITE
Homepages repo: `Issue 64 - Add new graphics to odysee sign in`
2021-05-27 14:21:16 +08:00
saltrafael
19055784ff fix recipient address mobile view 2021-05-27 00:54:42 -04:00
infinite-persistence
f8e1274c38 Fix broken Comments API due to surfacing of error
## Issue
The "Muted Words" PR elevated Comment-API errors so we can handle it (previously, it goes unnoticed). This broke the other Comment functions because the spammer mitigation might return an error, causing `Promise.all` to bail early.

## Fix
Changed to `Promise.allSettled` and reconstructed the results. This will make it equivalent to the code prior to the "Muted Words" PR.
2021-05-27 00:54:12 -04:00
infinite-persistence
06c6018047 Creator Settings now require a minimum staked LBC. 2021-05-26 15:38:29 -04:00
infinite-persistence
112947adc6 Hide Creator Settings that are not ready 2021-05-26 15:38:29 -04:00
infinite-persistence
82aaf361f1 Hide "control tags" except when creating/editing claims.
## Changes:
1) TagSearch: hide the "control tags" in the Creator Settings page (irrelevant).
2) TagSearch: show the "control tags" when creating/editing Channel (let's use `setting.CommentsEnabled` instead).
3) TagSearch: show the "control tags" when creating/editing Content (`disable-comments` can be used to block comments at the per-claim level, e.g. allow comments in general but block only for specific claims).

## Missing pieces:
For (2) and (3), some work is needed to hide the comment GUI when `setting.CommentsEnabled` is disabled for a particular channel. That flag is not ready in Commentron yet, so I'm not sure how this will be done at the moment. In other words, the checkbox does nothing at the moment.

## Potential flaw:
This change will hide all control tags. If we have more tags in the future and would like to selectively disable some, we'll have to change this parameter to an array instead. Since the usage is not widespread at the moment, a single `disableControlFlag` seems cleaner (don't over-think it yet).
2021-05-26 15:38:29 -04:00
infinite-persistence
8050fa24b2 Relay and beautify 'blocked words' error message 2021-05-26 15:38:29 -04:00
infinite-persistence
2b70ad667b Add/implement SettingsCreatorPage 2021-05-26 15:38:29 -04:00
infinite-persistence
54b17ee739 Commentron Settings API 2021-05-26 15:38:29 -04:00
infinite-persistence
3b1397badc fetchCommentsApi: Relay error messages to the client's 'catch' block. 2021-05-26 15:38:29 -04:00
infinite-persistence
b2c2096da5 TagsSearch: tweaks to allow re-use beyond tags
- Allow 'followed' and 'unfollowed' list to be overridden via props.
- Allow labels to be overridden via props.
- Add ability to disable "Suggestions"
2021-05-26 15:38:29 -04:00
infinite-persistence
1008724761 Fix lint 2021-05-26 15:38:29 -04:00
infinite-persistence
cded632fd2
DateTime: avoid unnecessary update (#6110)
## Issue
Part of `5834 Performance investigation`

In a homepage with 120 tiles, the lists get rendered 3 times during initial update. The sub-components are updating recursively (will investigate), so instead of 120 DateTime renders, we have 1000+ renders.

The resolved DateTime string for `timeAgo` rarely changes, and even if the string was "a few seconds ago", there's no real need to constantly update it.

## Change
Require a minimum 1-minute delta when deciding whether the component should update. Clients can change this value as needed.

## Test
- [x] Verified `shouldComponentUpdate` doesn't end up taking more time than not having it (it's in micro-second range, compared to the millisecond render).
- [x] Profiler showed no significant improvement for low number of DateTime components, but for the 120 DateTime case, almost 1/4 of a second is saved.
2021-05-24 18:29:58 -04:00
infinite-persistence
9e13596104 Fix 5932 "no way to buy Paid Images or Posts"
- FileRenderInitiator: we don't display if it's not Audio or Video ("playables"). But only do that if it's free or was purchased, otherwise there's no button to buy it.

- FileRenderInline: if the user have not purchased it, don't show anything (not even the spinner).
2021-05-24 11:07:13 -04:00
infinite-persistence
b101cb304f Auto fetch paid-content if already paid.
Seems odd to force users to manually "play" purchased files.
2021-05-24 11:07:13 -04:00
Thomas Zarebczan
b4da616176
Fetch last 75 comments for livestreams
We only show 75 anyway...
2021-05-21 15:48:43 -04:00
infinite-persistence
09d8b38073
Markdown editor tweaks (#6096)
* Markdown: make '>Quote' look less like a banner

Quotes should be subtle as it is primarily intended for redundant content, but currently it looks more like a banner that brings lots of focus.

This change is also background-independent. Currently, the Quotes in Posts doesn't look like it has a background color, because it happened to be the same as the Post's background. This makes it inconsistent with Quotes in Comments. Let's just always make it blend in + grayish text.

* Markdown: inline code tweak

- better symmetry
- less spacing to the left and right, since it's common to already have a space in the sentence (even if it doesn't, like in CJK, the new spacing looks sufficient).

* 4481: Use regular font in Markdown Editor

I think we should not use Monospace fonts for the Markdown Editor since we are not coding.

Similar to Github, code-blocks and inline-code only gets converted to monospace in the Preview.
2021-05-20 15:31:14 -04:00
saltrafael
2852138c3a
allow sending directly to a channel or content address (#5990)
* allow sending directly to a channel or content address
2021-05-20 15:30:40 -04:00
infinite-persistence
200dc66763
Fix "Buy More" button touching the presets (#6094) 2021-05-20 15:20:13 -04:00
infinite-persistence
c8659cc44b
More theme color fixes (#6095)
## Issue
- Closes 5998 Theme color problems
  - "_Seeing the theme go blue when a modal pops up. There's a change in color on Odysee branch also when this happens (but not as apparent)_"

##
1. Fix overlay background color back to gray theme.
2. Also, fixed the Active Toggle Button back to primary colors.
3. Fix hard-to-read "videojs time tooltip". Using the primary colors is a nice touch, but people have complained in Discord that it's too dim given it's transparent background. Just use 'white' instead. Don't use '--color-white' since that's a bit dimmed down.
4. Fix odd highlight in the volume slider (the bright primary color was used in the background).
2021-05-20 15:20:01 -04:00
infinite-persistence
9c28bc9a83
Theme color fixes (master) (#6088)
* Fix error text color for dark mode.

Don't alter --color-danger since that color works fine as a backdrop for the Toast Message.

* Remove duplicates

* Fix typo

* Fix primary/secondary button and notice_message

* Fix dimmed checkbox

* #6006 Switch from 'coolGray' to 'gray'

* Fix invisible nag (missing --color-orange)
2021-05-19 11:57:33 -04:00
infinite-persistence
2dac41e5e5
Mute video when autoplay is blocked by browser policy (#6087)
## Issue
When opening a video directly in Chrome Incognito, the video should autoplay (since that's the default Lbry setting), but it doesn't due to browser policy
https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

## Changes
- We don't want to forcefully mute the video when `autoplay=true`; we just want to do it when the browser policy is applied.
- Fortunately, there is already an existing code-block for us to check that.

## Test cases
- [x] "Autoplay=Off" should not be affected.
- [x] After manually unmuting, the next autoplayed video should not be muted (this is "user interacted" opening, so the policy allows autoplay)
- [x] If manually muting, the next autoplayed video should retain user's last setting.

## Known issues
- I've seen `error` occasionally being undefined in the `catch` block. In those cases, the solution doesn't work. We could remove `if (player.autoplay() && !player.muted())` and simply just try muting it, but for now it's better to ensure `NotAllowedError` is due to unmuted first before applying the fix.
- This doesn't work for Firefox as there is an explicit "Allow Autoplay" button in the address bar that user needs to click themselves. Applies to all sites.
2021-05-19 11:56:54 -04:00
infinite-persistence
df03cf1032
Skip thumbnail fetch if autoplay is ON (#6084)
It's useful to show the thumbnail as the player's backdrop when Video Autoplay is OFF, but it's a wasted fetch when it's ON because the videojs component will be blocking it.

Although it's the same image as the ClaimPreview, this one will be in full size, so a fetch will always happen.

Aside: videojs handles the backdrop for the audio and embed case, so this change won't affect those items.
```
  <VideoJs
    poster={isAudio || (embedded && !autoplayIfEmbedded) ? thumbnail : ''}
  />
```

Future: for "mobile + autoplay=OFF", we should consider using the optimized thumbnail. 6074 should help.
2021-05-18 01:48:23 -04:00
saltrafael
31a84828cc
improve logic for own comments showing first (#6073) 2021-05-17 15:55:23 -04:00
infinite-persistence
2a6df18b72
ChannelThumbnail fixes (#6075)
* Restore "use cdn for channel thumbnails"

This reverts commit e7adc607fa.

* ChannelThumbnail: disable optimization in Channel Page and for GIFs

## Issue
5564: Don't use optimized URLs on channel pages (profile/banner)

## Notes
This is not the best/full solution yet, but it is better than what we have to today (one step in the right direction).

Optimized channel thumbnail size is currently hardcoded to a lowest common denominator.
- Pro(s):
  - For images used in multiple places (different sizes) in a page, the total time needed to get the optimized version for each size is too much. Also, the optimizer seems to increase the size of the image in some cases. So, getting 1 image and re-using it is faster for this scenario.
  - Simpler code (no need to mount first -> get dimension -> load image)
- Cons:
  - We aren't fully optimizing the size, so not really addressing Core Web Vitals score problem.
    - e.g. in the front page, we could have used a smaller image for the channel thumbnails.
  - We haven't address the problem with large screen sizes.

* Restore channel selector

This reverts b5cc0bb42d

* ChannelThumbnail: fix lazy-loading

- Closes 6066: Revisit lazy-loading Channel thumbnails
- Properly fixes 5933: Thumbnail lazy-load causes ChannelSelector icon to not update.
    - Add effect-dependency on `channelThumbnail` and `thumbError`.
- Really perform the lazy-loading now.
    - `data-src` was not used, so it wasn't actually lazy loading previously.
2021-05-17 15:51:21 -04:00
infinite-persistence
73f6d207ea Restore "Autoplay media files" behavior
## Issue
Closes 6078 `"Autoplay media files = disable" is broken`

`if (-1)` is "truthy"
2021-05-18 01:57:16 +08:00
infinite-persistence
354027a5f4
i18n update (#6039)
* Don't translate non-English strings

This requires an accompanying change in the homepages repo.

* Translate swap errors.

* i18n update

- Add missing sub-strings.
- Removed 'video stonks'.
- Added 'Nothing here...'
- Updated notifications drop-down strings.
- Add latest "mayo" meme.

* Remove strings that can't be translated due to dynamic values.
2021-05-15 02:01:00 -04:00
mayeaux
2292f790a0
force autoplay when timestamped (#6064) 2021-05-15 01:59:21 -04:00
saltrafael
3131b48c77
Fix blocking/muting issues on channel pages (#6034)
* dont use no_channel_ids on channel content claim search

* ClaimMenuList not filtering own content initially

* fix errors

Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-05-15 01:53:56 -04:00
infinite-persistence
c85d7f12c8
Livestream-only query cleanup. (#6036)
This completes the change in c24c016e, covering ClaimListDiscover as well.
2021-05-15 01:52:24 -04:00
saltrafael
e5795baa10
own comments show first in controversial / best #5905 (#5939)
* own comments show first in controversial / best #5905

* workaround to place my recent comment at the top

* only most recent comment

* lint fix

Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-05-15 00:56:58 -04:00
infinite-persistence
698bd5eef1
Continuation of "Add release date field #5514" (#6049)
* Release date -- initial attempt (squashed and rebased)

- Use white color for calendar buttons in release date input
- Update icon color for release date input
- Allow to set time in release date and display it under additional options
- Add release date field

* Upgrade to latest react-datetime-picker.

I believe this also picks up the y18n security fix.

* Handle dark theme and general style fixes.

* [+redux] Change how release_time is edited.

- `releaseTime` is now a number instead of a string, matching `release_time`. It was getting confusing what the variable units were.

- `releaseTime` will always match `release_time` for an edit. It will be used in the GUI to reset just the date to the original, instead of having to reset the entire form.

- `releaseTimeEdited` will be used by `updatePublishForm` in the GUI to represent the desired new release time. Set to `undefined` if we don't want to change the date.

* Add 'Reset|Now|Default' buttons instead of overloading the date-picker's "X" button.

Before this, the "X" button resets to the original (previous) publish date for Edits, and resets to current time for New Claims. This is very confusing, so added explicit text-based buttons -- hopefully this is more intuitive.

* bump redux to master

Co-authored-by: Franco Montenegro <franco.montenegro.ruke@gmail.com>
Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-05-15 00:10:28 -04:00
Thomas Zarebczan
2bbdbf4ed8
Fix mobile view with long descriptions 2021-05-14 13:51:55 -04:00
infinite-persistence
4dc333de41
Fix blank gif avatars (#6060)
## Issue
6010: hyperchat send display issues with GIF profiles

The FreezeFrameWrapper have no `src` to freeze due to the lazy loading.

## Fix
Delay the freezing by making the lazy-load effect return a state to indicate when then `src` has been loaded.

Since the lazy-loader will `unobserve` after loading, the state will never go back to false, so we don't need to handle the case of preventing `new FreezeFrameWrapper` from being called multiple times from it's effect.
2021-05-14 11:00:07 -04:00
infinite-persistence
ee1825f5f1
Notification: handle "creator_comment" (#6069)
## Issue
Closes 6022 Notifications: Creator Commented

## Changes
- Beautify - show creator icon instead of generic bell.
- Link to comment directly instead of the claim.
2021-05-14 10:59:36 -04:00
Thomas Zarebczan
420f2c957e
Encode additional special characters 2021-05-13 15:21:21 -04:00
infinite-persistence
645f8ef452
Posts: restore "Tip unlock | Claim details" component (#6051)
* Add ICON.INFO - "i" within a circle.

Basically, an inverted ICON.ALERT.

* Posts: restore "Tip unlock | Claim details" component

## Issue
5882: tip unlock + claim id detials missing from markdown posts view

## Notes
The easiest solution would be to put `FileDescription` into posts, but I think that goes against the clean up of the Post layout, where the focus should be on the content. The faded style of the File Details section seems too distracting, plus we don't want the File Description anyway.

Fixed by:
- Make the existing "LBC amount" clickable to show credit details. An additional padlock will appear if the content is yours and you have tips to unlock.
- Add an "info" icon beside it to show file details.

These "link" buttons are usually lit, but I dimmed it in this case to make them stand out less. Again, focusing on Post content instead of buttons.
2021-05-12 14:26:47 -04:00
infinite-persistence
02fdb1e6df
Notification: further handle "missed_out" + other tweaks (#6052)
* Show full notification text via tooltip

The tooltip fixes the system notifications problem (mentioned below), and also allows one to quickly read the entire comment without actually having to visit the comment.

Currently, we only show about 50 characters in the notification, truncating it to an ellipsis when exceeded.

This is not much of a problem for dynamic text (e.g. comments) since the full text can be seen after clicking on the notification (brings you to the comment). For system notifications, this is problematic since there's no other way to know what the full text was.

Tried to dynamically change the font size to auto fit, but it wasn't fruitful. Even if it did work, it'll probably won't be legible for a 2000-character comment, plus the entire list will look weird with various font sizes.

* Beautify "missed out" notification; bring user to Verify page.

## Issue
6021: Notifications: Missed Out

## Changes
- The notification already brings the user to the `/rewards`. Tweaked it to directly enter the Verify Page.
- Use LBC icon instead of generic bell for this notification.
2021-05-12 13:51:55 -04:00
saltrafael
355dd8e755
remove emojis from reporting (#6042) 2021-05-12 10:19:45 -04:00
zeppi
c24c016eb7 livestream fixes from odysee 2021-05-04 23:00:43 -04:00
Thomas Zarebczan
de8d139351
Force page size to 50 on live streams 2021-05-04 14:12:51 -04:00
infinite-persistence
c32a95a885
Livestream comment delete/edit fix (#5971)
* Fix ability to delete own comments in livestream

## Issue
5832: can't remove own comments in live stream mode (if you have multiple channels?)

Looks like it was just missing `commentIsMine` for the new component.

* Disable editing livestream comments

It doesn't do anything at the moment, anyways.

* Disable deleting hyperchats

The "total tipped" will get deducted when hyperchats are deleted, which doesn't make sense (doesn't reflect actual total that the creator received).
2021-05-04 11:08:36 -04:00
infinite-persistence
432c1233b6
Swap: populate 'status' from 'btc/swap' response instead of waiting for first websocket input. (#5997)
* Swap: populate 'status' from 'btc/swap' response instead of waiting for first websocket input.

## Issue
Clsoes 5975: swap stop at processing even though response comes through

## Notes
Occasionally, the first websocket message doesn't come through (seems like the commerce didn't send?). There's really no need to wait for one more 'status=NEW' message to ensure the right data is being populated (being over-cautious here).

* Beautify the "exact amount" advice.
2021-05-04 11:08:01 -04:00
Thomas Zarebczan
09ee081218 remove stream_types from live
and fix homepage too
2021-04-30 17:55:33 -04:00
Sean Yesmunt
b9a7f9673d remove has_source param from livestream claim_search on homepage 2021-04-30 16:53:17 -04:00
Sean Yesmunt
ce71393d83 theme orginization and cleanup 2021-04-30 15:05:58 -04:00
infinite-persistence
742110c81c Homepage|Discover: hide livestreams, then append active livestreams at the top.
This essentially hides inactive livestreams from the list.
2021-04-30 14:11:42 -04:00
infinite-persistence
0258c2d3c3 useGetLivestreams: add ability to filter by minimum viewers 2021-04-30 14:11:42 -04:00
infinite-persistence
ec5e14ca96 ClaimListDiscover: perform secondary has_no_search search as well. 2021-04-30 14:11:42 -04:00
infinite-persistence
c2a766a3e8 ClaimListDiscover: repeat livestream-sorting changes in ClaimTilesDiscover 2021-04-30 14:11:42 -04:00
infinite-persistence
8919cba43c Refactor livestream sorting into 'prioritizeActiveLivestreams' 2021-04-30 14:11:42 -04:00
infinite-persistence
6ef42cd121 Run 'claim_search' with 'has_no_source' to bring up buried active livestreams.
Scenarios where active livestreams will not appear:
- creation date is way back.
- homepage section options excludes livestreams.

Make an explicit `claim_search` but with `has_no_source` if the client wants `liveLivestreamsFirst`.

If there are lots of channels with livestreams, there's a possibility that the final list will be larger than what was requested. We could trim it to be within the original `options.pageSize` range, but I left that out for now.
2021-04-30 14:11:42 -04:00
infinite-persistence
41380d20df Homepage: move "LIVE" livestreams to the front. 2021-04-30 14:11:42 -04:00
infinite-persistence
3a884152b1 ClaimPreviewTile: add attribute to show "LIVE" tag.
It would have been a clean implementation through `renderProperties`, but due to the need to adjust the opacity of `claim-preview__file-property-overlay` (the parent elemtn), I ended up having to create a new `live` attribute.
2021-04-30 14:11:42 -04:00
infinite-persistence
355bc9296c Pull out livestream data-fetch into an effect.
Differences with the original from 'livestreamList/view.jsx':

- Returns null instead of an empty object for the empty case. This removes the need for clients to create a temp array to determine if the list is empty ('Object.keys(x).length').

- Allow option to not periodically refresh by setting the interval to 0.
2021-04-30 14:11:42 -04:00
Sean Yesmunt
44195ec239 fix lbc-message to prevent incorrect 'Credits' replacement 2021-04-30 12:45:46 -04:00
Sean Yesmunt
ded48bcc3d wrap notification text in <LbcMessage> to handle text with 'LBC' 2021-04-30 12:45:46 -04:00
Sean Yesmunt
f04267ffc6 don't resolve all comment author uris 2021-04-30 12:45:46 -04:00
Sean Yesmunt
3808c61148 fetch notofication/categories for notification types dropdown 2021-04-30 12:45:46 -04:00
zeppi
b9fc9b6319 allow unsubscribe from deleted channels by navigating from sidebar 2021-04-30 11:06:34 -04:00
infinite-persistence
cba369a5ce
Restore lost languages (#5972)
While looking at the next RC, I noticed the new languages were lost. I recall the new language commit included some refactoring which had to be reverted due to some webpack issue.

Re-add those languages in the old (non-refactored) method.
2021-04-28 20:27:04 -04:00
zeppi
fe86010be5 More master reconciliation
rewards page recon

router recon

uEmailVerify recon

uPVerify recon

rm style

app/view recon

channel page recon

chanFol recon

syncPassword recon

fileDesc recon

web/redirect recon

wip

page/view recon
2021-04-27 23:05:38 -04:00
zeppi
6b307352d3 integrate some Odysee code with master
integrate analyticsjs

top page

buy page

reconcile help page

rec. constants

reconcile search page

search page

wip

wip
2021-04-27 19:56:30 -04:00
Sean Yesmunt
8bf14c4c04 fix form field prefix border styling so it's more visible 2021-04-27 13:40:40 -04:00
Sean Yesmunt
778250aa0e fix role=button on all cards and add correct release_time flag to livestreamLink 2021-04-27 13:40:40 -04:00
zeppi
6ab2878766 wip 2021-04-27 11:20:41 -04:00
zeppi
870b9e0c27 wip 2021-04-27 11:20:41 -04:00
zeppi
b819d59674 wip 2021-04-27 11:20:41 -04:00
zeppi
c2f945ab3c unify some styles with master 2021-04-27 11:20:41 -04:00
zeppi
830375cb32 fix disabled publish form 2021-04-27 09:22:11 -04:00
infinite-persistence
b0996d4d18 Mobile: make double-tap match the arrow keys (+/-5s instead of 10s)
## Issue
One of the items in 5865 Video shortcut issues

This one is not really an issue, but it would be nice to match what the arrow keys are doing. Also, in slower regions, seeking 10s will almost always end up buffering.
2021-04-27 09:26:19 +08:00
Sean Yesmunt
f2d83cbf9d fetch ads provider for all homepage videos (but still only show ads for unauth users) 2021-04-26 16:38:33 -04:00
zeppi
b10b79432f autofollow waits for prefs ready 2021-04-26 14:59:15 -04:00
infinite-persistence
e2db26c595 Fix channel links being filtered by Staked Level
## Issue
Channel links were showing the "This channel isn't staking enough LBRY Credits for link previews." -- channel links shouldn't be showing previews in the first place.

## Change
Moved the logic into `ClaimLink`, which is the better place to put it anyway. I think I was trying to not touch as many components as possible (i.e. not passing `allowPreview` down too many layers) in the initial implementation. This caused the `isChannel` consideration to be missed.
2021-04-26 14:51:58 -04:00
Sean Yesmunt
1e2919531b use blocked/muted uris in not_channel_ids for claim_search 2021-04-26 13:27:13 -04:00
infinite-persistence
955f5ac0df Block encoded thumbnail URLs ('data:image')
These only work in the `selectThumbnail` component. If it's small enough, it'll get past the transaction limit-check, but ultimately it doesn't appear correctly in the claim list.

It'll probably appear correctly if we tweak the ClaimPreview code, but since this also fails the Google Video metadata test, I think we should disallow this.

## Issue
5923
2021-04-26 12:24:19 -04:00
infinite-persistence
364db9dafa Propagate thumbnail errors to PublishFormData
Thumbnail errors were just being used in `selectThumbnail`. The form doesn't know about it and was using allowing invalid thumbnails like 'helloworld' to pass through.
2021-04-26 12:24:19 -04:00
infinite-persistence
1911a5132b PublishFormError: look at 'thumbnail' instead of 'thumbnail_url'
I believe the rest of the GUI is setting 'thumbnail'.
'thumbnail_url' is only populated right before publishing.

So, the flag was always false -- we just never see the error on screen because the component is incorrectly hidden (fix for this is coming up next...)
2021-04-26 12:24:19 -04:00
Sean Yesmunt
d4fa45b257 fix hyperchat size when thumbanil is gif and fix totalAmount calculation 2021-04-26 00:32:52 -04:00
Sean Yesmunt
7531a2c21a add back blocked/muted channels to homepage claim_search 2021-04-24 01:00:02 -04:00
Sean Yesmunt
0c71059bf0 fix comment websocket from connecting more than once per claim 2021-04-23 16:58:23 -04:00
Sean Yesmunt
6d89f0df7e hyperchats 2021-04-23 16:20:17 -04:00
zeppi
bd62a55608 review 2021-04-23 14:51:09 -04:00
zeppi
f5f3bf21ee bugfixes 2021-04-23 14:51:09 -04:00
zeppi
f3463ebdeb use redux for livestream claim setup 2021-04-23 14:51:09 -04:00
infinite-persistence
b0193202d1
Re-add ability to export transactions (#5899)
* FileExporter: add 'fetch' hook + Web support

* Re-add ability to export transactions

Closes 4793: Export Wallet History For Taxation Purposes

* Move file-creation to the background.

Don't let the file-creation process block the GUI.

Requires lbry-redux update.

* Bump redux | doFetchTransactions: bump pageSize to 999999; remove doFetchSupport

* bump redux

Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-04-23 12:10:37 -04:00
infinite-persistence
b5cc0bb42d Disable thumbnail lazy-load for Channels
## Issue
5933: Thumbnail lazy-load causes ChannelSelector icon to not update
2021-04-23 00:23:36 -04:00
zeppi
a3af1ad44d toggle button styles in themes 2021-04-22 10:59:03 -04:00
zeppi
9b82f57006 livestream related publish fixes 2021-04-22 10:59:03 -04:00
Sean Yesmunt
0653dbde04 update notification websocket to sockety 2021-04-21 20:18:25 -04:00
Thomas Zarebczan
5ac9e70304
warning about exact amount 2021-04-21 15:27:01 -04:00
infinite-persistence
47d5de1fca
Swap: Don't copy the currency, only amount (#5915)
* CopyableText: add 'onCopy' for clients to change the text-selection

* Swap: only copy the amount (without currency)

## Issue
5873: Rounds 2 of LBC swaps

## Notes
It was an intended feature to include the currency -- I can paste the full string into my note book, while pasting into wallet apps like Exodus will automatically trim off the currency anyway.

Regardless, removed the 'feature' :D
2021-04-21 11:36:34 -04:00
Sean Yesmunt
13b6cc413b add category param 2021-04-21 11:19:23 -04:00
infinite-persistence
cb2c33a35f Implement ReportContent page 2021-04-21 10:49:31 -04:00
infinite-persistence
e5e4a5688f Rick constants
https://docs.google.com/spreadsheets/d/1CXUO0b6uU7hCNureMb0F-ruzrtqZyADNjk_JrKmaZzs/
2021-04-21 10:49:31 -04:00
infinite-persistence
3a09bb18e3 Reporting: use upcoming new Page 2021-04-21 10:49:31 -04:00
infinite-persistence
bcbb1c8185 Add 'ReportContent' actions/reducers/selectors 2021-04-21 10:49:31 -04:00
infinite-persistence
fe885ae6de Util to get list of countries 2021-04-21 10:49:31 -04:00
Sean Yesmunt
dad75f76bd new comment websocket url 2021-04-20 14:28:45 -04:00
DispatchCommit
762005f217 remove prometheus event that doesn't exist and causes errors
"there won’t be a metric by this name, our code is just getting errors" - andrey
2021-04-20 00:49:08 -07:00
Sean Yesmunt
a4ce82e97f allow comment blocking on all claims 2021-04-19 15:55:11 -04:00
Sean Yesmunt
a841fd6206 fix typo 2021-04-19 15:55:11 -04:00
Sean Yesmunt
27b1101d12 don't pass streamTypes to homepage following section
so the following section shows all file types
2021-04-19 15:55:11 -04:00
Sean Yesmunt
0083a29231 force thumbnail for uploads 2021-04-19 15:55:11 -04:00
Max Kotlan
1279a6eaaf Fixed and cleaned up Hotkeys. Fixed overlapping lbry hotkeys with browser hotkeys 2021-04-19 13:34:10 -04:00
Sean Yesmunt
fdeea30a4a livestream notification styling 2021-04-16 15:58:26 -04:00
zeppi
1b6c217226 support brazilian portugese 2021-04-16 11:16:25 -04:00
Thomas Zarebczan
9689ef72a1
Odysee audio support (#5897) 2021-04-15 22:52:41 -04:00
Thomas Zarebczan
56cf3464ab
Make other crypto clearer until we can show rates 2021-04-15 10:06:26 -04:00
Sean Yesmunt
e4a3e54613 move lazy loading effect into effects/ 2021-04-14 15:25:19 -04:00
Louis Sandoval
a7cb0e240e Fix #5795 - Claim images not lazy loaded 2021-04-14 15:25:19 -04:00
zeppi
fe69ef2c90 allow non video selection when not odysee 2021-04-14 15:06:08 -04:00
Sean Yesmunt
42dcd34d49 trigger file/view event for livestream claims 2021-04-14 12:26:33 -04:00
Sean Yesmunt
2d9fac46a5 open the floodgates 2021-04-14 11:00:36 -04:00
Sean Yesmunt
942c85c9f1 Reconnect when comment websocket loses connection 2021-04-14 00:08:19 -04:00
jessopb
989126c603
Feat publish replays on master (#5863)
* provide livestream replay publish via url
2021-04-14 00:06:11 -04:00
Sean Yesmunt
9f3d779cf2 add tags to mobile navigation and add manage tags link on tag page 2021-04-13 17:08:24 -04:00
Sean Yesmunt
27c7a8a31e comment out swap button until api is ready 2021-04-13 14:08:25 -04:00
infinite-persistence
e9c386678b Don't link to external blockchain explorers
It's unclear whether the use is ok or not without consent. Etherscan.io says consent is required.

Better be on the safe side.
2021-04-13 14:02:25 -04:00
infinite-persistence
f94f98e0f3 ViewPastSwaps: limit to 10 entries + other fixes
(1) Due to IAPI/commerce query limit, and also to not pollute the wallet with infinite chargeCodes, we'll only show the last 10 swaps. Beamer mentioned that it's possible to tracked back the past chargeCodes of the user, and potential provide a `list` endpoint to handle disputes.

(2) If a user explicitly removed an entry, don't repopulate that entry even if websocket returned an updated status for it. While it might be useful to handle accidental removals, it looks weird when the list gets repopulated with 'Expired' entries.

(3) Add sanitization when repopulating the chargeCodes from the wallet data (i.e. remove 'null' entries).

(4) Always repopulate the list per wallet data so every instance looks the same.
2021-04-13 14:02:25 -04:00
infinite-persistence
ca40e0287b Swap the order of LBC vs BTC as the entry point 2021-04-13 14:02:25 -04:00
infinite-persistence
7cf5c1f6fe CoinSwap: websocket + multi-coin
- For the active swap, switch from polling to websocket. The returned data is now the Charge data from the commerce, so some parsing will be required.

- Allow the user to send other coins that the commerce supports.

- Only save the 'chargeCode' to the wallet. The other data can be repopulated from this.

- Store the receipt currency. I'm not sure if the commerce supports sending bits from various coins. Take the coin that came with the 'COMPLETED' message for now.

- Fix 'lbc' calculation to match IAPI side.

- Allow users to see full detauls from "View Past Swaps".

- String cleanup

- GUI cleanup.
2021-04-13 14:02:25 -04:00
infinite-persistence
d1e83fcee2 Run doNotificationSocketConnect for CoinSwapStatus 2021-04-13 14:02:25 -04:00
infinite-persistence
a76f4e4dfe Fix table wrapping
Wrap second column instead of making it scroll horizontally.
2021-04-13 14:02:25 -04:00
infinite-persistence
23072f1a46 Coin-swap: Handle "Confirming" state 2021-04-13 14:02:25 -04:00
infinite-persistence
7c25de1e58 Coin-swap: require authentication
While it would be nice if we can swap anonymously through Desktop, the IAPI will tie a wallet address with an account. Final decision is to require authentication.
2021-04-13 14:02:25 -04:00
infinite-persistence
d63cb0dc2d Past swaps: show the amount of BTCs that we are waiting for. 2021-04-13 14:02:25 -04:00
infinite-persistence
b2630f6f21 Save entire swap info instead of just the address.
- Users should be able to see the entered and promised amount, otherwise they might forget how much to send over.
- This change also prepares for the future upgrade to support multiple coins.
2021-04-13 14:02:25 -04:00
infinite-persistence
9c808e2b5e Implement Swap BTC page 2021-04-13 14:02:25 -04:00
infinite-persistence
8e6604cfa6 Add blank Swap page 2021-04-13 14:02:25 -04:00
infinite-persistence
28260c27d1 SendLBC: switch from Modal to Page 2021-04-13 14:02:25 -04:00
infinite-persistence
5d31dc536c ReceiveLBC: switch from Modal to Page 2021-04-13 14:02:25 -04:00
zeppi
fbff266b28 add br mindblown icon 2021-04-13 13:22:02 -04:00
Sean Yesmunt
a23f0cb30f add back tags search 2021-04-13 13:21:44 -04:00
Sean Yesmunt
bf24bd3193 fix related button toggle color on dark mode 2021-04-12 21:43:41 -04:00
infinite-persistence
3406c2f800 Wunderbar: handle 'shift+home' key not highlighting text
## Issue
- Patch for 5316: "Home and End keys not working in search box"

## Notes
Seems like 'shift+home' wasn't highlighting the text. 'shift+end' works.

Was pretty sure I tested that previously. Anyway, adding the direction variable seems to fix it.
2021-04-12 14:58:42 -04:00
infinite-persistence
294866fb4b Search: fix 'x' appearing incorrectly
- Need to handle the 'undefined' case. The change will cover undefined, null and blank string (blank string === 'All').
2021-04-12 14:58:25 -04:00
Sean Yesmunt
216d0fefa0
fix typo 2021-04-12 13:14:20 -04:00
Sean Yesmunt
e08b71774c pre-roll ads 2021-04-12 12:55:06 -04:00
Sean Yesmunt
ae980bc142 use isChannel from parseURI 2021-04-12 12:24:04 -04:00
zeppi
57dfaab1ea fix show yrbl empty 2021-04-12 12:24:04 -04:00
zeppi
eea3497845 fix publish something empty 2021-04-12 12:24:04 -04:00
seanyesmunt
f5125b25c2 update livestream eligibilty
add CHANNEL_STAKED_LEVEL_LIVESTREAM to config set to level 5
use odysee_live_enabled tag on users insead of experimental_ui
2021-04-12 11:17:17 -04:00
infinite-persistence
47c2d4633d ReportCreate: Fix anonymous url prefix
## Issue
5857 Channel does not update on display when reposting (but actually does)
2021-04-09 17:05:20 -04:00
infinite-persistence
f344096da4 SearchOptions: label fixes
## Issue
5842: search filters fall out
2021-04-09 11:27:25 -04:00
infinite-persistence
fb839b92ef Only apply Staked Levels to Comments (allow it in Posts)
Blocking videos and images was too limiting, plus the system was intended to block spammy comments in the first place.
2021-04-09 11:27:07 -04:00
infinite-persistence
5bc462927a SimpleImageLink: simplify + use 'src' as last resort
- The icon makes the screen too busy when there are lots of images in a page.

- Use src as the last resort for the text (I though `title` and `alt` was mandatory in markdown; apparently not).
2021-04-09 11:27:07 -04:00
infinite-persistence
20a28865fe Fix "channel levels" being applied to all MarkdownPreview usages.
`stakedLevel` is only provided when needed (comments, etc.), so when it's null, resume normal operation.
2021-04-09 11:27:07 -04:00
infinite-persistence
3bab4feeca Update GUI to use queried notification filter.
- Re-organize the return statement of 'NotificationsPage' a bit, otherwise the entire page will reload (blink) every time the drop-down value is changed due to the 'fetching' flag.

- Retained the original behavior of (only showing a blank page + spinner) on the very first load. I think there is merit in not showing the buttons immediately (e.g. when not logged in and `/$/notifications` is accessed directly).
2021-04-08 14:28:21 -04:00
infinite-persistence
b8ec0c9967 Augment doNotificationList to get a filtered list.
Initially, the filtered list was done at the component level, and the list was simply a subset of `notifications`. But due to the limit issue explained in 5694, we now query the filtered list instead.

Considerations:
- The filtered list could contain items not listed in the 'All' list. We could add a string at the bottom of 'All' that says "not all items retrieved" if this confuses the user.
- The unseen count needs to be based on 'All' and not the filtered one, so that data needs to be stashed somehow (can't re-use the array).

Use 2 arrays for now instead of trying to accumulate "all" and "filtered" into 1 array.
2021-04-08 14:28:21 -04:00
infinite-persistence
4252db91f9 Add new notification filter api params 2021-04-08 14:28:21 -04:00
seanyesmunt
fbd90b8f3e style pass 2021-04-08 12:40:07 -04:00
saltrafael
1d74b364e5 Keep just More From for now 2021-04-08 12:40:07 -04:00
saltrafael
6718d87848 Recommended bar: extra options for ease of discovery 2021-04-08 12:40:07 -04:00
seanyesmunt
6ccbbebad9 limit simple site search options to just video and text 2021-04-07 14:13:40 -04:00
seanyesmunt
6718f153a9 style pass 2021-04-07 12:08:17 -04:00
infinite-persistence
72443d4d2e Reset the search page when options changed. 2021-04-07 12:08:17 -04:00
infinite-persistence
8111b8d9dc Only concatenate results if 'from !== 0' 2021-04-07 12:08:17 -04:00
infinite-persistence
340c883ac7 Disable 'last hour'
Requires further work in IAPI
2021-04-07 12:08:17 -04:00
infinite-persistence
855ae15a27 Search: infinite scroll 2021-04-07 12:08:17 -04:00
infinite-persistence
5421a64b65 Revamp search filters
## Issue
4945: Simplify / revamp search filters for odysee (and lbry.tv)

## Changes
- Tweaked the "claim type = file | channel | everything" a little to hopefully make it more intuitive.
- Added "Sort By".
- Added "Upload Date".
- Fixed the affected files to handle both Desktop and Odysee.
- Tweaked the layout to be more condensed so that we can see some results as we change the filter.
- Added animations.
- Added "Exact match" option that helps user to surround with quotes.
2021-04-07 12:08:17 -04:00
infinite-persistence
a9cae23d87 getSearchQueryString: add "time_filter" option 2021-04-07 12:08:17 -04:00
infinite-persistence
2cc049bb83 getSearchQueryString: add "exact" option to include surrounding quotes. 2021-04-07 12:08:17 -04:00
infinite-persistence
dc06e2da99 getSearchQueryString: add "sort_by" options 2021-04-07 12:08:17 -04:00
infinite-persistence
1ee05d1f7f getSearchQueryString: customizations for SIMPLE_SITE.
- This change makes it work for both Desktop and Odysee. When merging back to Odysee, just take the file from `master` (barring any changes from someone else).

- Given that we'll be opening up the search filter for Odysee, the only "simple site" customization that was back-ported is `free_only=true`.
2021-04-07 12:08:17 -04:00
infinite-persistence
c73ba60ef5 Revert "Use blank poster and advisory when preview is blocked by insufficient stake."
This reverts commit 9d1cf97aef.
2021-04-07 00:39:35 -04:00
seanyesmunt
e23a6f3cd6 fix notice-message spacing on livestream page 2021-04-06 17:20:21 -04:00
seanyesmunt
15fea9fe1f fix livestream comment spacing 2021-04-06 17:01:31 -04:00
seanyesmunt
e3ea004f67 revert e3a478adc3 2021-04-06 15:42:27 -04:00
seanyesmunt
0d41e6d88d Revert "Simplify language lists"
This reverts commit 27d43b2b41.
2021-04-06 15:42:27 -04:00
Stefan Sundin
d5ba66ca1a Add a min-width to the "Automatic dark mode" inputs to stop UI shifting when clicking the "24-hour clock" checkbox. I have no idea where this should go so I just put it somewhere. 2021-04-06 13:00:10 -04:00
Stefan Sundin
aff8cfdf9c Fix the "Automatic dark mode" labels having the same name. Now the correct input is selected when clicking the "To" label. 2021-04-06 13:00:10 -04:00
Stefan Sundin
56d4a677a5 Also format the "Automatic dark mode" clocks. 2021-04-06 13:00:10 -04:00
Stefan Sundin
039264531f Add 24-hour clock setting. 2021-04-06 13:00:10 -04:00
infinite-persistence
f3869ddb78 Markdown: inline image preview for Level 4 and above only 2021-04-06 12:55:33 -04:00