Commit graph

5811 commits

Author SHA1 Message Date
mayeaux
628da8bb04
show controls if both calls to play fail (#1724) 2022-06-24 08:52:01 -04:00
infinite-persistence
7ea73c3f1b
Recsys: improve data stashing frequency
## Issue
The 15s saving interval (hijacking the position-saving code) is too far apart, causing rescys data to be lost when tab is closed/refreshed.

## Change
While I think it is fine to save to redux every second, it is still best to avoid that since a state change will always cause the map-to-props to evaluate.

Chose 5s as the interval and moved away from the position-saving code (the recsys videojs plugin is a better choice to handle this).

Also save it on `t=1` so that at least we know it played prior to the tab refreshing/closing.

## Considered
- Didn't want to do `beforeunload` again since it is unreliable and a pain to test in mobile.
2022-06-24 16:54:55 +08:00
infinite-persistence
8aa831fe49
Recsys: fix resumed-send missing totalPlayTime
Ticket: 1751

## Issue
The `totalPlayTime` resides in the videojs plugin and is only sent to the recsys object in `onPlayerDispose`, so it missed the redux rehydration in the browser close/refresh scenario.

## Change
Update the recsys value for `totalPlayTime` immediately so that it'll be part of the redux stashing (and later, rehydration).

Note that recsys data is currently being saved to redux in a 15s interval. Will change that in the next commit.
2022-06-24 16:52:08 +08:00
mayeaux
4f47779303
Preorder content functionality (#1743)
* adding preorder button

* adding preorder modal

* frontend mostly done

* check if its already purchased

* refresh page after purchase

* smooth out purchase process

* check if user has card saved

* handle case where its the users own upload

* fix transaction listing order bug

* cleaning up code for merge

* fix lint errors

* fix flow errors

* allow eur purchases

* support eur on customer transaction page

* fix css
2022-06-23 20:58:32 -04:00
Thomas Zarebczan
017df02816
Update thumbnail cards URL (#1748)
And function name - was confusing that we had 2 with different paths.

Use 1280x720 to improve caching (used on mobile/tablets). There's no real spec for size.
2022-06-23 18:09:48 -04:00
Rave | 図書館猫
305673999b
Update thumbnail paths (#1747) 2022-06-23 22:33:32 +02:00
Thomas Zarebczan
553a801bc3
fix tip target page 2022-06-23 09:14:47 -04:00
Thomas Zarebczan
29b2a8aeff
use new reporting endpoint
fixes #1698 at least for now
2022-06-23 08:47:34 -04:00
infinite-persistence
7cbb7a54aa
Handle browsers that don't support IntersectionObserver (#1739)
* Remove ad-handling in videojs.jsx

Primary impetus is to remove unnecessary IntersectionObserver usage, but it should be removed anyway because:
- no longer relevant today with Adnimation's script.
- we also globally hide floating ads now, so no more invisible divs.
- the code is wrongly placed -- it's not the responsibility of the Videojs component.

* use-lazy-loaded: skip if IntersectionObserver is not supported

## Issue
Page not loading in older Safari (e.g. ipad air 2)

## Approach
Instead of using a polyfill (which comes with implementation caveats), just not apply the lazy-loading for those old browsers. Not lazy-loading is better than not loading at all, plus this is way easier to test (even by just reading the code) than testing out the polyfill implementation's caveats.

The cons is we would need the polyfill if we use it in other places in the future.

## Code Changes
Factor out the src-setting code, and use it directly when IntersectionObserver is not found.
2022-06-23 08:10:27 -04:00
Raphael Wickihalder
3687292cdf
Fix button padding on mobile 2022-06-23 13:53:19 +02:00
infinite-persistence
053e214c86
PublishReleaseTime widget improvements (#1740)
* PublishReleaseDate: improve calendar error handling

Ticket: 1738

- Report invalid `minute` and `day`. The 3rd-party widget auto-corrects the other fields. Don't think there is a way to make it autocorrect for all.
- Report invalid range (cannot set to future date).

* Block form on releaseDate error instead of silently sending last valid value

which does not tally with what's on screen.
2022-06-23 07:27:08 -04:00
Thomas Zarebczan
b6f9b0e6d4
Add token to help page (internal) (#1737) 2022-06-22 12:32:17 -04:00
Raphael Wickihalder
d1958d3775
Add help button to header in guets mode 2022-06-22 18:25:24 +02:00
infinite-persistence
486a557d75
Recsys: capture and use x-uuid from search results (#1727)
* Recsys/FYP: add documentation.

* Recsys: capture and use `x-uuid` from search results

Ticket: 1717
2022-06-22 09:43:54 -04:00
infinite-persistence
63a2430a7c
ReportContent: redirect back after logging in (#1733)
## Issue
1709 - If you sign in while reporting, you end up in the homepage

## Notes
The other option is to just make `<Header>` always redirect back to where it came from using the full path. But existing code elsewhere seem to always trim off any params (e.g. `location.search`, `location.hash`) when doing redirects.

So, ended up making it generic and let the caller decide where to redirect (and with what params).
2022-06-22 09:07:15 -04:00
infinite-persistence
9e4ac047ca
Str and cleanup 2022-06-22 20:53:34 +08:00
Rave | 図書館猫
3bfdd7e920
Add platforms to share buttons (#1721)
* Add Minds to share buttons

* Add Telegram & WhatsApp

* Adjust style on mobile

* Adjust WhatsApp share url on desktop

* Freeze icon size

* Adjust share buttons
2022-06-22 08:23:40 -04:00
infinite-persistence
e2166b6f03
Change collection item fetch-page from 5 to 50 (#1732)
In `doResolveUri`, if the `uri` is a collection, it will attempt to fetch all items in the collection.

Can't think of any special reason to keep the page-size small, and not seeing any notes in the commits either. It just ends up making several `claim_search` of 5's until all items are fetched.
2022-06-22 08:04:22 -04:00
Rave | 図書館猫
86fcd87f53
Notification Menu Upgrade (#1713)
* Mark notification as seen on hover

* Clean code

* Mark notifications as seen on button click

* Clean code

* Animate bubble
2022-06-21 20:59:37 -04:00
mayeaux
061f4ab08f
fix progress bar hover (#1726) 2022-06-21 11:22:20 -04:00
infinite-persistence
ee3236fe1e
Recommendations: factor out a selector for raw results
1606
2022-06-21 22:14:07 +08:00
infinite-persistence
539cc062b6
DRY: fix duplicate code for Recommended key generation
Must use `getRecommendationSearchOptions`, otherwise there is a chance of some clients deriving the wrong key.
2022-06-21 22:14:07 +08:00
mayeaux
d50f51bd3b
fix plays inline bug on ios (#1723) 2022-06-21 09:55:25 -04:00
Raphael Wickihalder
3e0f1c63c9
Update snackbar design 2022-06-21 10:11:28 +02:00
Raphael Wickihalder
b53fc3732e
Redesign error nag 2022-06-21 08:34:27 +02:00
mayeaux
63f7a8f15c
bugfix streams continuing to run in the background (#1714) 2022-06-20 18:17:12 -04:00
Rave | 図書館猫
20ff660cb2
Minor design fixes in modals (#1711)
* Minor design fixes in modals

* Adjust button icon color
2022-06-20 13:51:57 +02:00
Rave | 図書館猫
d40260374d
Inject close button into footer banner ad (#1710)
* Make shouldLoadSticky dynamic again

* Adjust of statement

* Update statement again...

* Adjust selector. Again.
2022-06-17 12:07:08 -04:00
infinite-persistence
f9ebd0863d Consolidate the mobile tile to use the poster size for better caching.
It's all approximation anyway.
2022-06-17 11:58:43 -04:00
infinite-persistence
b8fceacb8a Only apply the larger thumbnail width on mobile + tile layout
## Ticket
1526 strange thumbnail size requested on mobile layout (pc only?)

## Notes
The 900px was to account for blur tile thumbnails in mobile homepage (4f4803c6).
Fix to only do that in tile mode.
2022-06-17 11:58:43 -04:00
Raphael Wickihalder
eea0ec16e0
Fix notification menu height / transparency issue in firefox 2022-06-17 12:35:18 +02:00
Raphael Wickihalder
7cdeb9593f Add settings page button to header in guest mode 2022-06-17 18:23:53 +08:00
Raphael Wickihalder
845b70f52c
Adjust ad design 2022-06-17 12:20:35 +02:00
Raphael Wickihalder
8e15f30ace
Fix typo 2022-06-17 11:27:23 +02:00
Raphael Wickihalder
9ad8c31e3f
Adjust ads style in light theme 2022-06-17 11:23:46 +02:00
Raphael Wickihalder
30e16841a5
Adjust ad design 2022-06-17 11:22:18 +02:00
Raphael Wickihalder
70a19d32be
Add preventDefault to notification delete 2022-06-17 06:22:24 +02:00
infinite-persistence
df2a717e8d Change poster-fetch implementation
## Ticket
1526: strange thumbnail size requested on mobile layout (pc only?)

## General Problem
It was trying to fetch based on the exact size of the video container, which would satisfy Core Vitals (in an overkill way), but would bring several issues:
- server-side caching would not work since everyone's window size is different in a responsive layout design.
- the additional 200ms wait for container size to settle down is not good (hardcoded wait time).
- the code did not account for device-pixel-ratio, so it's quite a futile effort.

Aside:  In the past, we used to take the same image url as the tiles, so the video poster would appear immediately from due to browser cache, but the quality is bad because the tile requested a much smaller size.

The embed wrapper was not going through the CDN either as a null `containerRef` was passed in.

## Change
Removed the container-size check and just request for 1280x720. Reasons for this size:
- On average, that would be the ballpark of the final calculated value anyway for the average screen (+DPR consideration).
- That seems to be the current suggested thumbnail size in most recommendations.
- Our YT Sync is grabbing a much smaller size anyway.
2022-06-16 15:18:15 -04:00
Rave | 図書館猫
70dad5e057
Notification menu patch (#1701)
* Add href links to notification menu entries

* Add href link to notification page

* 2nd try
2022-06-16 15:56:39 +02:00
mayeaux
4d849a4821
Revert "Add href links to notification menu entries (#1699)" (#1700)
This reverts commit 268130a913.
2022-06-16 15:22:45 +02:00
Rave | 図書館猫
268130a913
Add href links to notification menu entries (#1699)
* Add href links to notification menu entries

* Add href link to notification page
2022-06-16 14:42:16 +02:00
infinite-persistence
3e5a9ba193
Rename: use-thumbnail --> use-get-poster
This disambiguates the other effect file called `use-get-thumbnail`, and is also clearer.
2022-06-16 12:04:52 +08:00
Thomas Zarebczan
5c939d0e32
Fix YT sync requirement 2022-06-15 10:56:16 -04:00
Anthony
c3fd7ab8d7 show poster on first audio file 2022-06-15 09:59:41 -04:00
Anthony
90c2272720 fixing first thumbnail bug 2022-06-15 09:59:41 -04:00
infinite-persistence
e70ed61d4e OBR-hack: move AdsSticky up to make it load first
We are asking Outbrain to make it order-agnostic, but for now, we need to load the Sticky script first before the Banner script.

This is ugly code because the requirement is not obvious unless we put a bunch of comments, but I don't want to pollute `app/view.jsx`. Hopefully they can address this and we can revert in the coming days.
2022-06-15 07:34:36 -04:00
mayeaux
bd9a6ac2bb
Bugfix live status state (#1689)
* fix bug and add some documentation

* Prevent is_live fetching when playing stream and going back to livestream page

Co-authored-by: Rafael <rafael.saes@odysee.com>
2022-06-14 09:33:56 -04:00
mayeaux
e6a563443e
Allow capture of name during adding of card (#1657)
* allow someone to save name during card signup

* regexp to not allow numbers or special characters

* add i8n string

* various touchups
2022-06-14 09:21:47 -04:00
Rave | 図書館猫
4ffec69f25
Mini-Player controls patch (#1688)
* Remove draggable component from mini player on mobile

* Replace draggable disabling method

* Clean code
2022-06-14 08:16:23 +02:00
infinite-persistence
363fe82050
Fix chromecast title handling (#1685)
Fixed the title that did not update from stale closure because we no longer re-initialize the plugin.

We still continue to sever the connection when switching sources for now (although videojs is now single-instance) due to a problem that stops the next remote playback after 5-10 seconds. Unclear whether it is the plugin problem or due to our changes (although I don't see this issue in their repo).
2022-06-14 00:34:35 -04:00