Commit graph

4945 commits

Author SHA1 Message Date
Rafael
bc68207f40 Refactor fileTitleSection
- selectInsufficientCreditsForUri unused
- used util function instead of redux selector for title
- only pass needed claim props
2022-02-08 12:35:40 -05:00
Rafael
fc30a74cd1 Improve fileActions Buttons style on mobile view
- Move label to bottom instead of to the side
- Decrease font, sizes and spacings
- Make sure all fit in a single line even on smallest screen size
2022-02-08 12:35:40 -05:00
Rafael
416238db29 Switch some file action buttons to menuItems
So everything can fit better on mobile view
2022-02-08 12:35:40 -05:00
Rafael
5794432288 Refactor fileActions
- moved doPrepareEdit incognito and channel calls to separate action
- same with download
- Tooltips
- No major differences between mobile or default returned components so removed condition since mobile style will be changed later on this branch
2022-02-08 12:35:40 -05:00
Rafael
1fb154f7fe Refactor claimCollecitonAddButton
- claim makeSelect to select
- only interested in claim's stream_type
- Tooltip
2022-02-08 12:35:40 -05:00
Rafael
c9fbf197f9 Refactor claimSupportButton
- Tooltip
- only interested in repost value from claim
2022-02-08 12:35:40 -05:00
Rafael
21a5e27cd2 Refactor fileReactions component
- makeSelectReactionsForUri and selectThemePath were not being used
- isLivestreamClaim from redux
- Reduce repetition, make single reaction component
2022-02-08 12:35:40 -05:00
infinite-persistence
1e7e7a7b7a
Notifications: use fetched urls instead of resolving (#820)
* Fix avatar occasionally stuck in spaceman

## Issue
Sometimes, we'll see a channel profile (e.g. in upper-right, in channel selector) stuck in the fallback Spaceman image.

This is due to OptimizedImage always starting with a blank src, and updated later when the mounted size has been determined. ChannelThumbnail, which uses OptimizedImage, captured the `onError` due to blank src.

## Fix
Don't mount the <img> until the optimum size has been determined.

* FileThumbnail: skip resolve if thumbnail url is specified

* UriIndicator: skip resolve if channel info is specified

* Notifications: disable batch resolve + use fetched data if available + fallback to resolve if n/a

The fallback is using the individual resolve when no direct data is provided and claim is undefined.
2022-02-07 15:59:20 -05:00
AsadUmar
d73504d69c
fix render of toggle. (#819)
Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2022-02-07 13:35:17 -05:00
infinite-persistence
c67893815b
i18n updates and fixes (#822)
FileExporter - fix double translation. Just let the client provide the string to use.

Collection - translate built-in lists
2022-02-07 13:15:22 -05:00
David Granado
ce903c9280
Patch to restore position upon returning to video until more fully fleshed out fix can be introduced (#817)
* Patch to restore position upon returning to video until more fully fleshed out fix can be introduced

* Add code to notify other open tabs of position saving

* Fix typo

* Wrap localStorage access in try/catch in event browser settings make it unavailable

* Remove formatting changes

* Move constant from 'pages' to 'player'

* Move dispatch out of try/catch

* Fixed typo
2022-02-07 12:51:26 -05:00
AsadUmar
65ad2df643
fix RESOLVE_URIS_COMPLETED, to have one large action instead of hundr… (#798)
* fix RESOLVE_URIS_COMPLETED, to have one large action instead of hundreds of small ones

* Addressed comments.

* Addressed comments.

* Addressed comments.

Co-authored-by: Asad Umar <au@visuary.fr>
2022-02-07 12:39:12 -05:00
infinite-persistence
e879cd3968 Update chat channel
There is no #help in the new odysee Discord.  Closest I can find is #support
2022-02-07 10:22:20 -05:00
infinite-persistence
bfb8e90b1e Limit embed generation to just Audio and Video
## Ticket
761 Should Posts have embed links

The original code also supported all text modes like PDF, all of which looked really bad, so it's unlikely someone is utilizing it.

Disabling them until a designer can fix 'em.
2022-02-07 10:21:33 -05:00
Asad Umar
373f7f75e0 useHasWindowWidthChangedEnough 2022-02-07 10:18:50 -05:00
Asad Umar
bdc5c2e9fb optimize useWindowSize 2022-02-07 10:18:50 -05:00
Asad Umar
df320a2375 fix useWindowSize (again) 2022-02-07 10:18:50 -05:00
Asad Umar
e45ef63d41 fix useWindowSize 2022-02-07 10:18:50 -05:00
Asad Umar
00c9410253 fix useScreensize 2022-02-07 10:18:50 -05:00
Asad Umar
e0f01a58d2 fix expandable view 2022-02-07 10:18:50 -05:00
Asad Umar
b2093e822a hook made for listening to resize events ie use-on-resize.js, with a debounced callback as to make performance even better. 2022-02-07 10:18:50 -05:00
Asad Umar
e4abc7ef41 WIP
fixed the issue by removing the useRect, and putting in a resize event, going to try and make the code cleaner by removing all that logic and putting it in a hook.
2022-02-07 10:18:50 -05:00
Thomas Zarebczan
fd1ee4f43c
recsys take 99 2022-02-04 18:38:42 -05:00
infinite-persistence
fae68d40fd Category: Featured 2022-02-03 11:02:59 -05:00
infinite-persistence
fe3a55ff95 Remove custom comments server
- Not used by Web.
- It's basically a revert of Desktop 5459.
2022-02-03 10:24:58 -05:00
Rafael
9b7dbc97b2 Add Featured Icon 2022-02-02 23:53:12 -05:00
David Granado
63a3602464 Case insensitive subscription filter 2022-02-02 09:50:55 -05:00
Thomas Zarebczan
fc99d85efc Add max bitrate messaging
Disable form on error

Fix resetting
2022-02-01 17:26:09 -05:00
David Granado
c7a23058c8 Only show subscription filter when more subs than initial limit 2022-02-01 10:20:00 -05:00
David Granado
652d98f6c6 Factor out input to isolate component updates 2022-02-01 10:20:00 -05:00
David Granado
5048c460f1 Add padding around search input 2022-02-01 10:20:00 -05:00
David Granado
8e94044904 Adjust 'no results' styling 2022-02-01 10:20:00 -05:00
David Granado
d7845f2988 Remove unneeded class 2022-02-01 10:20:00 -05:00
David Granado
a869e9dc2c Add channel list filter 2022-02-01 10:20:00 -05:00
Rafael
e9a003328d Avoid persistent lone question mark on url 2022-02-01 09:02:57 -05:00
Rafael
df360f7ccc Fix player error 2022-01-31 17:27:41 -05:00
Rafael
3d4a4cd960 Add escapeHtmlProperty on url params 2022-01-31 14:22:39 -05:00
Rafael
1628d4901c Revert encode share embed url 2022-01-31 14:22:39 -05:00
Rafael
b30a8568e5 Fix embed url param parsing 2022-01-31 14:22:39 -05:00
Thomas Zarebczan
92f0fd8745
More cleanup 2022-01-31 11:39:03 -05:00
David Granado
f09c6d7a50 Fix play btn calcs as audio tag was not measuring as expected 2022-01-31 11:32:44 -05:00
Thomas Zarebczan
5ee2f40608
Take 2 encoding test 2022-01-29 15:24:35 -05:00
Thomas Zarebczan
b3d9fe5473 Force stop event on dispose 2022-01-28 16:19:27 -05:00
infinite-persistence
1d8105a84a Stop autoplay-next countdown when any input is in focus.
## Issue
On large screens, the comment field and autoplay countdown can both be visible at the same time. The currently code only stops the timer when the countdown component is not visible on screen.

The page annoyingly navigates away while typing.

## Change
When servicing the timer, check if the current active element is an input type. As far as I know, there is no React equivalent for this.
2022-01-28 09:11:15 -05:00
Rafael
898376888d Fix 2022-01-27 11:32:01 -05:00
Rafael
6544f4c0b6 Fix resolve mentioned_channels 2022-01-27 11:32:01 -05:00
Rafael
44213fbad2 Properly parse URIs for invalid terms 2022-01-27 11:32:01 -05:00
Rafael
e4d5d69524 Use uri from props instead of location
- which was causing it to fail on popout chat for example
2022-01-27 11:32:01 -05:00
David Granado
cab4b3aba8 Return empty array rather than null from selectRepliesForParentId 2022-01-27 09:51:45 -05:00
David Granado
7dfbe5a539 Fix null property access bug 2022-01-27 09:51:45 -05:00
Thomas Zarebczan
a8418025db
Clean up buy page 2022-01-26 11:13:46 -05:00
infinite-persistence
47fa736bdc Channel Thumbnail: handle json errors
1. Added size-specific error message.
2. Route whatever Vanwa's error instead of showing "unexpected json token". It's ugly, but at least it contains the reason string.
2022-01-26 08:32:40 -05:00
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
Rafael
2340138ab5 Fix failed resolve 2022-01-20 14:02:39 -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
71328274ec Remove unused FIRST_SUBSCRIPTION modal -- it is now just a toast. 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
89b46265ab Help Page: remove 'app' to get rid of old 'accessToken' calls 2022-01-19 13:12:09 -05:00
infinite-persistence
801d24ae10
Update remaining chat link (#741) 2022-01-19 09:27:11 -05:00
infinite-persistence
adc9575504
Category-metadata: add stub for Education + cleanup old categories (#735) 2022-01-19 09:04:15 -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
infinite-persistence
e4658bb044
Fix missing claims in large collection (#726)
## Issue
A huge list like http://localhost:9090/$/list/d91815c1bc8c80a1f354284a8c8e92d84d5f07a6 (193 items) often produces fewer results in the final rendered list.

## Cause
The same list of IDs was passed into `claim_search`, and we just increment the `page`. However, it seems like `claim_search` does not honor the order between each call, and some results from the previous page took the place of the results in the next page.  The total is the same, but there are now duplicates.

## Fix
When batching, slice the ID list ourselves to bypass the problem for now.
2022-01-18 09:33:01 -05:00
Thomas Zarebczan
e890e2f4f8
Fix crash 2022-01-17 23:24:59 -05:00
infinite-persistence
bdb83b5295
Commentron: *Delegates was failing silently
Added toasts to indicate errors instead of failing silently.
2022-01-18 10:46:18 +08:00
infinite-persistence
c1cb9345ad
Commentron: param updates for moderation.*Delegates
## Reason
https://odysee-workspace.slack.com/archives/C02FMSYF51B/p1642435815038000?thread_ts=1642129696.024400&cid=C02FMSYF51B
Due to unaligned parameters not compliant with Authenticate, ModAuthenticate APIs.

It will still work without this PR as there is a compatibility layer, but should use the correct params moving forward.
2022-01-18 10:43:58 +08: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
infinite-persistence
7989020a04
Corrected mentioned_channels parameter name (#719)
Commentron json params are usually underscored instead of camel-cased.

Double-checked commentron code:

```
// MentionedChannel channels mentioned in comment
type MentionedChannel struct {
	ChannelName string `json:"channel_name"`
	ChannelID   string `json:"channel_id"`
}
```

The parameter should probably also be skipped instead of sending empty array, but leaving as-is for now since that is minor.
2022-01-17 08:44:45 -05:00
infinite-persistence
5dc1d416ef
CHANNEL_UNSUBSCRIBE: handle colon vs. hash uris (#706)
## Ticket
644 investigate following vs subscription preference data

## Issue
- iOS app uses colon for following/subscriptions.
- Front-end code handled the "colon vs. hash" for CHANNEL_SUBSCRIBE, but not for CHANNEL_UNSUBSCRIBE
2022-01-17 08:39:06 -05:00
infinite-persistence
ee71caf2bc
Comment api: re-format to single-line.
This will be an exception where the non-wrapped version is easier to read.
2022-01-17 14:34:41 +08:00
infinite-persistence
9743f4b49e
Move commentron error mapping to separate file 2022-01-17 10:25:06 +08:00
infinite-persistence
c1af19c7b9
Creative Arts strings 2022-01-17 09:28:02 +08: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
b810e07053
Fix doAbandonClaim (#699)
* Refactor doAbandonClaim parameters to only claim

- Gets txid and nout by default now, and passing claim allows using more data to verify ownership in case of txid:nout failing again
- Unused on modalRemoveCard
- Edited the comment on doCollectionDelete to explain better

* Fix doAbandonClaim failing to select my claim
2022-01-14 14:26:03 -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
Thomas Zarebczan
53155bd7d6
Add back sorting on tags page 2022-01-14 12:39:33 -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
saltrafael
f3892325ce
Find and Pass mentioned channel name + claim id on comment_create (#690) 2022-01-14 09:50:09 -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
infinite-persistence
7affa8b7a1
Fix advanced filter showing up in Wild West (#695)
Behavior we want:
- hide Advanced Filter for Wild West
- show Advanded Filter & Filter for everything else
2022-01-13 22:00:41 -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
infinite-persistence
eb420af865
Thumb Generator: switch to jpeg + lower quality when needed
The quality API doesn't work on the default PNG but works on JPG.

- Switching to JPEG (100%) produces a smaller image than the default PNG. This covers most scenes.

- For some scenes, the size could still be larger than 2MB, so retry with JPEG (80%). For a 1080p image, this action produces the file at <1MB range. The quality still looks ok, I think.
2022-01-13 12:50:26 +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
infinite-persistence
431f55ef26
Delete pixel experiment (#683) 2022-01-12 10:14:44 -05:00
infinite-persistence
3d246a30ba
Fallback to main language (xx) when sub-language (xx-yy) is not supported. (#682)
## Issue
656 Automatic language detection can't recognize de-DE as de

## Note
We do fallback to the main language, but seems like the code got lost ... not sure when, but probably during the CN/TW or PT-BR support. The refactor in  81e47300 still did that, but the refactor was reverted due to some compilation issue (should revisit that someday).

## Change
Put back equivalent code.
2022-01-12 09:46:57 -05:00
Dan Peterson
1f596e963d
Make sure to specifically query for streams (#671) 2022-01-11 12:08:55 -05:00