Commit Graph

1401 Commits

Author SHA1 Message Date
Jason fc210aa663
Order watched recommended videos last (#4394)
* Implement change

* Update to use local variable to potentially improve performance in  non-first load case
2023-12-02 10:19:25 +01:00
ChunkyProgrammer a67541ed03
IV: check for 404 and 500 for subscriptions (#4410) 2023-12-01 17:00:11 +00:00
Jason 71addd2a47
Channel subscribe button in search results (#4376)
* Add subscribe button to channel search result

* Fix description logic not accounting for forceListType

* Fix video list item width issues on smaller viewport widths (esp. when in List mode)

* Expand link area for hashtag and channel list items

* Equalize thumbnail width of different element types (channel, playlist, hashtag, video) in list view

* Fix ft-list-playlist not actually respecting imposed appearance prop

* Add pointer-events: none to # of videos in playlist bar

* Adjust channel click area to be full width in grid view

* Adjust list item sizing for mobile devices

* Implement least-changes fix to subscribe button wrap, & fix channel icon resizing on smaller device sizes
2023-11-28 17:06:35 -05:00
Mitchel Paulin 1838f1e7df
Use F5 to refresh subscriptions (#4399)
* Use F5 to refresh subscriptions

* Add it in other spots as well
2023-11-28 00:26:06 +00:00
Mitchel Paulin 245fb122a5
Miscellaneous improvements to settings page styling (#4235)
* Miscellaneous improvements to settings page styling

* remove superfluous flex box

* Leave buttons as primary color

* PR suggestions
2023-11-28 08:14:32 +08:00
Jason c547c15fd4
Fix bug (#4392) 2023-11-26 20:36:25 -05:00
absidue cb883f254f
Cleanup SponsorBlock video id hashing (#4384) 2023-11-26 08:30:56 +08:00
Jason 6af85b3726
Show latest from channel (#4352)
* Implement 'show latest video from channel' feature

* Apply suggestions from code review

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Adjust ordering to maximize chance of content being presented

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-11-26 08:27:29 +08:00
PikachuEXE e05827b482
Update app menu to add items for profile list page (#4333)
* Update app menu to add items for profile list page

* Apply suggestions from code review

Co-authored-by: efb4f5ff-1298-471a-8973-3d47447115dc <73130443+efb4f5ff-1298-471a-8973-3d47447115dc@users.noreply.github.com>

---------

Co-authored-by: efb4f5ff-1298-471a-8973-3d47447115dc <73130443+efb4f5ff-1298-471a-8973-3d47447115dc@users.noreply.github.com>
2023-11-25 18:37:32 -05:00
absidue 0bde0b376b
Local API: Support the author-less auto-generated album playlists in video lists (#4371) 2023-11-25 18:16:28 -05:00
Jason 62903ceed8
Open/close all settings tabs persistent toggle (#4204)
* Open or close all settings tabs toggle

* Update labels to expanded/collapsed

* Move settings expansion toggle on top (& shorten label)
2023-11-25 18:44:29 +01:00
Jason 47946ff453
Profile settings UX improvements (#4358)
* Update Edit Profile styling, labels, and order

* Introduce additional styling updates

* Remove check for channel name of All Channels, as that can be faulty for users who renamed it & had another profile take the name

* Force use of All Channels profile translation (& forbid alteration of All Channels profile name

* Combine ProfileSettings and ProfileEdit routes under one route

* Implement active settings profile styling & profileList watcher

* Fix pre-existing bug of selected channels & count in Other Channels not updating when changing the profile filter

* Fix pre-existing behavior of filter profile selection resetting after each use

* Fix pre-existing bug with Edit Profile Subscription List of count bugging after adding new channel mid-count

And vice versa with removing channel mid-count on Other Channels.

* Fix two toasts to use localized profile name, & remove unnecessary mounted

* Remove old modification of base ft-input styling
2023-11-25 18:23:27 +01:00
Jason 16050c79d9
Landing page logic fix (#4378)
* Push fix

* Fix bug

* Prevent subscribe dropdown from opening on SubscribedChannels route
2023-11-24 23:15:47 +01:00
Jason 7e61e53cd6
Implement minor settings section visual fixes & height change (#4343) 2023-11-23 16:08:53 -05:00
Jason 9726cec075
Implement use of color variables (#4351) 2023-11-23 16:06:35 -05:00
Jason e68c534e6c
A new way to subscribe (#4238)
* Implement styling for new subscribe button

* Implement dropdown element and styling

* Implements remaining styling and logic

* Correct use of aria-selected in FT

Note: was able to add aria-controls to ft-profile-selector because it keeps the hidden dropdown in the DOM. The same is not true of the ft-icon-button or ft-subscribe-button. Main point: aria-expanded should go on the button opening the dropdown, not the dropdown itself.

* Resolve subscribe button staying upon bug

* Remove unneeded vendor-specific transition prefixes

See discussion here: https://www.web-plus-plus.com/Articles/css-transition-moz-and-webkit-vs-css3
2023-11-22 17:19:11 +00:00
CelularBat 62e7b439db
Display more profiles on the profile drop-down list, v2 (fixed for low res, fixed linter) (#4359)
* Update ft-profile-selector.css

Fixed for low res, fixed linter complains

* Update comment to max-block-size

* comment to max-block-size

fixed typo

* Update ft-profile-selector.css

adjust for screen with horizontal navbar (mobile)

* Update src/renderer/components/ft-profile-selector/ft-profile-selector.css

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Update src/renderer/components/ft-profile-selector/ft-profile-selector.css

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Update src/renderer/components/ft-profile-selector/ft-profile-selector.css

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-11-22 11:14:54 -05:00
absidue d1a7b84bf3
Display currently watching viewer count on live streams (#4206)
* Display currently watching viewer count on live streams

* Improve watching count styling

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>

---------

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2023-11-21 06:05:21 -05:00
absidue c219926c5e
Fix block channel channel ID validation (#4366) 2023-11-21 02:22:29 +00:00
Jason 3fc2e547c9
Update to silently allow channel links (with IDs) (#4347) 2023-11-20 21:11:15 -05:00
Mitchel Paulin 86bad257f5
Add hide channel option directly to More Options menu (#4228)
* Add hide channel option directly to More Options menu

* Added ability to unhide channels as well from the same menu

* Fix issue where unhide would not work with channelId

* Replace filter with some

* Remove extra hide channel

* Hide by channelId rather than name

* Shuffle lang terms to put channel name at the front

* Do not check channel name anymore

* One more spot

* Fixed lang terms
2023-11-20 21:04:41 -05:00
Jason 58fe474d9f
Make landing page configurable (#4200)
* Implement customizable landing pages

* Implement curated list for default landing page dropdown options

* Update top nav link to redirect back to selected landing page

* Update top nav title to be 'Go to {page}' for improved clarity

* Remove landing page from selection and/or restore selection to default if is no longer valid
2023-11-20 15:01:18 -05:00
Benjababe c57daa8cb2
add image to poll & updated quiz style (#4318) 2023-11-17 03:05:53 +00:00
absidue 582df9543e
Move hideOutlines to the utils store instead of using provide/inject (#4246) 2023-11-17 02:08:10 +00:00
Ajay Ramachandran 1acdc0a27f
Fix DeArrow votes threshold too high (#4321)
This was a mistake that I originally suggested. Unverified submissions will be at -1 votes and will still be ignored.
2023-11-12 21:11:48 -05:00
absidue 61fc91f6a2
Add missing Electron guards after #4230 (#4311)
* Add missing Electron guards after #4230

* Fix logic issue
2023-11-10 21:25:51 -05:00
Anima 820264ed62
video id hash length to 4 (#4313) 2023-11-09 22:35:45 +00:00
Benjababe fcb230145b
Add identifiers to channels hidden by ID (#4230)
* add description option to hiding channels

* does channel id search

* add tag tooltip

* legacy support for hidden channels

* update removeTag

* add parenthesis to id name

* add icon and id checking before requesting

* update id regex

* decouple channel hidden from tags

* update handling for legacy hidden channels

* remove tag description

* formatting

* newline

* shorten retrieving hidden channels

* separate channel api requests

* refractor ft-input-tags.js

* replace secondaryName with preferredName for tags

* unify hidden channel name/icon retrieval function

* remove tooltip from ft-input-tags

* auto update hidden channel if ID was used

* remove hiding channel by name

* i18n channels hidden disabled message

* run auto hidden channel id update once

* Update src/renderer/components/ft-input-tags/ft-input-tags.vue

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>

* add text selection for ft tags

* add ft-input-tags icon url

* fix icon link

---------

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2023-11-08 23:08:16 -05:00
Wesley Appler 6bbf11f464
Fixed order of elements to allow for proper tabbing in comments section (#4099)
* Rearranged elements and fixed css

* Fixed unclickable comment sorting at 800<=width

---------

Co-authored-by: Wes Appler <wes@lamemakes>
2023-11-07 23:21:12 +00:00
ChunkyProgrammer 7304d75239
Localize proxy test info when possible (#4255)
* Localize proxy test info when possible

* Use a second find in-case a locale with the same language is added in the future

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>

* Fix syntax error

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

---------

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-10-31 18:07:42 +01:00
absidue 24678db81d
Handle channel URL resolve redirects in the local API (#4205)
* Handle channel URL resolve redirects in the local API

* Refactor into a for-loop
2023-10-30 22:00:18 -04:00
Jason 262dd67809
Chores: move 'blur' to be thumbnailPreference, move 1 dep to devDependencies (#4218)
* Chore: move stylelint-use-logical-spec to devDependencies

* Update blur to be a thumbnail preference instead of its own ft-toggle-switch

* Update en-US.yaml
2023-10-30 21:59:34 -04:00
absidue 6d6fc73059
Add a 15 second timeout for fetching the Invidious instances at startup (#4233)
* Add a 15 second timeout for fetching the Invidious instances at startup

* Use a better name for the timeout parameter

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Fix docs

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-10-27 00:09:49 +00:00
Jason 881bc67aac
Add logo hover styling (#4209) 2023-10-23 00:21:01 -04:00
PikachuEXE 4043961912
Upgrade electron from 22.x to 27.x and replace deprecated `protocol.registerBufferProtocol` (#3967)
* ^ Upgrade electron from 22.x to 27.x

* * Replace deprecated registerBufferProtocol
2023-10-20 23:39:07 +02:00
PikachuEXE b55ad5d327
! Fix single playlist view item index style (#4179) 2023-10-20 17:50:48 +02:00
absidue 046462e024
Fix proxy settings test (#4192) 2023-10-20 15:40:40 +00:00
Surav Shrestha ccb5247bd4
fix typos in src/main/index.js comments (#4180) 2023-10-18 18:23:21 +02:00
absidue 05499ce113
Fix playlists not showing up on artist topic channels with the local API (#4129) 2023-10-16 16:17:02 -04:00
Benjababe 7805763b09
Truncate title of playlist in queue window (#4134)
* truncate title of playlist in watch window

* Update src/renderer/components/watch-video-playlist/watch-video-playlist.vue

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-10-14 11:35:15 +00:00
Emma 1a92d4b1b7
Wrap channel tabs as soon as there isn't enough screen space (#4139)
* Wrap channel tabs as soon as there isn't enough screen space

* Remove redundant `flex-wrap`
2023-10-14 11:20:19 +00:00
Benjababe 3c0ed260c1
Keep download folder path when changing to 'ask for download path' and back (#4101)
* separate ask download folder from folder path value

* update variable name

* update download folder prompt handling
2023-10-10 22:44:57 -04:00
absidue 0ebcd24522
Fix error when clicking on the current quality in the DASH quality selector (#4130) 2023-10-11 09:31:04 +08:00
ChunkyProgrammer fffd1393b0
IV: Show channel handle in search results (#3791)
* IV: Show channel handle in search results

* move handle to front, add separator

* remove unused locale key
2023-10-10 20:31:42 +00:00
Jason 8a456834ad
Fix styling for Channel page on desktop view (#4112) 2023-10-08 18:29:07 +02:00
absidue b72091a9dd
Set new consent cookie and supress tracking cookies on the watch page (#4013)
* Set new consent cookie and supress tracking cookies on the watch page

* Cleanup the resources on macOS too

Co-Authored-by: PikachuEXE <pikachuexe@gmail.com>

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-10-08 09:40:58 -04:00
PikachuEXE 5c8d49bf51
! Fix playlist item fetching for local API (#4102) 2023-10-07 22:14:16 +00:00
PikachuEXE 0c92b63b99
! Fix watch page video published time parsing (#4105) 2023-10-07 21:15:51 +00:00
PikachuEXE c936a0ea5e
Update FT history import to accept key lastViewedPlaylistId (#4038)
* * Update FT history import to accept key `lastViewedPlaylistId`

Also update the strange required key check logic
Which was last changed by 58882b3e16

* * Remove unused video property `paid`
2023-09-29 13:16:00 -04:00
Jason bff3a2f824
Mobile/tablet channel page & share button visual improvements (#4061)
* Implement fix to elements escaping container on Channel page at small widths

* Show all Channel tabs on smaller viewport widths & reduce bulky gap

* Update Channel page to not break at even lower sizes

* Re-introduce channel button clipping fix

* Implement updated share button styling

* Fix issue with prompt box shrinking on small enough viewport sizes / overflow

* Update share button to work at all sizes'

* Fix pre-existing issue of Channel tabs overflowing on desktop view in some locales
2023-09-25 14:56:30 +00:00
absidue d91f82f977
Support multiple audio tracks and AV1 for Invidious by using the local API DASH manifest generator (#3942)
* Support multiple audio tracks and AV1 for Invidious by using the local API DASH manifest generator

* Upgrade YouTube.js to 6.2.0 to fix default track selection

* Fix audio formats

* Use Intl.DisplayNames to get the language names

* Simplify returns

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

---------

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2023-09-25 10:55:47 -04:00
Jason 112a76e020
Normalize ft-list-item grid height (#4043)
* Normalize ft-list-item grid height

* Update src/renderer/scss-partials/_ft-list-item.scss

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-25 14:23:31 +00:00
PikachuEXE 825aa4e332
! Fix in sub view, restoring last tab is bugged when visible tabs do not include tab to be restored (#4064) 2023-09-23 19:11:17 +00:00
ChunkyProgrammer 47ef3e5746
Subscriptions: Add community tab (#3973)
* Add subscription community tab

* fix up community tab

* simplify if statement

* use global.community for all references to community

* dont show community when useRss is set

* check visibleTabs for showing the community tab

* fix caching, decrease datalimit for community, add missing translations

* L: Hide shared posts, IV: Don't show errors for empty community tab

* add links to related issues
2023-09-23 00:19:50 +00:00
Jason 9d80737907
Fix buttons intersecting on Subscribed Channels tab (#4058)
* Fix buttons intersecting on Subscribed Channels tab in many languages

Note that this can still occur if one of the words in 'Unsubscribe' is pretty big on smaller screen sizes, e.g., Svenska at 515px. This is because we allow the Unsubscribe button to be wider than the element itself, which is hard to change here without completely reworking the structure using  (due to limitations with minmax being unable to have fit-content in a grid definition).

* Update src/renderer/components/ft-subscribe-button/ft-subscribe-button.css

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-20 15:14:34 -04:00
MaxMaxMaxCh 529402638a
fix bug with tabbing into three dots menu #4022 (#4060) 2023-09-20 21:10:16 +02:00
Jason a271d4548f
Fix Subscribe button being clipped on Channel page (#4057) 2023-09-19 23:26:24 +02:00
absidue c29d947d5c
Avoid extending the VueI18n class as it won't exist in Vue 3 (#4046) 2023-09-18 18:39:36 +00:00
absidue b80d2c8a2a
Fix comment author focus outline being broken (#4041)
* Fix comment author focus outline being broken

* Wrap overflowing text

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>

---------

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2023-09-18 14:14:22 -04:00
absidue c8be5bdfce
Avoid extending the VueRouter class as it won't exist in Vue 3 (#4047) 2023-09-18 12:13:47 +00:00
absidue 9106791698
Fix focus disappearing when visiting the settings (#4042) 2023-09-18 07:00:54 -04:00
absidue d333990fbc
Improve performance of the watch history handling (#4017)
* Improve performance of the watch history handling

* Remove duplicate checks for whether history entries exist

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Remove leftover `typeof`

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-13 21:31:07 -04:00
Jason 3db6f437c9
Implement Stylelint linting of CSS logical properties (#4023)
* Add Stylelint plugin and rule for evaluating use of logical properties

* Implement stylelint-advised use of logical properties in SCSS files

* Implement stylelint-advised use of logical properties in CSS files

* Implement stylelint linting before each commit to any branch of the repo

* Remove other Stylelint plugins so that we can add them in later one-by-one

After discussing this with the FreeTube team, it seems that we are still undecided on which rules we want to be active, including ones currently enabled. As a stopgap fix, we disabled Stylelint checking in our pre-commit Git hook and our recommended
> freetube@0.19.0 lint-fix
> run-p eslint-fix lint-style-fix command. With this change, we will be using Stylelint in our
> freetube@0.19.0 lint-fix
> run-p eslint-fix lint-style-fix command, while giving us the flexibility to add in additional desired plugins and rules as separate efforts.

* Add video player to .stylelintignore

* Replace non-logical property usage in templates

This is not enforced by the plugin at this time.

* Remove use of logical properties from ft-video-player, & allow empty input when .stylelintignore files are changed

* Update ft-video-player.css to disable use of logical property linter

We want to avoid introducing directionality-specific properties that could muck up the video player.

* Remove redundant/unnecessary scripts in package.json
2023-09-14 08:22:33 +08:00
ChunkyProgrammer 67bdf718c0
Fix localization of counts (#4011)
* Fix localization of counts

* Apply suggestions from code review

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Remove unused locale resources

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-12 19:38:36 +02:00
trostboot b4223e5f29
Sort list of external players (#4036)
* Sort list of external players

* Condense sorting logic

* Rework sorting in utils.js

* Simplify sorting logic
2023-09-12 19:21:52 +02:00
Jason efaf50ec8f
Implement Favorites icon persisting for favorited videos (#4012) 2023-09-12 09:09:49 +08:00
Benjababe 8c07ef3521
Add subscribed icon to comments (#4007)
* add subscribed icon to comments

* update subscribed img src

* update subscribed icon css

* add author id to local api comments

* update subscribe icon on theme change

* add subscription icon to comment replies

* Update src/renderer/components/watch-video-comments/watch-video-comments.css

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-09-11 07:14:18 +08:00
ChunkyProgrammer c7025b648c
Search: Add hashtags to results (#3780)
* Add hashtags to search results

* add global count , implement changes from code review

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

* use h3 for title of hashtag element

* implement suggestions from code review

* use hashtag.text, move url update logic

* encodeURI for hashtag url

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-09-09 18:32:59 +02:00
Jason 6f2a535212
Implement right-to-left interface (#3970)
* Replace margin-left with margin-inline-start

* Replace margin-right with margin-inline-end

* Replace padding-left with padding-inline-start

* Replace padding-right with padding-inline-end

* Replace padding-top & padding-bottom with padding-block; continue replacing  padding-left and padding-right with padding-inline-start and padding-inline-end

* Add updated rtl-compatible margins to ft-slider and fix indentation

* Replace margin-top & margin-bottom with margin-block; continue replacing margin-left and margin-right with margin-inline-start and margin-inline-end

* Continue replacing with margin-block and margin-inline

* Replace left and right with inset-inline-start and inset-inline-end

This commit also changes border-left to border-inline-start, and border-right to border-inline-end.

* Replace margin-bottom, top, and bottom with margin-block-end, inset-block-start, and inset-block-end

This commit also replaces border-top and border-bottom with border-block-start and border-block-end.

* Replace text-align left and right with text-align start and end

* Fix syntax error with inset-block-end

* Implement dynamic float: left/right based on direction ltr/rtl

* Implement dynamic navigation arrow placement based on direction ltr/rtl

To the fullest of my understanding, it is expected for the left navigation in rtl-supporting browsers to be for forward navigation, and the right one to be for backward navigation.

* Add direction to body based on preferred language

* Implement horizontal directionality coefficient to fix translate working in wrong x-direction for rtl languages

* Add explicit text-align: start in places to ensure rtl version is correctly aligned

* Add text-align: start to places where it is not inferred to enable proper rtl text orientation

* Fix search bar magnifying glass being too far right issue

* Move body.dir-setting logic to setLocale to fix dir not setting correctly on page reload

* Change .switchColumn to have align-items: start instead of justify-items: start

I have validated this for all settings tabs; the justify-content: start did nothing in any language, left-to-right or right-to-left. Replacing it with align-items: start aligned all menu switch items by their switches, not by their labels. This makes for a much more uniform settings section for trl languages.

* Fix emergent bug in which history icons are temporarily disabled on changing language to one with different directionality

Given that which icon is displayed for which history arrow is now dynamic based on the user's directionality, changing of the icon resets the font-awesome-icon state and thus re-adds the base disabled class to both arrows. This means that changing your language to one that has a different directionality was falsely setting the arrows to their disabled state (until the route is changed, after which the history icons will be fully back to normal). This commmit refactors the history icon setting logic to use class binding to two booleans in the top-nav component's data rather than adding and removing the disabled classes directly to the arrow elements' classLists, thus cleaning up the implementation and fixing the bug.

* Add Kurdish to rtl languages list & add li items to be right-aligned on rtl languages

* Force FreeTube logo to be ordered left-to-right for 'brand consistency'

* Add styling flipping font-awesome icons for rtl languages except for exclusion list

* Update isRightAligned with additional languages, and use it instead of locale value from store

Kudos to absidue for pointing out this existing function for representing this, and that it grabs directly from the i18n object. This means that FreeTube will display the proper rtl interface if one is the user's system language, where it did not before.

* Update isRightAligned property name to more clearly reflect rtl purpose

* Simplify left/right arrow display logic

Leverage the icons being flipped rather than manually setting the classes to their opposites when the directionality is RTL.

* Replace justify-self: left & justify-self: right with justify-self; start and justify-self: end

* Remove misguided attempt to emulate directionality-agnosticism with rightAligned class

* Explicitly center FreeTube version on About page

* Replace pre-existing identation issue

* Replace margin-left with margin-inline-start

* Replace margin-right with margin-inline-end

* Replace padding-left with padding-inline-start

* Replace padding-right with padding-inline-end

* Replace padding-top & padding-bottom with padding-block; continue replacing  padding-left and padding-right with padding-inline-start and padding-inline-end

* Add updated rtl-compatible margins to ft-slider and fix indentation

* Replace margin-top & margin-bottom with margin-block; continue replacing margin-left and margin-right with margin-inline-start and margin-inline-end

* Continue replacing with margin-block and margin-inline

* Replace left and right with inset-inline-start and inset-inline-end

This commit also changes border-left to border-inline-start, and border-right to border-inline-end.

* Replace margin-bottom, top, and bottom with margin-block-end, inset-block-start, and inset-block-end

This commit also replaces border-top and border-bottom with border-block-start and border-block-end.

* Replace text-align left and right with text-align start and end

* Fix syntax error with inset-block-end

* Implement dynamic float: left/right based on direction ltr/rtl

* Implement dynamic navigation arrow placement based on direction ltr/rtl

To the fullest of my understanding, it is expected for the left navigation in rtl-supporting browsers to be for forward navigation, and the right one to be for backward navigation.

* Add direction to body based on preferred language

* Implement horizontal directionality coefficient to fix translate working in wrong x-direction for rtl languages

* Add explicit text-align: start in places to ensure rtl version is correctly aligned

* Add text-align: start to places where it is not inferred to enable proper rtl text orientation

* Fix search bar magnifying glass being too far right issue

* Move body.dir-setting logic to setLocale to fix dir not setting correctly on page reload

* Change .switchColumn to have align-items: start instead of justify-items: start

I have validated this for all settings tabs; the justify-content: start did nothing in any language, left-to-right or right-to-left. Replacing it with align-items: start aligned all menu switch items by their switches, not by their labels. This makes for a much more uniform settings section for trl languages.

* Fix emergent bug in which history icons are temporarily disabled on changing language to one with different directionality

Given that which icon is displayed for which history arrow is now dynamic based on the user's directionality, changing of the icon resets the font-awesome-icon state and thus re-adds the base disabled class to both arrows. This means that changing your language to one that has a different directionality was falsely setting the arrows to their disabled state (until the route is changed, after which the history icons will be fully back to normal). This commmit refactors the history icon setting logic to use class binding to two booleans in the top-nav component's data rather than adding and removing the disabled classes directly to the arrow elements' classLists, thus cleaning up the implementation and fixing the bug.

* Add Kurdish to rtl languages list & add li items to be right-aligned on rtl languages

* Force FreeTube logo to be ordered left-to-right for 'brand consistency'

* Add styling flipping font-awesome icons for rtl languages except for exclusion list

* Update isRightAligned with additional languages, and use it instead of locale value from store

Kudos to absidue for pointing out this existing function for representing this, and that it grabs directly from the i18n object. This means that FreeTube will display the proper rtl interface if one is the user's system language, where it did not before.

* Update isRightAligned property name to more clearly reflect rtl purpose

* Simplify left/right arrow display logic

Leverage the icons being flipped rather than manually setting the classes to their opposites when the directionality is RTL.

* Replace justify-self: left & justify-self: right with justify-self; start and justify-self: end

* Remove misguided attempt to emulate directionality-agnosticism with rightAligned class

* Explicitly center FreeTube version on About page

* Fix question mark reversing logic for Arabic, Hebrew, Persian, and Urdu

* Fix minor indentation issue

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

* Remove unused function

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

* Update src/renderer/components/ft-slider/ft-slider.css

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-09 18:29:26 +02:00
absidue e832f22c6f
Default theatre mode no sidebar (#3981)
* Revert "! Fix watch page layout when theatre mode enabled and sidebar "hidden" (#3931)"

This reverts commit 621cc27938.

* Fix the watch page layout when the sidebar is hidden and theatre mode mode is enabled by default

* Do not use theatre mode while loading
2023-09-06 23:43:27 -04:00
Benjababe 15437347b4
Add button to pause playlist after current video (#3938)
* Rounded playlist buttons to circles

* Add pause button for playlists

* reverted en_GB changes
2023-09-07 09:28:21 +08:00
absidue 2cecb56a75
Make ft-channel-bubble an actual link when it is being used as one (#3980) 2023-09-06 09:57:19 +00:00
Svallinn 1003763b01
Chore: Update vscode configurations (#3986) 2023-09-05 05:26:11 +00:00
Jason c371f6035d
Pastel & Hot Pink Themes (#3937)
* Add pastel and hot pink base configuration & labels

* Update Author Background Color to be based on --secondary-card-bg-color instead of --scrollbar-color

This unneeded dependency on the scrollbar color here resulted in the Author Background text blending into its background on the new Hot Pink theme. This change does not tangibly affect any other theme, whose scrollbar colors are incidentally similar to the secondary-card-bg-color, as this color is already being used for tags on the Channel About tab.

* Implement Pastel Pink and Hot Pink styling

Note that Hot Pink styling overwrites the primary and secondary color themes to maintain accessible color contrasts throughout FreeTube. It also updates the underline styling to match its aesthetic. The scrollbar-text-color-hover and side-nav-active-text-color colors are added for allow for the text and icon to both change on hover. This allows for more accessible hover and active styling.

* Add textWhiteSmall and iconWhiteSmall to repo; add FT pink icon themes

The textWhiteSmall was actually already sized exactly the same as the other small text files, so I just changed the name to reflect that fact.

* Add side-nav-hover-text-color and side-nav-active-text-color throughout FT

* Update Hot Pink theme accent-color-active

* Add side-nav hover-text and active-text styling to ft-icon-button

* Fix incorrect variable name

* Disable primary & secondary color theme controls when hot pink theme is enabled
2023-09-01 09:17:46 -04:00
David Frederick Batt 884ba91115
Add option to change thumbnail appearance (#3890)
* Add option to blur thumbnails

* Add dropdown for different thumbnail display modes

* Add dropdown for different thumbnail display modes

* Fix thumbnail display mode setting not appearing due to incorrect localization

* Rename thumbnail display mode option 'Not Loaded' to 'Hidden'

* Fix thumbnail display mode 'hidden' not working

* Fix thumbnail display mode not applying to playlists

Makes thumbnail display mode setting also affect thumbnails in ft-list-playlist and playlist-info.

* Remove unnecessary styling

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Make hidden thumbnails toggleable from thumbnail preferences

* Replace thumbnail placeholder png with svg

* Fix thumbnail preference 'hidden' not applying to ft-list-playlist

* Fix placeholder svg breaking playlist layout

* Refactor ft-list-video

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-08-31 11:18:52 -04:00
PikachuEXE 621cc27938
! Fix watch page layout when theatre mode enabled and sidebar "hidden" (#3931) 2023-08-30 03:13:11 +00:00
Benjababe 0b44548331
Include hide comment photos setting (#3939)
* Added hide comment photos option into settings

* Hide comment photos if setting is enabled

* include hidden photos for comment replies

* Always show video uploader photo in comments

* reverted en_GB changes

* Updated settings to "Hide Profile Pictures in Comments"
2023-08-30 00:08:55 +00:00
PikachuEXE 1a6c9e98c9
Make constants imported from @fortawesome/free-solid-svg-icons ordered by name again (#3958)
* $ Make constants imported from @fortawesome/free-solid-svg-icons ordered by name again

* ~ Add code comment about constant list ordering
2023-08-29 05:06:42 +00:00
Jason c5be5e5700
Fix HTML styling (e.g., hashtag links) showing up as raw HTML in descriptions (#3946) 2023-08-29 00:15:21 +02:00
Jason ce3de2bb07
Make certain controls non-selectable / non-draggable - Part II (#3957)
* This is due to my previous change which included the use of a poorly researched 'user-select: all' to unset a 'user-select'. The problem is that all does something else altogether: 'The content of the element shall be selected atomically: If a selection would contain part of the element, then the selection must contain the entire element including all its descendants. If a double-click or context-click occurred in sub-elements, the highest ancestor with this value will be selected.' Source: https://developer.mozilla.org/en-US/docs/Web/CSS/user-select

* Add user-select:none to one more area

* Remove extraneous additional dash

Co-authored-by: LQ2' <lq2.apostrophe@gmail.com>

---------

Co-authored-by: LQ2' <lq2.apostrophe@gmail.com>
2023-08-29 00:14:35 +02:00
Jason c32b84c478
Show video list buttons on hover or focus (#3954)
* Implement external player icon and favorites icon only appearing after hover/focus

As a way of cleaning up the look of videos, only shows the video icons on hover or focus. This is for all purposes a very 'free' change that I would opine makes FreeTube appear much cleaner.

* Implement video list settings button only appearing on hover/focus

Same idea as for the favorites & external player icons; much cleaner look without any sizable 'cost' to boot.

* Ensure video list buttons always show on devices without hover (e.g., mobile)

* Remove user-select lines (already in another PR) & one extraneous line
2023-08-28 11:29:27 -07:00
Jason 665da2c1c3
Make certain controls non-selectable / non-draggable (#3947)
* Make settings heading text unselectable

I often encounter the issue of accidentally selecting/highlighting the settings heading text, which ends up highlighting all of the text inside of that settings tab. This is an unpleasant appearance that I have to click to remove. This change removes this issue altogether.

* Switch all instances of user-select to be only user-select and -webkit-user-select

* Make side-nav labels unselectable

* Make side-nav and channels un-draggable

* Remove selection from ft-flex-box, ft-input placeholders, and profile icons
2023-08-27 08:46:19 +08:00
Benjababe 08f8b2768a
Add updated video resolution to auto selector (#3935)
* CSS updates

* Include resolution to 'auto' in quality display

* Include auto info in video statistics

* Value integrity check in CreateDashQualitySelector
2023-08-26 18:20:55 +02:00
Vinit Jha 4c3f369aca
Fix Save icon blocking issue (#3951)
* Fix Save icon blocking issue

* Fixed favorite button style
2023-08-26 09:07:04 -07:00
PikachuEXE 16aee6e094
* Update URL parser to recognize youtube.com/live/xxxxxxx (#3930) 2023-08-26 15:58:23 +00:00
PikachuEXE b10a0c0806
! Fix `Scroll playback rate over video player` prevents page scrolling when not activated (#3933) 2023-08-25 11:41:56 -04:00
Wesley Appler 4a7c4d95bf
Refactoring to community polls & fixes for quizzes (#3865)
* Refactoring to community polls & fixes for quizzes

* Replaced the interactive quiz with a reveal button and small fixes

* Replaced the interactive quiz with a reveal button and small fixes

* Implemented vote formatting

* vote translation fix

* Accessibility additions

* Fixed local API is_correct typo

* Fixed inconsistent indents
2023-08-24 22:26:31 +02:00
PikachuEXE 11c3402e2f
! Fix subscription view error channel list style (#3921) 2023-08-23 21:38:21 +00:00
efb4f5ff-1298-471a-8973-3d47447115dc 4d85ef85e5
Add Discussions to Help section of the About tab (#3901)
* Add Discussions to About tab

* Add translation entry
2023-08-22 22:43:42 +02:00
absidue 8c6bfaafa6
Fix playlist view on the watch page not reacting to playlist changes (#3897) 2023-08-21 09:12:27 +08:00
PrestonN f364229039 Fix linting issues 2023-08-20 20:32:12 -04:00
absidue 4d4dcba20f
Ignore broken audio tracks for videos with multiple audio tracks (#3851) 2023-08-19 23:32:48 -04:00
absidue 3236ce80c3
local API: Add support for PageHeader hashtag header (#3896) 2023-08-19 23:28:02 -04:00
absidue bf24630f92
Upgrade YouTube.js to version 6.0 (#3895) 2023-08-19 16:11:20 +00:00
absidue f0341549b5
Fix the layout of the hashtag page (#3886) 2023-08-17 23:06:44 -04:00
absidue 723739f724
Cleanup some template conditionals (#3888) 2023-08-16 08:50:32 +00:00
ChunkyProgrammer eff4a0a66e
Add semantic roles to make the site more accessible (#3887)
* Add semantic roles to make the site more accessible

Co-Authored-By: Jason <84899178+jasonhenriquez@users.noreply.github.com>

* Apply suggestions from code review

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

---------

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-08-16 08:25:59 +00:00
ChunkyProgrammer 0cbe02f88d
Fix Update Subscription Details function when channel name is null (#3884)
* Simplify channel sorting functions

* use deepCopy
2023-08-15 18:17:10 +00:00
absidue 96230c9d1b
local API: Add support for PageHeader channel header (#3871) 2023-08-15 05:37:32 +00:00
absidue cb3a1bdc7e
local API: Support Post Live DVR videos (#3872) 2023-08-14 16:45:17 +00:00