Commit graph

3016 commits

Author SHA1 Message Date
infinite-persistence
cd2998d695
Membership-name state updates
- Corrected flow definitions.
- Properly differentiate between "not yet fetched" and "no membership" as "undefined" and "<empty string>", respectively. There are GUI elements that need to know the unfetched case.
2022-05-04 10:45:58 +08:00
Thomas Zarebczan
ff238978e9
remove old replay apis 2022-05-03 10:19:23 -04:00
Rafael
0a962b1884 Allow direct linking a repost create component 2022-05-03 09:36:25 -04:00
Rafael
e60813de03 Bring back repost page from previous changes for direct link 2022-05-03 09:36:25 -04:00
Rafael
d79ce20802 Fix polling from fileRenderInitiator logic 2022-05-03 08:12:20 -04:00
Rafael
9c342f56a0 Add Sync youtube channel button on New Channel page 2022-05-02 17:23:22 -04:00
infinite-persistence
a74dbe1e43 1075: Clamp comment channel-selector to commented channels only
## New behavior:
- If you have commented on a claim before, the channel selector will be clamped to that channel.
  - There might be more than 1 channel if commented in the past.
- This includes blocked comments, i.e. if the creator blocked you, you will not see your comment, yet your channel-selector is clamped to the used channel.
- EXCEPTION: you can use other channels if it's your own claim (for now).

## Approach
- Run `comment.List` over all your channels on the specific content. This covers nested replies and pagination (sweet).
  - So, if the total is non-zero, mark that channel(s) as having commented on the claim.
  - Only fetch this once per content claim.
- In the comment channel-selector, clamp the list to this value.
2022-05-02 16:07:00 -04:00
infinite-persistence
29a68eb992 1075: Fetch list of my channels that have commented on a claim 2022-05-02 16:07:00 -04:00
Rafael
129a5819d9 Refactor and fix websocket connection behavior 2022-04-29 10:43:30 -04:00
infinite-persistence
05ec4e5fbe Video-quality string cleanup
- Prevent resolution strings from appearing in `new_strings`.
- Removed unused strings.
- Added missing ones.
2022-04-29 09:42:29 -04:00
infinite-persistence
8dedbe88ec Auto-populate category page titles
Completely remove any need to update things on our side when a Category is added or changed.

Will need to inform homepage owners to directly translate the 'label' field, so we don't need to use our translation system.
2022-04-29 08:35:44 -04:00
tonybaca
9b68f936ad added setTextValue to handlePaginateKeyUp function 2022-04-28 10:27:48 -04:00
Rafael
0e8b7d6b4a Show upload menu for no-auth but redirect to sign up 2022-04-27 12:45:42 -04:00
infinite-persistence
d6a395f9a8 Fix 'content=any' not producing Channels in result
## Issue
1378
> "Content Type: Any" uses `claim_type: [streams, reposts, channels]`,  with `stream_types: ["video", "audio"]`, so channels aren't returned, and not any types of streams either.  Probably shouldn't have `stream_type` filter there.
(This also happens in categories, but maybe wanted in there?)

## Root
Due to this line in `ClaimListDiscover`:
`defaultStreamType = SIMPLE_SITE ? [CS.FILE_VIDEO, CS.FILE_AUDIO] : undefined, // add param for DEFAULT_STREAM_TYPE`

Wanted to check if this fallback was meant for Categories only or any list, but the git history is not preserved because Odysee was a squashed single-commit back in the `SIMPLE_SITE` days.

## Change
Will assume it was meant for Category Page only and moved that line from the component and into the client-side.

This also means that clients of `ClaimListDiscover` without `streamTypes` and `defaultStreamTypes` defined will no longer have `stream_types: ['video', 'audio']` as the automatic fallback (they must define `defaultStreamTypes` themselves). I think this modal is clearer -- it doesn't make sense to have filters like "content=any" but overridden quietly to `video|audio`.
2022-04-27 08:32:30 -04:00
Rafael
4669246b55 Fix switch again 2022-04-26 20:28:54 -04:00
Rafael
3ac57776e9 Revert "Revert "Fix original and livestream quality switch behavior""
This reverts commit 7effcd69e8.
2022-04-26 20:28:54 -04:00
Thomas Zarebczan
7effcd69e8 Revert "Fix original and livestream quality switch behavior"
This reverts commit 7a86d7a895.
2022-04-26 17:35:30 -04:00
Rafael
62fecf0403 Fix broken player state when app is updated and resize failed 2022-04-26 16:37:47 -04:00
Rafael
7a86d7a895 Fix original and livestream quality switch behavior 2022-04-26 16:19:59 -04:00
Rafael
8b443d343c Change logic for original option on livestream 2022-04-26 08:18:41 -04:00
Rafael
daaa787f97 Initial quality notify based on already set setting 2022-04-26 08:18:41 -04:00
Rafael
753c47ace5 Add initial change Toast notify 2022-04-26 08:18:41 -04:00
Rafael
02ac8810d9 Fix auto quality display 2022-04-26 08:18:41 -04:00
Rafael
aa1b75434d Clean up 2022-04-26 08:18:41 -04:00
Rafael
6b1bcb34a7 Fix bandwithSelector and livestream selector broken 2022-04-26 08:18:41 -04:00
Rafael
14fc7bae50 Use a single setting 2022-04-26 08:18:41 -04:00
Rafael
f1dbfa01ea lint 2022-04-26 08:18:41 -04:00
Rafael
90e20b94a8 Fix app strings 2022-04-26 08:18:41 -04:00
Rafael
69671a93d1 Fix console error 2022-04-26 08:18:41 -04:00
Rafael
ef7e6a56b4 Only change default from settings page 2022-04-26 08:18:41 -04:00
Rafael
ebad2d746a Fix Original to Auto switch 2022-04-26 08:18:41 -04:00
Rafael
b5f8a849a1 Attempt to show auto video quality 2022-04-26 08:18:41 -04:00
Rafael
73f27cc67e Add ability to store quality settings as default 2022-04-26 08:18:41 -04:00
Rafael
7390c464ac Fix undefined value case 2022-04-25 14:00:55 -04:00
infinite-persistence
7445063405 Use videojs::http-streaming for all except iPhones
## Ticket
31: "quality selector not available on safari browsers"

## Notes
The quality selector isn't populated in some Apple products -- a known issue with videojs as the platform doesn't relay the info.

But it seems like only iPhone is affected, so let's enable the override for all platforms except iPhone.
2022-04-25 09:14:24 -04:00
infinite-persistence
1ad66fccd0 Category: Hide "Repost" from ContentType filter, except for WildWest
## Ticket
1368
> can we remove the repost filter option on categories outside of wildwest/following?

## Approach
Using `context` to:
- reduce the amount of files that need to change.
- avoid prop-drilling.
- allow the ability to dynamically define the Filter's allowed values in a contained manner.

Clients that don't need customization simply does not need to wrap their component with the context.

The context only contains Content Type for now, but can include anything that future clients need to dynamically adjust.
2022-04-25 08:49:46 -04:00
Thomas Zarebczan
a6106f7427 Remove old apis 2022-04-22 12:59:34 -04:00
infinite-persistence
e4a88a5e9b SearchInLanguage: honor user's setting before category's setting.
## Ticket
Part of 1368 ("if user overrides the category homepage language with a different language setting + use 'search this language' option, use that instead. It's not typical this will happen, but probably expected.")

## Change
- Refactored to move more logic into `resolveLangForClaimSearch`
- Replaced the ternary version to make it more readable (hopefully).
- Inverted the language filter precedence by honoring the user's setting first.
  - Note: for both User and Category, URLSearchParams will always take precedence.
2022-04-22 09:39:23 -04:00
Thomas Zarebczan
e29f26958c
fix channel > channel edit 2022-04-21 14:57:48 -04:00
infinite-persistence
5249e46179 Comment: ignore minAmount when in Fiat 2022-04-21 12:22:26 -04:00
infinite-persistence
a9a2270ae9 LivestreamLink: fix flicker when a child updates
## Ticket
1358 - flicker on livestream tile when viewers updates

## Change
Defining the component that way results in unique Card wrapper on each resolve, so everything gets torn down and re-mounted, causing the flicker.

There is a css side-effect though: the tags changed from red to black. But tags are inconsistent through the app ... sometimes black, sometimes red (I think it should always be red + smaller font from the body).
2022-04-21 10:31:31 -04:00
Rave | 図書館猫
126ecd38fa
Fix theater mode related issues (#1377)
* Adjust theater mode and image pages
2022-04-21 09:31:58 +02:00
Thomas Zarebczan
b832f56929
encode channel names 2022-04-20 16:40:03 -04:00
Thomas Zarebczan
8144a9bb87 livestream new api
Re-used lots of Anthony's code + made fixes to a few areas including the publish page.

a

new videojs

video.js@7.18.1 + http-streaming@2.14.2

remove console log
2022-04-20 15:53:28 -04:00
Raphael Wickihalder
575b8f5aac
Fix theater mode on audio file pages 2022-04-20 18:05:01 +02:00
infinite-persistence
d84d11bc24
f2a63668 broke placeholder tiles 2022-04-20 23:45:39 +08:00
infinite-persistence
e64d661dcd
Support not_channel_ids through Category definition
Mainly only useful for Wild West, which doesn't use `channel_ids` (otherwise, the homepage maintainer could just exclude the id from `channel_ids` directly).
2022-04-20 22:56:16 +08:00
infinite-persistence
9ad73c9878
Hide the "results filtered by language" hint if the Category forced the language-specific search.
The user won't be able to anything about it anyway.
2022-04-20 22:56:15 +08:00
infinite-persistence
7b85d7a585
Allow Category definitions to specify language to search in.
This will be entirely up to the homepage maintainer, and will override the user's "Search only in the this language" setting.
2022-04-20 22:56:15 +08:00
infinite-persistence
778ef649e8
Wild West is now a real category, so can't use dynamicRouteProps === null to identify it.
A bit troublesome to handle, but at least the code is clearer now.
2022-04-20 22:56:14 +08:00
infinite-persistence
d52593f3b2
Move "Wild West" as part of a Category definition
- Router: no need to specify the route directly anymore (will come from definition), but we still need to disable it for certain regions.
- Sidebar: no need to custom addition anymore.

## Ticket
`odysee-homepages :: 1318`
2022-04-20 22:56:14 +08:00
infinite-persistence
f27b68587e
Restore original way to exclude categories in Homepage
It was previously done in `GetLinkData`, but accidentally removed in d854a992.
It is DRY-er to do it here rather than at the client side.

Also needed to filter in the homepage-sort dialog, so move the definition to a constant array.
2022-04-20 22:56:13 +08:00
infinite-persistence
f2a63668b7 ClaimPreviewTiles: hide abandoned tiles by default
## Ticket
1308, 1363 - "Hide/skip "removed" recsys entries"

## Change
Ported the `isAbandoned` handling from the list-layout to the tile-layout (yet another grumble on why tile vs. list is not just a css difference but an entire different component).

## Misc
Because "ClaimList + tileLayout" was showing abandoned claims by default, search around to see if it was still needed. I think only collectionsListMine would require that (or maybe not, can remove later).
2022-04-20 09:38:53 -04:00
Rafael
0dccabe692 Selector change
- and remove from where it was unused
2022-04-20 09:18:43 -04:00
Rave | 図書館猫
089fc52a7d
Filepage theater fix (#1366)
* Disable theater mode for non-video files

* Add black background to image container
2022-04-20 10:20:15 +02:00
Rafael
20c610e8c9 Fix NaN Tipped 2022-04-19 19:33:12 -04:00
infinite-persistence
f7beffaa06
Support callback method to inject items
1341
2022-04-18 19:08:09 +08:00
infinite-persistence
0e233e04a8
Generalize useGetLastVisibleSlot
It was meant to be general-purpose in the first-place, but ended being tied to ads due to time constraint and also bad documentation.

No functional change.
2022-04-18 19:06:02 +08:00
infinite-persistence
f5a0f39f59
Rename file: use-last-visible-item => use-get-last-visible-slot
No functional change, just renaming for clarity.
2022-04-18 19:06:01 +08:00
infinite-persistence
65789a26ed
Re-use existing string 2022-04-18 18:24:34 +08:00
infinite-persistence
3f805a6189 doCheckPublishNameAvailability: case-insensitive version
## Issue
??

## Behavioral Changes
- Use `claim_search` instead of `claim_list` to retrieve all all own claims with the same name (case-insensitive).
  - Caveat: annonymous posts will be excluded.
- When a clash occurs, there is a possibility that we have multiple existing entries (e.g. "xxX", "xXx"). Since we don't know which one is best to fall back, I removed the "edit" button for this and replaced with a simpler text

## Code Note
- If not mistaken, the rest of the code still needs `selectMyClaimForUri` to be case-sensitive, so augment the selector to support both through an optional parameter.
2022-04-18 00:44:11 -04:00
infinite-persistence
389b0ad834
i18n update 2022-04-17 09:19:58 +08:00
infinite-persistence
6e34282cdc Livestream tile/list: show viewer count if data is available
As of this commit, only the Channel Page is fetching the data through the new API, which has the viewer count correctly populated.

For both "0" and "undefined", continue to show as "LIVE".
2022-04-15 08:24:30 -04:00
Rave | 図書館猫
175f85995d
Design Fallout Patch 10 (#1340)
* Design Fallout Patch 10
2022-04-15 10:56:50 +02:00
Thomas Zarebczan
eaf1b093ae
Odysee updates 2022-04-14 20:31:16 -04:00
infinite-persistence
934f627c19 Remove isTouch from use-screensize.js -- it's not an effect
It will be confusing for the next person to look at the effects folder for `isTouch`.

Use `platform.isTouch()` instead.
2022-04-14 10:29:01 -04:00
infinite-persistence
49db1fe83b Replace IS_IOS and IS_ANDROID with platform 2022-04-14 10:29:01 -04:00
infinite-persistence
dca6c2ebf8 Disable "switch optimized-auto to original" for now.
It might be a user option in the future.
2022-04-14 02:41:23 -04:00
infinite-persistence
257011b62d Use non-VHS link when "auto" matches non-VHS quality
The ideas is that the "optimized" version (same height as original) is badly done, so display the original instead behind the scenes.
2022-04-14 02:41:23 -04:00
external
6478da923f Port bandwidth selector from http-streaming @ v2.0.0
Reference:
https://github.com/videojs/http-streaming/issues/749#issuecomment-606972884

This is a direct copy of the necessary files to replicate `lastBandwidthSelector`. Irrelevant code was removed.
2022-04-14 02:41:23 -04:00
infinite-persistence
c1fb160452 Use non-VHS link when "original" is selected.
Ticket: 638
2022-04-14 02:41:23 -04:00
infinite-persistence
33adf7aab2 Add "original" quality button 2022-04-14 02:41:23 -04:00
infinite-persistence
4f600fbc8e Cleanup; no functional change.
- Handle null `vjsPlayer` so we don't need to add FlowFixMe everywhere.
- Remove redundant comments.
2022-04-14 02:41:23 -04:00
Thomas Zarebczan
17d5d5c73b partial new livestream api support 2022-04-13 11:52:00 -04:00
Bradley
d7506850b3
removed remaining refs to PAGES.REPOST 2022-04-12 21:07:40 +08:00
Bradley
98154a1921
changed repost to open a modal instead of new page 2022-04-12 21:07:39 +08:00
Raphael Wickihalder
f3ff88d74e
Adjust recommended grid 2022-04-12 09:54:11 +02:00
Raphael Wickihalder
096185d424
Adjust collapsed recommendation grid 2022-04-11 18:54:15 +02:00
Raphael Wickihalder
19a4b87225
Adjust tile grid for HiRes screens 2022-04-11 16:05:41 +02:00
infinite-persistence
b03d3305c1 ClaimTilesDiscover: stop repeating claim_search on failure
Just like ClaimListDiscover, stop `claim_search`-ing if the result is a failure (null).

Leaving the placeholder tiles as is for now. Can show the timed out message like ClaimListDiscover -- just toggle SHOW_TIMEOUT_MSG.
2022-04-11 07:45:27 -04:00
infinite-persistence
b79b7f9bde Re-enable 'Purchases' page
Closes 1284

## Notes
- Re-used the Library page, but disabled the [Downloads | Purchases] tabs.
- Access from Settings > Accounts > Purchases
2022-04-07 14:28:12 -04:00
Raphael Wickihalder
010b5c81f4
Adjust tile grid in categories and channel pages 2022-04-07 19:54:41 +02:00
infinite-persistence
fc50095b36 Make notification titles translatable
## Issue
Desktop 7022: i18n: Notification title localization lost

## Approach
The current code breaks up the string into an array of strings, so i18n is somewhat impossible.

Since 99%¹ of dynamic notifications come with a `dynamic` property for all the replaceable values, we can actually reconstruct the string however we want.

¹ <sub>_as far as I can find, only `fiat_tip` does not provide the value via `dynamic`, i.e. hardcoded in the string. Boo._</sub>

### Benefits of this approach:
- able to localize the string again
- able to customize the string (e.g. making claim titles italic, fix typos, use more concise strings, etc.)

### Problems with this approach:
- if the api overloads a particular notification type with several strings, then the approach is broken.
    - Ex. For the case of `comment` type, the overload is whether the comment is a normal comment or hyperchat. But I was able to replicate the logic to differentiate them, so all is good.
    - For the case of "livestream reminder in 30 minutes", we would have to inspect the string to differentiate against "is live streaming". I think this reminder is not being used, so I didn't do it yet.
- some work is needed to maintain the code when the server side updates something.  But we are already manually maintaining the i18n strings anyway, so it shouldn't be too much of a burden.
- With the exception of the overload problem, any new notification type will simply pass through as un-localized, so things should continue to work, i.e. no need to update the front-end immediately 🤞
2022-04-07 12:30:07 -04:00
Rafael
dff64f5a47 Improve plugins format 2022-04-07 11:44:25 -04:00
Rafael
b0f091a589 Fix iPad landscape 2022-04-07 11:44:25 -04:00
Rafael
de93a97af0 Fix icon cutoff 2022-04-07 11:44:25 -04:00
Rafael
800e735115 Mobile file page, comments and player improvements for rotated landscape view
undo plugin changes
2022-04-07 11:44:25 -04:00
Rafael
35c933e7e4 Fix miniplayer size issues
Add another comment
2022-04-07 11:44:25 -04:00
Rafael
9f04370516 Improve resizing screen until it switches to/from Mobile 2022-04-07 11:44:25 -04:00
Rafael
65b9906086 Add dynamic player aspect ratio resizing 2022-04-07 11:44:25 -04:00
David Granado
c2b3904e32 Disable spellchecker which is both broken and has unusual behavior 2022-04-07 10:27:45 -04:00
David Granado
393aba0385 Fix spellcheck in comment simple editor 2022-04-07 10:27:45 -04:00
infinite-persistence
564beb7c90
Medium-layout: more "comment section collapse" fixes
- When collapsing, scroll back to the first comment instead of hanging in the Recommended section.

- Enhancement for 5380bc04: don't show "Collapse/Expanse" if there's only 1 comment. The comment itself is already collapsed to 3 lines, so it won't take up too much height.

- Fix css: recalling what Dan mentioned: if following BEM right (modifiers shouldn't be used standalone), we wouldn't incorrectly use `@extend` in this case and confuse the reader.

- Enlarged the empty spacing to make it symmetrical with the Recommended section below it.
2022-04-07 13:14:49 +08:00
Rafael
30cbe009bc Fix sports icon 2022-04-06 13:08:28 -03:00
infinite-persistence
4f4803c638 Crisper file thumbnails for mobile
## Issue
Thumbnails in mobile, especially tablets, is blurry

## Change
Account for the larger thumbnail width in mobile.
Approximation is based on `$breakpoint-small: 900px;`
2022-04-06 06:56:54 -04:00
infinite-persistence
5380bc04f2 Comments: don't show Expand button if no comments
## Issue
In Medium layout, the Expand/Collapse button would still appear even for 0 comments.

## Approach
Hide the button when comments = 0, but didn't hide the section because the separator line feels useful as a visual guide to mark the sections.
2022-04-06 06:47:02 -04:00
infinite-persistence
59a0b9d490 Better non-clickable implementation
## Issue
- Adding `content__non-clickable` everywhere probably isn't the right way when we move forward to separating `all.scss`.
- Not intuitive -- easier to use if it's an attribute to `ClaimPreview`.

## Change
- Consolidate to a re-usable `non-clickable` class.
- Made Wallet Send search preview non-clickable as a temporary band aid until the channel-finder is consolidated.
- `listBlocked`: something is overriding the pointer, so non-clickable isn't working. Removed for now -- doesn't really matter.
2022-04-05 19:44:09 -07:00
infinite-persistence
5d22688acf Watch Later: fix capitalization so we don't need to re-translate 2022-04-05 09:52:29 -07:00
infinite-persistence
97dd01ed38 Uploads Page: fix Repost tab when count is 0
## Issue
The page becomes blank without the filter header when Repost is selected + 0 results.

## Change
Grabbed and modified lbry-desktop's 390bb6df
2022-04-05 12:47:47 -04:00
Rave | 図書館猫
a0254740bc
Design patch 7 (#1286)
* Adjust thumbnail hover effect

* Increase thumbnail border transparency
2022-04-05 16:59:38 +02:00
Thomas Zarebczan
aad06cdde0
Fix fee estmation 2022-04-05 09:36:06 -04:00
infinite-persistence
e68bba1dc6 Exclude outbrain in certain pages
I don't think these pages should be serving ads.
2022-04-05 08:54:37 -04:00
Raphael Wickihalder
bb868777f8
Fix controls for mini player on mobile 2022-04-04 13:02:27 +02:00
infinite-persistence
234bd2526a
Add backdrop to progress indicator 2022-04-04 17:27:00 +08:00
Raphael Wickihalder
57edddb058 Merge branch 'master' of https://github.com/OdyseeTeam/odysee-frontend 2022-04-03 17:03:12 +02:00
Raphael Wickihalder
85d9de60ca
Add dragging offset exception for Firefox 2022-04-03 17:02:18 +02:00
infinite-persistence
5631c10306
Fix context for translators 2022-04-03 22:13:18 +08:00
Raphael Wickihalder
052c602742
Fix element position when dragged in homepage customizer 2022-04-03 15:51:52 +02:00
Raphael Wickihalder
a6169a80a9
Fix element position when dragged in homepage customizer 2022-04-03 15:19:05 +02:00
Thomas Zarebczan
b7b27136fd Let's try 95... 2022-04-01 23:36:56 -04:00
infinite-persistence
7ccaf06527 Round optimized img dimension to next 100px for better caching.
Doing double `Math.ceil()` just to make it easier to disable the 100px thing in the future.
2022-04-01 23:36:56 -04:00
Rafael
8dcac30767 Add sports icon 2022-04-01 21:49:03 -04:00
infinite-persistence
4e63849061 Don't clear on position on dispose
Otherwise, we'll never see a full progress indicator. The "reset when too near end of video" should only happen when opening a file.
2022-04-01 15:37:26 -04:00
infinite-persistence
84b9bd617a Watch-progress indicator 2022-04-01 15:37:26 -04:00
infinite-persistence
e0415ec493 Fix post-editor preview mode
## Cause
It broke because lack of awareness that we can't use our components in preview mode. For some reason, we don't have redux access in SimpleMDE's preview mode.

## Change
- Restore the stub for iframes
- Fix preview for images, and apply the same styling as in posts.
2022-04-01 12:36:49 -04:00
infinite-persistence
a61f943465 inline-attachment: move to local copy + handle xhr errors
(1) Move from Node to local copy
(2) Handle xhr errors more gracefully. Instead of erasing the syntax, we should say that it failed through the URL.
2022-04-01 12:36:49 -04:00
inline-attachment
c41c6bc2bb inline-attachment v2.0.3
Partial copy from https://github.com/Rovak/InlineAttachment

We need to make some changes to handle xhr errors.  Given than the repo hasn't been updated in 7 years, and it's a hassle to push the changes or fork the repo, just copy over the required files.
2022-04-01 12:36:49 -04:00
Thomas Zarebczan
8d4a05157d Paste/drop images directly to markdown editor
Ticket: 1135

- Changed `FileDrop` to only cover the upper 20% of the page, otherwise it will clash with markdown image drop.
2022-04-01 12:36:49 -04:00
Rafael
e765a74eb0 Fix claim switch comment.List fetch behavior 2022-04-01 11:55:30 -04:00
infinite-persistence
491c934119 Fix makeSelectContentPositionForUri memo
- Move away from the leaky makeSelect* pattern.
- No memoization since it's pretty light.
2022-04-01 09:58:09 -04:00
infinite-persistence
f5034f74ca Batch resolve pin urls in 2 ways
Expanded homepage pins to support 2 types of input (if both are passed in, pinnedUrls take precedence):
  (1) pinnedUrls     --> uses doResolveUris (resolve)
  (2) pinnedClaimIds --> uses doResolveClaimIds (claim_search)

Instead of injecting the pinned URLs directly, we inject from `resolvedPinUris`, which will be blank until the uris are resolved, thus preventing it from being resolved individually from the tiles.

There's additional complexity with the `claim_search` method, as the rest of the code deals with uris instead of IDs. Fortunately, it's all contained with `useResolvePins`, so removal would be easier when the batch `resolve` issue is fixed.
2022-03-31 15:58:10 -04:00
infinite-persistence
dd5f4872fc Minor cleanup, no functional change
- Self-documenting variable.
- Remove incorrect comments.
- Remove redundant variables.
2022-03-31 15:58:10 -04:00
Niko Storni
8c20d516cd replace cdn url 2022-03-31 21:28:33 +02:00
Thomas Zarebczan
db687204a4 livestream for all 2022-03-31 10:35:24 -04:00
infinite-persistence
1a2fefa6ec Option to hide notification count in title bar 2022-03-31 10:23:31 -04:00
infinite-persistence
3b98f73a0f Fix livestream countdown i18n
Ticket: 1228

## Code changes
- Pass through `getTimeAgoStr` so that the value gets localized.
- Pass the simpler `number` around instead of the `moment` object for better memoization.

## Notable differences
Due to how `getTimeAgoStr` is written, we now get to see the time actually counting down, vs "in a few seconds" currently in production.  I think the counting-down behavior was the original intentional, since a 1s timer was used (otherwise, a 1-minute timer could be used) ... or maybe not since streams may not start on the dot.
2022-03-31 08:25:32 -04:00
infinite-persistence
071b86fa06
Make "Send a xxx tip" currency-agnostic so we don't need to re-translate again 2022-03-31 17:54:21 +08:00
infinite-persistence
aa5e4d6c13
Fix double translation
No need for the macro when `<I18nMessage>` is used.
2022-03-31 17:46:12 +08:00
infinite-persistence
e21db9d58e
Sidebar: add option to not localize certain strings
I think we want to keep Premium as a product name (consistent for all languages). It was popping up in the `window.new_strings` because the current code localizes every link.
2022-03-31 17:46:11 +08:00
infinite-persistence
e9e232f008 Consolidate transaction result strings
## Issue
Accumulation of so many strings for a "successful tip" that it is getting annoying to re-translate them for minor changes.

## Change
- Consolidate and re-use strings.
- Make the tip string currency-agnostic so we don't have to touch it again. The amount and currency is moved to the `subMessage`.
- Fix spacing being incorrectly enforced through i18n (it should be done via code/css).
2022-03-30 21:59:54 -04:00
Rave | 図書館猫
b9436def23
patch 1 (#1244) 2022-03-30 16:40:35 +02:00
infinite-persistence
1366f8d3ce Force reposts in Homepage + Category Page, except Following & WW
Ticket: 1220
2022-03-30 09:39:06 -04:00
Anthony
beaf425068 fix some flow errors and other pointers 2022-03-29 23:00:55 -04:00
Anthony
d70c489163 support eur in transactions 2022-03-29 23:00:55 -04:00
Anthony
e9b1a11e44 fix flow errors 2022-03-29 23:00:55 -04:00
Anthony
fe9b33e42b allow tips in euros 2022-03-29 23:00:55 -04:00
Anthony
631d3cc1f3 supporting EURO icon 2022-03-29 23:00:55 -04:00
infinite-persistence
cc8812d751 ClaimListDiscover: fix broken excludeUris logic 2022-03-29 22:39:36 -04:00
Rafael
8823461ebd Add percentage video duration keybinds› 2022-03-29 22:39:01 -04:00
infinite-persistence
b40160a939 Remove the desktop Welcome Page 2022-03-29 10:05:58 -04:00
infinite-persistence
e358f0715d tus: retry only after 2-minute wait
There is anecdote that we need to wait up to 2 minutes to preven the locking scenario.
`https://github.com/tus/tusd/pull/667#issuecomment-1079647640`

## Change
Instead of multiple retries at short intervals, do a one-time retry after a 2-minute wait. We'll do this until the fix is available in tusd v2.
2022-03-29 09:01:10 -04:00
Anthony
4fffb035de reverse string changes 2022-03-28 15:30:36 -04:00
Anthony
0f407914f3 link livestream comments to membership page from badge 2022-03-28 15:30:36 -04:00
Anthony
1eb66a6d66 improve tip support functionality 2022-03-28 15:30:36 -04:00
Thomas Zarebczan
726dc77943 Hide news by default 2022-03-26 16:01:27 -04:00
David Granado
3c20332912 Fix incorrect imports 2022-03-26 00:54:39 -04:00
Thomas Zarebczan
e40b65b975 Revert "send 10 percent of traffic to other server"
This reverts commit 0fcdbc7858.
2022-03-25 15:35:05 -04:00
Anthony
63a4a597a9 passing meme actually isnt required 2022-03-25 14:44:13 -04:00
Anthony
632cce4dbb bugfix 2022-03-25 14:44:13 -04:00
Anthony
b74dc804d6 dont open in a new tab for internal urls 2022-03-25 14:44:13 -04:00
Anthony
e921d58f73 dont open meme link in new tab 2022-03-25 14:44:13 -04:00
Anthony
0fcdbc7858 send 10 percent of traffic to other server 2022-03-25 14:28:57 -04:00
Thomas Zarebczan
087282578f add airplay 2022-03-25 11:31:11 -04:00
infinite-persistence
a96db41782 FYP: show placeholder tiles when fetching membership or fyp itself.
This prevents the "no membership" and "no recommendations" message from flashing during load.
2022-03-23 23:21:46 -04:00
Rafael
09557c8ce2 Fix warnings 2022-03-23 17:09:17 -04:00
infinite-persistence
ec5cd10ab1 Remove hideFyp setting 2022-03-23 15:35:27 -04:00
infinite-persistence
5b16b3b058 Ability to customize homepage
Ticket: 1145

- Limited to premium for now (early access).
- Needed to handle custom categories from non-English homepages.
2022-03-23 15:35:27 -04:00
Rafael
192e1d4923 Prevent floating player on geoblock 2022-03-23 14:29:06 -04:00
Thomas Zarebczan
c362efe630
gif support for chat 2022-03-23 10:19:49 -04:00
Rafael
dcb19a9f48 Improve wording for CA 2022-03-23 09:16:52 -04:00
Thomas Zarebczan
7477208c4e
Chromecast on Lives
+ remove some dev code that's no longer needed...
2022-03-23 00:19:53 -04:00
Rafael
4cec3ee9b3 Update browser window title when notifications are received 2022-03-22 18:48:53 -04:00
Rafael
c294fda09d Fix params 2022-03-22 16:07:05 -04:00
Anthony
620e5023a8 add livestream icon and channel selector 2022-03-22 16:07:05 -04:00
infinite-persistence
71e9837002 Repost: hide ribbon in Category Pages and Home Section
Allow in Following and Wild West

`index === 0` is not always Following, so compare link instead.
2022-03-22 08:54:22 -04:00
infinite-persistence
429653a7dc More sidebar optimizations
- Remove the odd resolve call that's lingering in `App`. Feels out of place, plus we don't need it now since the "active subs" claim search would contain resolved results.

- Don't search for active subs if Following count is zero.
2022-03-22 08:46:27 -04:00
infinite-persistence
fe227ba539 FYP: fix scroll destination when collapsing
Since FYP is no longer always at the top, we can't use y=0 anymore.
2022-03-21 22:59:57 -07:00
infinite-persistence
d13558297e SettingsRow: filter clicks when grayed out
Also increased opacity a bit as it's hard to read the subtitle which is already grayed out.
2022-03-22 01:06:18 -04:00
Thomas Zarebczan
9af32a0024
move recommendations below following
Until we have the reordering option. Recommended will require it's own page most liklely , the show more is strange in the middle of the page.
2022-03-21 18:53:09 -04:00
Thomas Zarebczan
9ee2db99f0 higher quality on channel page 2022-03-21 13:13:25 -04:00
Thomas Zarebczan
b5630f0ed6 Load gifs through proxy
Continuation of 1009 (2eae20f0)

It can probably be handled inside the existing getThumbnailCdnUrl to reduce 1 function, but since the functionality is somewhat different (the proxy doesn't compress), it's probably clearer to separate it.
2022-03-21 13:13:25 -04:00
infinite-persistence
1e0da66110 OptimizedImage: simplify implementation
It has been broken for a while, probably since the theme changes?

- Anyway, removed the effort to get the exact mounted size before requesting the image from CDN.
    - When it works, it does prevent blurry image in different screen resolutions, but it's hard to maintain and too expensive.

ChannelThumbnail: use 64 to cover both the 64 and 40 case (the cached image will work on both, potentially reducing a call). I think the size is close enough to not trigger a Core Vital size warning.
2022-03-21 13:13:25 -04:00
Thomas Zarebczan
75478ad18f Thumbnail improvements
- always pass to optimizer, even for speech

- default channel thumb to optimized at 5
50px, original on channel page

- fix misc analytics bug
2022-03-21 13:13:25 -04:00
infinite-persistence
5196468330 Make ClaimListDiscover retain results while searching
Ticket: 946

- Copied the functionality from ClaimTileDiscover. Tried to use the same variable names to help the future consolidation work.

- Removed `excludeUris` from `ClaimList` as it makes the caching harder.
2022-03-21 12:53:56 -04:00
Rafael
52c15fc004 Fix double call on livestream page 2022-03-21 10:22:02 -04:00
infinite-persistence
5297978526 Sidebar shortcuts to built-in lists
Ticket: 1107
2022-03-21 09:40:07 -04:00
Rafael
bc3c56b84b Locale Nag Fixes 2022-03-21 09:36:59 -04:00
infinite-persistence
e634c728f0 Don't run filters unless necessary
The loop was executed over the entire `tileUris` regardless of whether `excludeUris` existed.
2022-03-20 21:21:58 -04:00
infinite-persistence
802b5d5a18 Add outbrain
- Only add for unauthenticated users for now. We can change that to look at premium later without having to touch `app/view.jsx`.

- Only show the ad after knowing the ad is filled; this prevents the invisible container from blocking stuff while waiting, or even worse, when not filled.
2022-03-18 14:32:55 -04:00
saltrafael
341bd1341d
Fix file page layout shift (#1150) 2022-03-18 11:25:14 -03:00
infinite-persistence
0ecbb3a73b
Make members-only label clickable, per feedback 2022-03-18 15:43:11 +08:00
infinite-persistence
40bd160748
Fix membership splash cls
- Put their intrinsic sizes so the browser can pre-allocate space for them.
2022-03-18 13:19:35 +08:00
infinite-persistence
9482a7f986 Snack: sub-message, close button and duration setting
- Add close button to allow immediate dismissal.

- Add ability to support sub messages. Will be typically used for error codes, etc.

- Add ability to define 'long' auto-dismiss duration (15s) vs. the default of 5s.
    - I didn't add 'off' because there is a comment saying that this scenario should use the Error Modal instead, so respecting that for now.
2022-03-18 00:51:44 -04:00
infinite-persistence
d1d9b116d4 i18n: page titles; collection shortcut; string removals 2022-03-17 18:10:42 -07:00
infinite-persistence
51079ea611 Consolidate legal/requirements fetch
Ticket: 1128

Requirements:
- Fetch once per refresh. This is to cover the case of switching to VPNs, etc.
- 1 call per refreshed session.
2022-03-17 10:25:59 -04:00
infinite-persistence
f01004e9b6 FYP: setting to hide section 2022-03-17 10:11:50 -04:00
Rafael
ae56058384 Consolidate timeout thumbnail effect 2022-03-17 10:06:50 -04:00
Raphael Wickihalder
5632624cd9
Center play button 2022-03-17 10:30:50 +01:00
infinite-persistence
7dd7aac8d2 fileRenderInitiator: missing timer cleanup 2022-03-16 21:02:07 -04:00
infinite-persistence
32d5eaf8e1 Don't translate 'Premium/Premium+'
- Forgot that we've concluded to not translate 'Premium/Premium+' and keep that as a product name. This is the same as competitors.
- For other instances of "Premium" in a longer string, we'll just have to communicate with translators to not translate it.
- Remove a few old strings.
2022-03-16 20:56:40 -04:00
infinite-persistence
fdd83537a3 SettingsRow: add "members only" tag
Not using the membership icons because that has 2 colors for premium and premium+. Keeping it generic and simple.
2022-03-16 20:37:07 -04:00
infinite-persistence
d3109bd330 Update settings css, hopefully closer to bem 2022-03-16 20:37:07 -04:00
Rafael
57ff910bbb Re-fix layout shift 2022-03-16 18:39:09 -03:00
Rafael
9ac64eb6a7 Fix layout shift 2022-03-16 16:36:50 -04:00
Rafael
04c5ac460b refactor 2022-03-16 16:36:50 -04:00
Rafael
d4cb51ff2a fix mobile embed 2022-03-16 16:36:50 -04:00
Rafael
f4fdee8331 socket improvements 2022-03-16 16:36:50 -04:00
Thomas Zarebczan
60c317dedf various fixes 2022-03-16 16:36:50 -04:00
Rafael
05b44fc4ab Fix fetch 2022-03-16 16:36:50 -04:00
Rafael
ebfe644cb8 Add miniplayer 2022-03-16 16:36:50 -04:00