Commit graph

2329 commits

Author SHA1 Message Date
Tobias Speicher
21af8f4f28 refactor: replace deprecated String.prototype.substr()
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated

Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
2022-03-23 12:12:44 -04:00
Franco Montenegro
66bdd3fc87 Small refactor to get the last used collection. 2022-03-08 12:30:39 -05:00
Franco Montenegro
c843991378 Update last used collection when a collection is pending or published. 2022-03-08 12:30:39 -05:00
Franco Montenegro
ca1d0e71b7 Add last used collection to right click menu. 2022-03-08 12:30:39 -05:00
zeppi
2ddf0a2cbd add medium duration video filter 2022-03-07 18:46:28 -05:00
infinite-persistence
cef9ade10e Render whole app on language change
## Issues
1. We were manually adding `selectLanguage(state)` as a prop to components used in Settings Page to trigger a render. Flaws:
    - Unclear that the unused prop is just to trigger a render.
    - Manually adding on a case-by-case basis will break over time (missed component).

2. The translation file fetching is delayed (at least in Odysee) and also takes time, so the GUI will end up having mixed strings on F5, depending on when the fetch completed.

## Approach
Make the app wrapper have a key that's tied to the language and translation data, so the entire app renders when language changes. Seems like a common design in most apps.

## Ticket
odysee 921
2022-03-07 09:40:09 -05:00
zeppi
04a6c735ac finish view data hosting 2022-02-25 17:52:35 -05:00
zeppi
bf87ac08db reverts electron updates testing 2022-02-23 12:36:55 -05:00
Franco Montenegro
080eee7d92 Display release changes from release notes instead of using GitHub's API. 2022-02-22 13:14:17 -05:00
Franco Montenegro
3058dbb4a6 Fix typos. 2022-02-22 13:14:17 -05:00
Franco Montenegro
e1ecf87df7 Better way of handling autoUpdate and listen for update available event to display update nag. 2022-02-22 13:14:17 -05:00
Franco Montenegro
48c5f58a8e Multiple fixes in auto updates.
- Add "disable auto updates" setting (prevents downloading updates in the background but will still notify if there are newer versions)
- Prevent downloading multiple times the same update
- Hide nag when auto update modal is displayed
2022-02-22 13:14:17 -05:00
Franco Montenegro
8fb67d5980 Fix markdown guide button. 2022-02-17 15:09:43 -05:00
zeppi
9375ada72a remove duplicate header search on mobile 2022-02-15 21:48:43 -05:00
zeppi
49c5180820 fix active channel for commenting etc 2022-02-15 20:58:13 -05:00
zeppi
eb1b412840 hide md preview help and restore mac header 2022-02-15 12:31:16 -05:00
zeppi
7c7c2aa053 fix comment pinning 2022-02-14 23:18:28 -05:00
Rafael
f6961f91fe fix comment editing 2022-02-14 23:18:28 -05:00
zeppi
43af7ddc5f more 2022-02-14 20:56:47 -05:00
zeppi
a574a5c1de markdown fixes - blockquotes and embedded videos 2022-02-14 20:56:47 -05:00
zeppi
8bd38114dd fix channelsFollowingDiscover 2022-02-09 16:46:47 -05:00
zeppi
92ed44c0f2 refactor improve data hosting 2022-02-09 10:59:17 -05:00
zeppi
4f74ecfc47 bring in player refactor with seek ahead/back 2022-02-06 22:43:05 -05:00
zeppi
703d1afc06 add key to claimPreview to fix wrong thumbs 2022-02-06 22:06:48 -05:00
zeppi
fe72dcfc2c move wallet server setting help 2022-02-04 15:54:32 -05:00
zeppi
fe1a2eac33 use radio buttons for comment server selection 2022-02-03 22:29:52 -05:00
zeppi
2e048dc225 comment server selector - create file for protocol regex 2022-02-03 10:59:10 -05:00
zeppi
cbc3624664 rename commentserver files 2022-02-03 10:59:10 -05:00
zeppi
6b37fd2eae comment server selector functional now, some cleanup 2022-02-03 10:59:10 -05:00
zeppi
d13397d4dd new custom comment servers ux 2022-02-03 10:59:10 -05:00
jessopb
0e134a02d7
Miko fixes 0.52.2 a2 (#7451)
* style, repost, and costinfo fixes

* fix anon collection publishing

* fix markdown images
2022-01-29 18:25:40 -05:00
jessopb
98852e7eb4
changelog and hosting copy (#7445) 2022-01-27 14:45:48 -05:00
jessopb
5fdac4898f
Playlistorder (#7442)
* Add horizontal layout (#636)

* Test out a horizontal scroll for upcoming (tile only for now)

* - add support for list layout
- add following label on home page
- clan up css and naming conventions

* Update header type + show only if scheduled streams are showing

* [Playlist] Pull in sorting changes from desktop + Add Drag-n-Drop + Handle unavailable/deleted claims (#641)

* Add ordering Icons

* Refactor doCollectionEdit

- It required claims as parameter, when only uris are used to populate the collection, so that was changed to pass down the uris instead.
- There were unused and mostly unnecessary functions inside, for example the parameter claimIds was never used so it would never enter the claimSearch function which again would be used to generate uris, so it's better to just use uris as parameter

* Add List Reordering changes

* Add toggle button for list editing

* Add toggle on content page collection sidebar

* Enable drag-n-drop to re-order list items

https://www.youtube.com/watch?v=aYZRRyukuIw

* Allow removing all unavailable claims from a List

* Fix <g> on icons

* Fix section buttons positioning

* Move preventDefault and stopPropagation to buttons div instead of each button, preventing clicking even if disabled opening the claim

* Change dragging cursor

* Fix sizing

* Fix dragging component

* Restrict dragging to vertical axis

* Ignore shuffle state for ordering

* Fix console errors

* Mobile fixes

* Fix sidebar spacing

* Fix grey on mobile after click

* cleanup

Co-authored-by: Dan Peterson <dan@dan-peterson.ca>
Co-authored-by: saltrafael <76502841+saltrafael@users.noreply.github.com>
2022-01-27 10:20:21 -05:00
jessopb
618ab5e195
More header refactors (#7441)
* Refactor notificationHeaderButton

* Add Tooltips to header buttons and replace reach/ui

* Decrease --header-height by 20%

* more header cherry-pick

Co-authored-by: Rafael <rafael.saes@odysee.com>
2022-01-26 21:14:36 -05:00
jessopb
f095081c71
Header refactor (#7440)
* Refactor header Component, split into smaller components and remove what is unused

* fix upload menu

* better centering for backout title

* cleanup

Co-authored-by: Rafael <rafael.saes@odysee.com>
2022-01-26 14:54:58 -05:00
jessopb
3f0cc0bf2e
Compact follower counts (#7432)
* Factor out 'toCompactNotation'

* File page: use compact view count (w/ tooltip for full res)

Co-authored-by: infinite-persistence <inf.persistence@gmail.com>
2022-01-25 18:16:28 -05:00
jessopb
caf32736b5
fix floating player disappearing on small screens (#7439) 2022-01-25 15:35:51 -05:00
jessopb
0ab1aab4e7
make data hosting clearer (#7438) 2022-01-24 22:12:27 -05:00
jessopb
0b41fc041a
Bringing in emotes, stickers, and refactors from ody (#7435)
* [New Feature] Comment Emotes (#125)

* Refactor form-field

* Create new Emote Menu

* Add Emotes

* Add Emote Selector and Emote Comment creation ability

* Fix and Split CSS

* [New Feature] Stickers (#131)

* Refactor filePrice

* Refactor Wallet Tip Components

* Add backend sticker support for comments

* Add stickers

* Refactor commentCreate

* Add Sticker Selector and sticker comment creation

* Add stickers display to comments and hyperchats

* Fix wrong checks for total Super Chats

* Stickers/emojis fall out / improvements (#220)

* Fix error logs

* Improve LBC sticker flow/clarity

* Show inline error if custom sticker amount below min

* Sort emojis alphabetically

* Improve loading of Images

* Improve quality and display of emojis and fix CSS

* Display both USD and LBC prices

* Default to LBC tip if creator can't receive USD

* Don't clear text-field after sticker is sent

* Refactor notification component

* Handle notifications

* Don't show profile pic on sticker livestream comments

* Change Sticker icon

* Fix wording and number rounding

* Fix blurring emojis

* Disable non functional emote buttons

* new Stickers! (#248)

* Add new stickers (#347)

* Fix cancel sending sticker (#447)

* Refactor scrollbar CSS for portal components outside of main

Refactor channelMention suggestions into new textareaSuggestions component

Install @mui/material packages

Move channel mentioning to use @mui/Autocomplete combobox without search functionality

Add support for suggesting Emotes while typing ':'

Improve label to display matching term

Add back and improved support for searching while mentioning

Add support for suggesting emojis

Fix non concatenated strings

Add key to groups and options

Fix dispatch props

Fix Popper positioning to be consistent

Fix and Improve searching

Add back support for Winning Uri

Filter default emojis with the same name as emotes

Remove unused topSuggestion component

Fix text color on darkmode

Fix livestream updating state from both websocket and reducer and causing double of the same comments to appear

Fix blur and focus commentCreate events

Fix no name after @ error

* desktop tweaks

Co-authored-by: saltrafael <76502841+saltrafael@users.noreply.github.com>
Co-authored-by: Thomas Zarebczan <tzarebczan@users.noreply.github.com>
Co-authored-by: Rafael <rafael.saes@odysee.com>
2022-01-24 11:07:09 -05:00
jessopb
c1a54f9707
Control tags (#7433)
* Add prefix to all internal tags

* Strip internal tag prefix from form labels

Co-authored-by: Dan Peterson <dan@dan-peterson.ca>
2022-01-21 20:43:45 -05:00
Rahul Rajan
f06b3bd877
add property overlay to ClaimPreview (#7420)
* add property overlay to ClaimPreview

* add to changelog

* moved changelog change
2022-01-21 14:44:48 -05:00
jessopb
18c3bbe6e3
Fix comment disabling on MD (#685) (#7431)
Also restore reactions
This is only an internal tag

Co-authored-by: Thomas Zarebczan <tzarebczan@users.noreply.github.com>
2022-01-21 12:54:43 -05:00
jessopb
fc3ddf01b1
apply ody pr 463 - move MAIN_CLASS constant (#7430) 2022-01-21 12:54:22 -05:00
jessopb
ca0cd2ca75
Use 'selectHasChannel' instead of the full 'selectMyChannelClaims' (#7427)
- selectMyChannelClaims depends on `byId`, which currently is always invalidated per update, so it is not memoized.

- Most of the use-cases just needs the ID or the length of the array anyways, so avoid generating a Claim array (in selectMyChannelClaims) unnecessarily -- the client need to reduce it back down to IDs again :/

- The simpler boolean also removes the need to memoize the selector, which saves a bit of memory.

Co-authored-by: infinite-persistence <inf.persistence@gmail.com>
2022-01-21 12:38:11 -05:00
jessopb
528a0f4d6e
apply ody pr #329 no blacklist check on claimLink (#7428) 2022-01-21 11:21:43 -05:00
jessopb
c7021a08ad
Selector refactors (#7424)
* Attempt to speed up sidebar menu for mobile (#283)

* Exclude default homepage data at compile time

The youtuber IDs alone is pretty huge, and is unused in the `CUSTOM_HOMEPAGE=true` configuration.

* Remove Desktop items and other cleanup

- Moved constants out of the component.
- Remove SIMPLE_SITE check.
- Remove Desktop-only items

* Sidebar: limit subscription and tag section

Too slow for huge lists

Limit to 10 initially, and load everything on "Show more"

* Fix makeSelectThumbnailForUri

- Fix memo
- Expose function to extract directly from claim if client already have it.

* Fix and optimize makeSelectIsSubscribed (#273)

- It will not return true if the uri provided is canonical, because the compared subscription uri is in permanent form. This was causing certain elements like the Heart to not appear in claim tiles.
- It is super slow for large subscriptions not just because of the array size + being a hot selector, but also because it is looking up the claim twice (not memo'd) and also calling `parseURI` to determine if it's a channel, which is unnecessary if you already have the claim.

- Optimize the selector to only look up the claim once, and make operations using already-obtained info.

* Simplify makeSelectTitleForUri

No need to memo given no transformation.

* Simplify makeSelectIsUriResolving

- Memo not required. `resolvingUris` is very dynamic and is a short array anyways.
- Changeg from using `indexOf` to `includes`, which is more concise.

* Cost Info selector fixes

- no memo required since they are just directly accessing the store.

Co-authored-by: infinite-persistence <64950861+infinite-persistence@users.noreply.github.com>
Co-authored-by: infinite-persistence <inf.persistence@gmail.com>
2022-01-19 20:46:01 -05:00
jessopb
ebe253f814
fix following page (#7410) 2022-01-07 22:56:36 -05:00
jessopb
85899e7e38
reenable thumbs from videos (#7409) 2022-01-07 15:00:12 -05:00
jessopb
22a302f528
mostly remove is_web (#7408) 2022-01-07 14:02:33 -05:00
jessopb
34283f7be6
fix 7188 window.location.pathname (#7401) 2022-01-04 15:40:42 -05:00
jessopb
7a100ec022
redux fixes (#7400) 2022-01-04 13:46:55 -05:00
jessopb
cedfd3e32c
fix comments (#7398) 2022-01-04 10:01:01 -05:00
jessopb
e704f87557
fix publish confirmation field (#7397) 2022-01-04 09:36:44 -05:00
jessopb
0eab08e3b4
remove loadingBar, fix parser dependency (#7394) 2022-01-03 10:27:55 -05:00
jessopb
a1f4a7f8ec
Electron 15 (#7384)
* upgrade electron to 15

* linter

* change electron-cookies to modded version for electron >=10

* electron-cookies version fix
2022-01-02 15:33:11 -05:00
jessopb
6d04ff6e32
Revert "upgrade electron to 15 (#7363)" (#7383)
This reverts commit 08c47a57f1.
2021-12-31 14:49:45 -05:00
jessopb
08c47a57f1
upgrade electron to 15 (#7363)
* upgrade electron to 15

* linter
2021-12-31 12:53:07 -05:00
jessopb
a3398843c2
Optimize selectClaimIsMine (#7370)
Frequently used; top in perf profile

Most of the time, you already have the claim object in the current context. `selectClaimIsMineForUri` will retrieve the claim again, which is wasteful, even if it is memoized (looking up the cache still takes time).

Break apart the logic and added the alternative `selectClaimIsMine` for faster lookup.

Co-authored-by: infinite-persistence <inf.persistence@gmail.com>
2021-12-31 12:52:26 -05:00
jessopb
dbc980cab5
clear shuffle when entering edit or publish for collections (#7380) 2021-12-30 22:21:37 -05:00
jessopb
b2e2e84cc0
show channel analytics only if authed (#7378) 2021-12-30 15:54:00 -05:00
jessopb
36890601a8
no empty lists on lists page (#7375) 2021-12-30 13:36:08 -05:00
jessopb
59a188044e
fix private lists editing (#7374) 2021-12-30 13:10:10 -05:00
jessopb
ca15faef02
fix advanced editor in description (#7372) 2021-12-29 15:58:55 -05:00
jessopb
cb7f2e87cf
use parser (#7369) 2021-12-24 13:08:47 -05:00
jessopb
44fd8349a7
fix comment replies (#7367) 2021-12-23 11:31:20 -05:00
jessopb
1929089fab
fix advanced text area (#7360) 2021-12-16 15:03:53 -05:00
jessopb
ae682a4a33
restore posts publishing (#7359) 2021-12-16 14:26:52 -05:00
jessopb
5e3844390f
update disk space setting to new api (#7356) 2021-12-15 18:11:22 -05:00
jessopb
a0917908bb
add feature to enable experimental upgrades (#7353) 2021-12-15 15:58:47 -05:00
infinite-persistence
05d5e6c05d
Remove old mobile chromecast css hack (#7352)
lbry-desktop--6844

This negates 49abbecb.

Now that we have a dedicated chromecast button, we don't need to hack Chrome's default cast button to appear on top of vjs-mobile-ui.  The hack no longer works anyway, since the CSS exposure has been deprecated around mid 2020 -- it is still available, but its abilities has become less and less.
2021-12-14 21:09:24 -05:00
jessopb
514bc0a273
remove referral code from share (#7350)
* remove referral code from share

* cleanup
2021-12-13 09:02:28 -05:00
jessopb
0cd1c6d535
improve repost modal styling (#7345) 2021-12-12 18:14:07 -05:00
Bradley Ray
e5072c8681
Modal repost (#7341)
* make repost into a modal

* remove unecessary import

* removed page/repost

* fixed yarn lint errors

* added page/repost back

* added "Repost" title bar

* fixed yarn lint errors
2021-12-12 01:03:00 -05:00
Bohdan Kornatskyi
3458fa5e50
Fix MenuButton behavior from toggle dropdown onMousePress to onClick (#7335)
* changed behavior of a MenuButton. now it shows drop down on click not on mouse down

* fix 'Enter' key handling

* changed behavior of a MenuButton. now it shows drop down on click not on mouse down

* fix 'Enter' key handling
2021-12-09 18:05:37 -05:00
zeppi
ec14cc8828 update deps 2021-12-08 21:18:45 -05:00
zeppi
408eb9a347 cleanup 2021-12-08 20:41:57 -05:00
zeppi
6ba1fafaa0 remove extra sign up pages 2021-12-08 20:41:57 -05:00
zeppi
5e09de5f94 remove invites and rewards 2021-12-08 20:41:57 -05:00
jessopb
5be27a5e2c Revert "rm lbry.tv, rm lbryfirst, rm DOMAIN, etc"
This reverts commit 041127bbce.
2021-12-04 22:20:39 -05:00
zeppi
041127bbce rm lbry.tv, rm lbryfirst, rm DOMAIN, etc 2021-12-03 16:39:40 -05:00
infinite-persistence
0459148e30 Comment-selectors: fix memoization 2021-12-03 15:22:32 -05:00
infinite-persistence
4d01452447 Fix reaction-selector reference invalidation
When comments are refreshed, each `Comment` gets rendered 4-5 times due to reference invalidation for `othersReacts` (the data didn't actually change).

For selectors without transformation, there is no need to memoize using `createSelector` -- just access it directly. Also, don't do things like `return a[id] || {}` in a reducer, because the reference to the empty object will be different on each call.

Always return directly from the state so that the same reference is returned.

This simple change avoided the wasted resources needed for `createSelector`, and reduced to render to just 2 (initial render, and when reactions are fetched).
2021-12-03 15:22:32 -05:00
infinite-persistence
29b845c3fc Optimize tags and followedTags
followedTags:
- Moved the filtering to the reducer side, so that we don't do it every time. We can't rely on `createSelector` because the store will be invalidated on each `USER_STATE_POPULATE`, unfortunately.

tags:
- Memoize via re-reselect for the "ForUri" selector.
2021-12-03 15:22:32 -05:00
infinite-persistence
26f89b3ec9 re-reselect proof of concept + fix Date selector as first example
`makeSelectDataForUri` always returns a new reference, so `ClaimPreview` was constantly being rendered. It's pretty expensive since `ClaimPreview`'s rendering checks against a huge blocklist, which is another issue on it's own.

- This commit tests the usage of `re-reselect` as the solution to the multi-instance memoization problem (https://github.com/toomuchdesign/re-reselect/blob/master/examples/1-join-selectors.md)
2021-12-03 15:22:32 -05:00
zeppi
0c1b681b44 cleaner discover filters display 2021-12-02 20:43:32 -05:00
zeppi
5fed2d01c0 list editing behind toggle button 2021-12-02 20:43:19 -05:00
zeppi
cfd876927f list publish page listview type 2021-12-02 15:08:24 -05:00
zeppi
fea6ca8635 clean 2021-12-02 15:08:24 -05:00
zeppi
f1de3b193e collection reordering changes 2021-12-02 15:08:24 -05:00
infinite-persistence
7afe2c58b0 Debounce volume and muted state update.
## Ticket
"Overall React Lag or Extra Re-renders / Volume slider laggy since v0.48"

## The problem
Every redux update results in each mounted component's prop mapping function (the `select` and `perform` stuff) to be recalculated. This is normal per redux, but we do lots of heavy stuff there.

The slider was sending tons of redux update for the Volume and Muted setting.

## Changes
The redux volume/muted setting is just used to restore vjs to the user's setting on the next video, so it doesn't need to be updated immediately/constantly -- vjs keeps it's own video settings.  Debounced that action.
2021-11-29 16:19:38 -05:00
zeppi
1360e21016 fixes restoring wallet page and removing lbry.tv references 2021-11-28 15:06:11 -05:00
infinite-persistence
c6322ddb24 Floating player position-listener fixes (#289)
- 251 Dragging the floating player is super laggy

Recent changes and/or refactoring combined the effects or added dependancies into the effects, causing them to re-run excessively.

- Restored effects to their original behavior.
- Don't perform the position check when dragging -- only do it when released.
- Do proper debouncing for the 'resize' listener -- the previous method was incorrect as a new function is created on each render.
2021-11-28 12:12:12 -05:00
infinite-persistence
cb97e94c4d Fix missing state 2021-11-16 16:23:17 -05:00
zeppi
eb56f1b486 carry collection active tab to playlists page 2021-11-07 14:59:35 -05:00
zeppi
41edd8317c update pagination if page param changes 2021-11-07 14:59:35 -05:00
zeppi
32988bb7ca fix pagination, reset page on filter button 2021-11-07 14:59:35 -05:00
zeppi
5df736dc6b limit collection display
make it clear lists page is truncated

lists display page

cleanup
2021-11-07 14:59:35 -05:00
zeppi
7a2adae09c restore file release time 2021-10-29 12:24:33 -04:00
zeppi
4c8920339d improve channel cover upload ux 2021-10-28 15:17:18 -04:00
zeppi
d15423dc65 do not block submit on thumb or cover error 2021-10-28 15:17:18 -04:00