Commit graph

55 commits

Author SHA1 Message Date
jessopb 3034f4ce6c
bring in styles (#7542)
* bring in ody styles; modify; cleanup

* workflow

* workflow

* v0.52.6-alpha.teststyles.1

* fix hook

* v0.52.6-alpha.teststyles.2

* style fixes

* fix pagination styling

* v0.52.6-alpha.teststyles.3

* wallet icon was bad

* restore deploy script

* fixes

* fix player close button

* modal inputs

* cleanup

* cleanup

* fix staked indicator

* fix profile menu button skel delay

* fix view-all-playlists hover

* fix overlay buttons on collection page

* fix header buttons
2022-04-17 13:04:56 -04:00
zeppi 629b928c80 disable keycode back in text area 2022-02-06 20:11:59 -05:00
zeppi 54b59dd946 remove useGetAds 2022-01-27 16:47:58 -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
zeppi ee9f63a161 integrate all the things
bugfix

wip

flow

fix

cleaning

clean
2021-10-15 23:49:41 -04:00
infinite-persistence 3b47edc3b9
Livestream category improvements (#7115)
*  Remove old method of displaying active livestreams

Completely remove it for now to make the commit deltas clearer.
We'll replace it with the new method at the end.

* Fetch and store active-livestream info in redux

* Tiles can now query active-livestream state from redux instead of getting from parent.

*  ClaimTilesDiscover: revert and cleanup

## Simplify
- Simplify to just `uris` instead of having multiple arrays (`uris`, `modifiedUris`, `prevUris`)
- The `prevUris` is for CLS prevention. With this removal, the CLS issue is back, but we'll handle it differently later.
- Temporarily disable the view-count fetching. Code is left there so that I don't forget.

## Fix
- `shouldPerformSearch` was never true when `prefixUris` is present. Corrected the logic.
- Aside: prefix and pin is so similar in function. Hm ....

* ClaimTilesDiscover: factor out options

## Change
Move the `option` code outside and passed in as a pre-calculated prop.

## Reason
To skip rendering while waiting for `claim_search`, we need to add `React.memo(areEqual)`. However, the flag that determines if we are fetching `claim_search` (fetchingClaimSearchByQuery[]) depends on the derived options as the key.

Instead of calculating `options` twice, we moved it to the props so both sides can use it.

It also makes the component a bit more readable.

The downside is that the prop-passing might not be clear.

* ClaimTilesDiscover: reduce ~17 renders at startup to just 2.

* ClaimTilesDiscover: fill with placeholder while waiting for claim_search

## Issue
Livestream claims are fetched seperately, so they might already exists. While claim_search is running, the list only consists of livestreams (collapsed).

## Fix
Fill up the space with placeholders to prevent layout shift.

* Add 'useFetchViewCount' to handle fetching from lists

This effect also stashes fetched uris, so that we won't re-fetch the same uris during the same instance (e.g. during infinite scroll).

*  ClaimListDiscover: revert and cleanup

## Revert
- Removed the 'finalUris' stuff that was meant to "pause" visual changes when fetching. I think it'll be cleaner to use React.memo to achieve that.

## Alterations
- Added `renderUri` to make it clear which array that this component will render.
- Re-do the way we fetch view counts now that 'finalUris' is gone. Not the best method, but at least correct for now.

* ClaimListDiscover: add prefixUris, similar to ClaimTilesDiscover

This will be initially used to append livestreams at the top.

*  Re-enable active livestream tiles using the new method

* doFetchActiveLivestreams: add interval check

- Added a default minimum of 5 minutes between fetches. Clients can bypass this through `forceFetch` if needed.

* doFetchActiveLivestreams: add option check

We'll need to support different 'orderBy', so adding an "options check" when determining if we just made the same fetch.

* WildWest: limit livestream tiles + add ability to show more

Most likely this behavior will change in the future, so we'll leave `ClaimListDiscover` untouched and handle the logic at the page level.

This solution uses 2 `ClaimListDiscover` -- if the reduced livestream list is visible, it handles the header; else the normal list handles the header.

* Use better tile-count on larger screens.

Used the same method as how the homepage does it.
2021-09-24 10:26:21 -04:00
infinite-persistence afe4fee3f3 Fallback image for <FileThumbnail>
## Ticket
5457 Create file thumbnail fallback image for odysee

## Approach
Since `background-image` does not invoke an `onerror` event, create a test Image instance to have the `onerror` capability. This technique is used by majority of plugins. No additional fetch is seen with this technique.
2021-08-17 19:46:54 -07:00
jessopb 5f55603fb2
send recsys powered-by (#6875)
* send recsys powered-by

* update lighthouse call in useLighthouse

* rename select selectors

* update channel search too
2021-08-17 10:03:25 -04:00
zeppi 9889c258e3 livestream api constant rename 2021-07-28 16:51:11 -04:00
infinite-persistence f7cf21b661 useLazyLoading: start loading when near viewport
## Issue
#6332 <Thumbnail lazy-loader is too slow || Use browser-level lazy-loading>

## Change
Switch from "threshold-based check" to "viewport distance comparison" using the `rootMargin` parameter. The root is the viewport.

This change makes it closer to the native `loading="lazy"` behavior, where it starts to load when approaching the viewport. Chrome I believe uses 3000px distance -- I think 500px is a good compromise for now. Can adjust further.

## Future
- We are currently creating N instances of IntersectionObserver.
  - https://developers.google.com/web/updates/2016/04/intersectionobserver
  - "If you need to observe multiple elements, it is both possible and advised to observe multiple elements using the same IntersectionObserver instance by calling observe() multiple times."

This would probably need a refactor to make ClaimList (or something higher) own the IntersectionObserver.
2021-07-12 17:06:30 -04:00
infinite-persistence 36ac9e038d Wunderbar: change throttle to debounce + add min chars
## Issue
6314: prevent lighthouse spam from wunderbar

## Changes
- Wunderbar: change throttle to debounce + add min chars.
- useLighthouse: added option to not throttle.
2021-06-23 14:15:59 -04:00
infinite-persistence 510056a479 WunderBar customizations for re-use 2021-06-18 15:46:51 -04:00
zeppi ca116ba010 wip
wip

wip - everything but publish, autoplay, and styling

collection publishing

add channel to collection publish

cleanup

wip

bump

clear mass add after success

move collection item management controls

redirect replace to published collection id

bump

playlist selector on create

bump

use new collection add ui element

bump

wip

gitignore

add content json

wip

bump

context add to playlist

basic collections page style pass wip

wip: edits, buttons, styles...

change fileAuthor to claimAuthor

update, pending bugfixes, delete modal progress, collection header, other bugfixes

bump

cleaning

show page bugfix

builtin collection headers

no playlists, no grid title

wip

style tweaks

use normal looking claim previews for collection tiles

add collection changes

style library previews

collection menulist for delete/view on library

delete modal works for unpublished

rearrange collection publish tabs

clean up collection publishing and items

show on odysee

begin collectoin edit header and css renaming

better thumbnails

bump

fix collection publish redirect

view collection in menu does something

copy and thumbs

list previews, pending, context menus, list page

enter to add collection, lists page empty state

playable lists only, delete feature, bump

put fileListDownloaded back

better collection titles

improve collection claim details

fix horiz more icon

fix up channel page

style, copy, bump

refactor preview overlay properties,
fix reposts showing as floppydisk
add watch later toast,
small overlay properties on wunderbar results,
fix collection actions buttons

bump

cleanup

cleaning, refactoring

bump

preview thumb styling, cleanup

support discover page lists search

sync, bump

bump, fix sync more

enforce builtin order for now

new lists page empty state

try to indicate unpublished edits in lists

bump

fix autoplay and linting

consts, fix autoplay

bugs

fixes

cleanup

fix, bump

lists experimental ui, fixes

refactor listIndex out

hack in collection fallback thumb

bump
2021-06-08 13:25:52 -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 0258c2d3c3 useGetLivestreams: add ability to filter by minimum viewers 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 f2d83cbf9d fetch ads provider for all homepage videos (but still only show ads for unauth users) 2021-04-26 16:38:33 -04:00
Sean Yesmunt e4a3e54613 move lazy loading effect into effects/ 2021-04-14 15:25:19 -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
zeppi 6a16d8e0cd fix bad lighthouse results 2021-01-28 15:35:15 -05:00
infiinte-persistence 912489cce0 Make zoom level persistent on Desktop
- uses local storage.
- for 'web', the browser is already handling that.
2021-01-26 10:20:59 -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 0cc3af28a3 flow fixes 2020-12-16 10:52:22 -05:00
Sean Yesmunt 05d625484d improve jumpiness on search suggestions 2020-12-11 14:37:06 -05:00
Sean Yesmunt 120300643f improved mobile-search experience 2020-12-11 14:37:06 -05:00
Sean Yesmunt 30d8a0406d wunderbar improvements 2020-12-03 12:39:12 -05:00
Sean Yesmunt 19fb7d7f06 new layout 🕺 2020-09-29 17:12:32 -04:00
Sean Yesmunt 3b4ac976b6 Revert "full width homepage"
This reverts commit 0018fdaebc.
2020-08-18 12:53:07 -04:00
Sean Yesmunt 0018fdaebc full width homepage 2020-08-18 09:25:36 -04:00
Sean Yesmunt 692862c769 collapsable sidebar initial commit 2020-08-11 17:04:14 -04:00
btzr-io 036aedd88d use redux to load post content 2020-08-04 11:49:12 -04:00
btzr-io c47c6f6034 fix story validation and content loading on web 2020-08-04 11:49:12 -04:00
infiinte-persistence 2ea66f9d8d Refactor zooming code into "effects/use-zoom.js" 2020-07-14 16:08:24 -04:00
Sean Yesmunt 78422ccfb2 fix thumbnails on desktop 2020-06-03 13:49:44 -04:00
Sean Yesmunt 48eac1188f always use thumbnail from claim if it exists on web 2020-06-02 16:10:43 -04:00
jessop e3c2919373 rename lbrytv to web
language and API consts

improve customization
custom homepages
get config from .env.default
custom title and logo

small changes

add pinned item to sidebar

rebase?
2020-05-25 17:21:02 -04:00
Baltazar Gomez ca4bbf53df
Support drag-and-drop file publishing (#4170) 2020-05-25 10:27:36 -04:00
btzr-io 036cf734c6 prevent state updates after component unmounted 2020-05-13 10:18:36 -04:00
Baltazar Gomez 1f6dd89e55 create effect to load blob from streaming url
Use this on the web for files that need to wait for the full stream
2020-05-13 10:18:36 -04:00
Baltazar Gomez dc10a2ddf1 create effect for file stream: fix #2777
Use this effect instead of the "file://" protocol
2020-05-13 10:18:36 -04:00
JT Turner b0ed767c27 Fix channel reply switching channels. 2020-05-01 14:46:29 -04:00
Mr. X 4efc0fbd3e fix: better hover use-effect 2020-04-23 13:10:41 -04:00
seanyesmunt 691e648f6a ensure we properly track if users want to skip the rewards intro 2020-03-16 14:49:47 -04:00
seanyesmunt 292f547c59 initial commits included in #3809 2020-03-16 14:49:47 -04:00
Sean Yesmunt 80f24edcb3 Revert "skip rewards validation on future sign ins if user clicks 'skip' button"
This reverts commit 8a73cdbc0b.
2020-03-13 21:16:30 -04:00
Sean Yesmunt 8a73cdbc0b skip rewards validation on future sign ins if user clicks 'skip' button 2020-03-13 18:25:04 -04:00
jessop 33672a789b app plays embed in iframe
make player full screen and prepared for overlay actions

small changes

cleanup
2020-01-28 10:20:54 -05:00
Sean Yesmunt e1dd28fff6 use new player api for streaming 2020-01-24 11:26:19 -05:00
Sean Yesmunt ad125b3d2a bump sdk and comment out thumbnail gets on desktop 2020-01-17 14:57:09 -05:00