Commit graph

2244 commits

Author SHA1 Message Date
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