Commit graph

2474 commits

Author SHA1 Message Date
Thomas Zarebczan
ed0f574339 Respect disable download button tag
Fixes https://github.com/OdyseeTeam/odysee-frontend/issues/742
2022-01-25 15:51:45 -05:00
David Granado
a417cc3aca Correctly encode the path for query string 2022-01-24 11:21:43 -05:00
David Granado
04aa77253f Only send search request when string length enough for api expectation. 2022-01-24 11:16:30 -05:00
infinite-persistence
7fc66aecb6 Defer user/invite_status from startup
## Issue
Closes 385

## Approach
As mentioned in the ticket, the current places where that info is needed is in the Invites Page and Social Share Component.

1. Invites Page: it is already doing the fetch on mount, so no issue there.
2. Social Share: show spinner until the data is fetched.
2022-01-21 09:19:17 -05:00
infinite-persistence
a8a666383a Remove 'store.user.accessToken' now that we've confirmed nobody uses it. 2022-01-19 13:12:09 -05:00
infinite-persistence
0c9859e3ac Remove <UserEmail> -- I think it was a Desktop thing 2022-01-19 13:12:09 -05:00
infinite-persistence
fc20f6ab0b Remove unused 'accessToken' props 2022-01-19 13:12:09 -05:00
infinite-persistence
18c7469d25
Top Search: handle view count for Repost (#736)
## Issue
Closes "87 Repost - Top result should show followers properly"

The winning url for "bret" search is "lbry://bret", which is a repost.

## Change
We need to use the canon url to retrieved the fetched view count.
2022-01-19 09:04:01 -05:00
infinite-persistence
3338f9142c
ClaimList: fix missing key (#737)
## Issue
From the Draggable PR, the draggables retained the key but regular lists lost it.
2022-01-19 08:48:20 -05:00
infinite-persistence
b72127411c
Comment options: hide "Remove" when comment is removed. (#738)
## Issue
Closes 295 Livestream chat: Deleting comment that was already deleted by someone else, makes chat blank.
2022-01-19 08:42:39 -05:00
Thomas Zarebczan
24d53cd7d8
Formatting improvements (#731) 2022-01-18 13:30:43 -05:00
Thomas Zarebczan
df2ed078b3
Fix collection filter 2022-01-17 12:06:59 -05:00
Thomas Zarebczan
507d34dd8c
Odysee chat updates 2022-01-17 11:19:01 -05:00
Thomas Zarebczan
62dd12ab78
New discord for rewards 2022-01-15 23:45:14 -05:00
Thomas Zarebczan
0b5f10c508
Allow hide chat on mobile 2022-01-14 18:51:33 -05:00
saltrafael
031a3a2f0a
Fix sidebar on mobile (#703) 2022-01-14 16:07:44 -05:00
saltrafael
a1a7ca321f
Fix livestream key listeners (#702) 2022-01-14 16:07:21 -05:00
saltrafael
ea9c7a4a27
[Live Chat] Break down componets for Page Layout + Add ability to Pop Out chat window + Hide chat option (#681)
* Refactor CommentBadge

* Refactor livestreamComment component

* Refactor and split livestreamComment CSS

* Refactor livestreamComments component

* Refactor and split livestreamComments CSS

* Remove never used spinner

* Refactor livestream Page

* Refactor page component

* Refactor livestreamLayout component

* Break apart livestreamComments into separate sibling components

- This helps separating LivestreamComments to deal with only the comments, and the LivestreamLayout to be used for its own Page as a Popout option, and also for a layered approach for mobile

* Create Popout Chat Page, Add Popout Chat Menu Option

* Add Hide Chat option

* sockety improvements

* Websocket changes

Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2022-01-14 15:24:16 -05:00
saltrafael
83378174b7
Prevent Up and Down keys being overriden by MUI listeners when not in use (#698) 2022-01-14 12:55:42 -05:00
infinite-persistence
344da194ca
Resolve claim and stream types when there is a filter (#696)
* Resolve claim and stream types when there is a filter

## Symptom
Channel Page 'Content Type' filter not working

## Issue
The Advanced Filter work by placing a `?content=` URL param. The list component then parses it and makes the `claim_search` params accordingly. But:

1. There is a mix up in how the list component treats `?content=`.
    - The original code seems to treat this as a way to define the type externally but only for a list without `claimType` defined via code. In other words, if `claimType="something"`, `?content=` is ignored.
    - On the other hand, the Advanced Filter relies on `?content=` being used.

2. `?content=` is then split between `claimType` and `streamType`. The current code does not check if the split makes sense, e.g. if `?content=channel` and `streamType=['video']`, these 2 are incompatible and produces no results.

## Change
1. I'm not really sure what's the original intention, but let's just make `?content=` as an override/filter.

2. `?content=` should probably be limited to always be a subset of `claimType` and `streamType`. But this seems complicated to do, so for now let's just make always override/filter everything.  For that, we need to make sure the filtered `claimType` -- `streamType` combo makes sense.

* Fix 'Channel' filter not working in Wild West

## Cause
The Wild West list defines `release_time` to be 1 week ago. As long as this parameter exists, a channel `claim_search` produces no results (I thought channels have creation dates?). That is why an unfiltered Wild West never showed Channel Tiles.

## Change
The existing `release_time` handling does seem to hint that we should not set the parameter when searching for Channels. Expanded that to consider the final (filtered) claim type, not just the original.
2022-01-14 11:06:13 -05:00
infinite-persistence
0d6cd21457
Fix ignored 'Content Type' filter (#694)
## Issue
After enabling Advanced Filter in Category Pages, the 'Content Type' filter only works for "repost/video/list".

## Root-cause
When `streamType` is not provided, it defaults to 'Video|Audio', making it always "defined":

```
streamType = SIMPLE_SITE ? [CS.FILE_VIDEO, CS.FILE_AUDIO] : undefined,
```

This seem to override the purpose of `defaultStreamType`, which will not be used unless the client explicitly set `streamType=null`, which currently is only being applied for `RECENT_FROM_FOLLOWING[]`.

```
  const streamTypeParam =
    streamType || (CS.FILE_TYPES.includes(contentTypeParam) && contentTypeParam) || defaultStreamType || null;
```
2022-01-13 22:03:04 -05:00
Thomas Zarebczan
e2f414f98c
filtering improvements (#692)
+ limit wild west to 3 claims per channel
+ hide language for now until we can sync homepages + settings
2022-01-13 16:13:49 -05:00
saltrafael
e1bbd9984a
Fix mentioning with enter (#691) 2022-01-13 13:36:07 -05:00
infinite-persistence
4ae1df4eb9
Thumb: make CDN limit an env so we can change easily 2022-01-13 13:18:41 +08:00
Thomas Zarebczan
9e70629ada
Fix comment disabling on MD (#685)
Also restore reactions
This is only an internal tag
2022-01-12 16:26:28 -05:00
saltrafael
2575c5d448
[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
2022-01-12 14:14:12 -05:00
Dan Peterson
1f596e963d
Make sure to specifically query for streams (#671) 2022-01-11 12:08:55 -05:00
Dan Peterson
dcfb64d907
Make the hide setting optional and don't use it on the channel page. (#670) 2022-01-11 11:46:13 -05:00
infinite-persistence
e58ddbc809
View/Follower count: only use compact when > 10k (#664)
* Tooltip: add 'followCursor' and 'placement' option

When used on a `<span>` with short text but large empty area, the location of the tooltip was at the bottom-center of the area, which isn't ideal.

I think 'followCursor' should be the default, but making it optional for now to minimize testing.

Also added the 'placement' prop -- for the span case again, the mouse cursor is blocking the tooltip.

* View/Follower count: only use compact when > 10k

## Issue
Received complaints -- some people prefer to see full resolution.

## Changes
- As a compromise, we'll only apply the compact notation when the value is greater than 10k, with the exception of Tile View Count, where we'll always apply it due to space limitation.
- Also added Tooltip for Follower count.

## Fixes
- The string was always in 'en' locale in some instances, so it wasn't grouping up digits properly in Japanese (groups of 4), for example.
2022-01-11 11:42:12 -05:00
Dan Peterson
1a57b02f80
Enable the new scheduled tag filtering and set the buffer back to 35 minutes (#669) 2022-01-11 11:33:33 -05:00
infinite-persistence
3bba4ab630
Fix infinite scroll when "Upcoming livestream" appears (#665)
## Issue
When "Upcoming livestream" appears in a list, infinite scroll stops working.

## Cause
The difference between `mainEl.getBoundingClientRect().bottom` and `window.innerHeight` became slightly greater than 0.5, so it was deemed as "haven't reached the bottom".

## Change
Coincidently, I've been wanting to make the inf scroll load earlier (instead of after reaching the absolute bottom) to make the experience smoother, so added a 200px threshold, which is roughly the height of a tile. This gets us the new behavior while also fixes the original problem.
2022-01-11 08:26:44 -05:00
mayeaux
373766c5b5
Fix vidcrunch on ios to only show ad when its scrolled to (#651)
* fix vidcrunch on ios to only show ad when its scrolled to

* clean up and optimize code
2022-01-10 22:21:55 +01:00
Max Kotlan
c9108f530c
mobile menu fix animation close on page load (#652) 2022-01-10 13:14:46 -05:00
infinite-persistence
0147af156c
File page: use compact follower count 2022-01-10 11:13:33 +08:00
infinite-persistence
1d4e1296ec
File page: use compact view count (w/ tooltip for full res) 2022-01-10 11:05:49 +08:00
infinite-persistence
df4d142370
Factor out 'toCompactNotation' 2022-01-10 10:42:56 +08:00
Thomas Zarebczan
ac93e0c22c
2MB max thumb size messaging (#650) 2022-01-07 14:39:27 -05:00
mayeaux
b822fbdac8
fix ios can autoplay bug (#640) 2022-01-06 22:20:42 +01:00
Dan Peterson
a89cb17ce4
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
2022-01-06 16:13:26 -05:00
mayeaux
58bdcbd1ed
Reduce triple call to single call, improve video loading, fix embed play button being off-center (#546)
Lots of optimizations and cleanup for the player. If we run into any strange issues, can revert.
2022-01-06 14:28:27 -05:00
Dan Peterson
bc38466abf
Add a better solution for 304 browser bug + update naming conventions to better articulate what's happening (#603) 2022-01-06 12:49:49 -05:00
Rafael
78fde47577 Remove localization from emotes and make all names lower case by default 2022-01-06 03:54:47 -08:00
infinite-persistence
a4d2c6b0a6
Fix: account header doesn't refresh on sign up / log in (#629)
## Issue
Closes 627 account header doesn't refresh on sign up / log in

## Changes
Looking back at "[Header] Changes, fixes and improvements (#493)", noticed that old code was looking at `has_verified_email` instead of just checking whether an email exists. So, restored original code.

This does have a side-effect of the Logout button not showing any email address underneath it immediately after sign up (with the flow cancelled). But I vaguely recall it was that way previously. A refresh cleans it up.

Perhaps another `user/me` when leaving the Sign Up page can make everything in sync, but this PR simpler to test.
2022-01-05 21:56:17 -05:00
Dan Peterson
bbe68a3319
Add a setting to hide scheduled livestreams from home/following (#626)
* Add a setting to hide scheduled livestreams from home/following

* Add a hide button in the scheduled stream header.

* Fix typo + make sure pref is synced
2022-01-05 16:20:43 -05:00
infinite-persistence
a0e073b416 Remove the delayed thumbnail message for ChannelEdit
Not necessary now that we don't need confirmations for thumbnails (direct upload to CDN)
2022-01-05 11:49:41 -05:00
infinite-persistence
39a4cb3d77 Switch thumbnail server: spee.ch --> vanwanet 2022-01-05 11:49:41 -05:00
Dan Peterson
a021475128 Add an isScheduled state to publish form + use it to set the initial state of the date/time controls 2022-01-05 11:20:57 -05:00
Dan Peterson
cb562ef27d - fix issue where upload didn't show for users without replays
- better define if the form is in edit or create mode
- improve some naming conventions
2022-01-05 11:20:57 -05:00
Dan Peterson
6b809e76c4 Default to replay view when editing a liveststream 2022-01-05 11:20:57 -05:00
Dan Peterson
2eb6af10ba Update date/time cmpnts to reset any chnages they made on umount. Update schedule date/time cmpnt to clear release time when selecting anytime option. 2022-01-05 11:20:57 -05:00