Commit Graph

1478 Commits

Author SHA1 Message Date
Jason 2208393f76
Implement settings section sorting option (#5010)
* Implement settings section sorting

* Make IS_ELECTRON property used directly
2024-04-25 22:59:17 +00:00
Jason d52ab88e7f
Add icons to dropdowns (#5006)
* Implement icons for all ft-selects

* Remove unnecessary v-if

* Update to use getIconForSortPreference util function with all arrows pointing down

* Update src/renderer/views/Playlist/Playlist.js

Co-authored-by: PikachuEXE <git@pikachuexe.net>

---------

Co-authored-by: PikachuEXE <git@pikachuexe.net>
2024-04-25 22:29:52 +02:00
absidue a94910df27
Serve files from a custom protocol instead of using file:// (#4987) 2024-04-23 21:24:59 +00:00
Emma 9cec76b228
Set refresh widget z-index to below dropdown search bar (#4980)
* Set `ft-refresh-widget` to z-index of 3

It should be still high enough to be above watch progress, but below the search bar

* Remove `topNav` box-shadow which was previously hidden by z-index
2024-04-19 12:42:40 +00:00
Jason d65ae6eaae
Fix video timestamps (#4979)
* Fix video timestamps

* Update week logic
2024-04-18 22:02:26 -04:00
efb4f5ff-1298-471a-8973-3d47447115dc bb69b558df
Remove `logoColor.png` (#4972)
* Remove logoColor.png

* Remove png from About.vue

* Use repo svg instead of docs png

* Delete _icons/logoColor.png
2024-04-18 21:59:26 -04:00
ChunkyProgrammer 5d0dd3f531
Define emits before using them Part 2 (#4974)
* add missing emits

* update ft-refresh-widget

* Let event handler get CurrentValue instead of specifying it

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

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2024-04-19 09:00:19 +08:00
Jason 207e901615
Fix refresh widget to use same z-index as top-nav (#4977) 2024-04-18 15:43:39 +00:00
absidue 27eecb9e0b
Simplify static file loading (#4971) 2024-04-18 01:09:29 +00:00
absidue fa66e82a56
Bundle datastores as ES modules instead of commonjs (#4965) 2024-04-17 22:33:13 +00:00
Jason ab3c1b9b29
Show when Subscriptions / Trending / Most Popular were last updated (#4380)
* Implement first draft of last subscription refresh timestamp

* Update styling to be a top bar

* Update styling to be banner-compatible, & increase banner X button size on mobile

* Update subscription refresh timestamp to be relative

* Implement refresh timestamps for Shorts, Live, and Community tabs

* Extract refresh widget to its own component

* Add Trending and Popular refresh widgets with timestamps

* Fix justifying when no timestamp exists

* Move timestamps to utils store

* Remove unneeded ref classes and currentLocale computed property

* Add page-specific titles for each feed type

* Implement showing least recent cache date per profile

* Update styling property placement & match top nav box shadow on ft-refresh-widget

* Implement showing timestamp for profile only if all channel subscriptions can be found in cache

* Disable refresh button instead of removing it or the widget from the DOM

* Increase top banner's top margin

* Update channel caching calls to provide timestamps

* Modify updateCacheByChannel functions to have default timestamp of new Date()

* Fix 30-day month relative date calculation scenarios through new optional parameter

* Rectify Case 3 (see https://github.com/FreeTubeApp/FreeTube/pull/3668)

* Add back missing line in Popular.js
2024-04-18 05:54:46 +08:00
ChunkyProgrammer 2bc44cd66b
Define emits before using them (#4973)
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2024-04-17 21:50:23 +00:00
Jason 23f1618fcb
Add back 3 Stylelint configs (#4350)
* Add back @double-great/stylelint-a11y Stylelint plugin

Notably, we choose to not use the 'a11y/no-outline-none' rule. The reason for this being that our focus ring suffices for almost every use case (https://www.w3.org/WAI/WCAG22/Understanding/focus-appearance-minimum), and using the same hover and focus styling can be considered bad design in many cases. YT goes the direction of foregoing the focus ring for many of its components and choosing a barely darker color than its :hover for :focus styling, which is controversial. Accessibility-wise, at the very least, using the same hover and focus styling can be confusing, especially for sighted users who use keyboard navigation.

* Add back stylelint-config-sass-guidelines

* Add back stylelint-config-standard

* Satisfy media-prefers-reduced-motion a11y rule

This is not recognized as a fix by the rule due to its limited detection logic, so this rule is not being imported directly.

* Remove duplicate code

* Implement linting fixes

* Implement _ft-list-item.scss linting fixes excluding no-descending-specificity

Properly implementing the no-descending-specificity rule in this file seems to utterly destroy the styling. This would be its own entire initiative to unravel.

* Restart from scratch modifications of _ft-list-item.scss

* Resolve styling discrepancies introduced with ft-list-channel and ft-tooltip
2024-04-17 19:49:37 +02:00
Jason 9815ed3da2
Sort videos within playlist (#4921)
* Implement playlist sorting

* Hide sort menu for remote playlists

* Remove 'Custom (descending)' sort order

I don't see the need for this particular sort order.

* Adjust sort order & align dropdown with 'More Options' button

* Make 'Latest added first' default option instead of custom

* Remove unlikely-to-be-implemented 'Date published' sorting options

Context from absidue: 'I don't think we should even attempt to support it, due to all of the situations where it wouldn't be possible.'

* Update to use sortOrder as main variable throughout

* Hide sort menu for playlists of length <2
2024-04-17 06:26:43 +08:00
PikachuEXE 2b7c96eb97
Update most paginated places to auto load next page (except comments) (#4565)
* * Update most paginated places to auto load next page (except comments)

* * Make comment section auto load next pages too

* $ Use new component to dedup auto load code

* * Implement auto load next page for single playlist page

* * Remove comment auto load setting

* * Update tooltip text
2024-04-16 22:16:08 +02:00
Jason 5359d8468e
Improve video playlist search UX (#4929)
* Enable playlist video search mode by default; add Ctrl+F binding

* Fix subject-verb agreement on two search labels

* Remove playlist video search bar when only one video is in the playlist

* Add check for search video mode allowed that is requisite for keybinding

* Remove unnecessary 'async function' in mounted

* Fix styling issue
2024-04-16 17:47:40 +02:00
Jason 981e8e4530
Fix user playlist reversal failing after user playlist information is updated (#4947) 2024-04-16 17:46:43 +02:00
efb4f5ff-1298-471a-8973-3d47447115dc 9e151b74bb
Fix type check failed for prop `searchQueryText` (#4962) 2024-04-16 17:46:26 +02:00
ynnsuis e087008707
Fix/ Improve accessibility of playlist icon buttons (#4943)
* Add aria-pressed attribute to playlist icon button

* Improve accessibility by adjusting stroke thickness of playlist icon

* Fix to keep the inactive hover state the same

* Update playlist icon active hover style

* Update playlist icon active hover color to --accent-color-hover
2024-04-14 11:15:23 -04:00
absidue dfdab0dd5d
Local API: Fix extracting the published date and view count in playlists (#4936) 2024-04-14 13:23:32 +00:00
absidue bb7d90be05
Fix imports of the "electron" module that are missing an Electron guard (#4935) 2024-04-14 13:16:55 +00:00
Emma d49b3ba442
Set max height for storyboards depending on window width (#4933)
* Pick largest storyboard that is less than 90px tall

* Reduce storyboard size when window inner width is below 500

* Reduce code

* Only check the window inner width once

to avoid messing with the video player internals for storyboards

* Add back deleted line

* Add back trailing comma
2024-04-12 17:05:06 +00:00
Mehul Sweeti Agrawal ae8e0ce96d
Add more options to default playback rate menu (#4880)
* make slider precise as per playback speed

* Resolve type error in Default Playback

* Adjust the min value of playback slider in accordance to selected interval

* Fix min value of Default Playback
2024-04-12 17:29:09 +02:00
Jakub Kordovský 5aba52beac
SVG assets (#4898)
* SVG assets

* Added hi-res version of Windows icon

* Added back PNG icon for Electron app
2024-04-12 17:25:49 +02:00
absidue af2913592e
Add SUPPORTS_LOCAL_API build flag (#4931) 2024-04-12 06:12:50 +00:00
Jason d6e5439b67
Add back author search in video playlist searching (#4919)
* Add back author search in video playlist searching

Reuses previous paradigm (the paradigm currently in place in History.js). This was the pre-existing behavior before the Playlist PR. See 5c8d49bf51/src/renderer/views/UserPlaylists/UserPlaylists.js (L98-L103).

* Update title/author search handling to not fail if only one of the base values is invalid

* Add author-searching to 'Find playlist with video' results
2024-04-11 13:46:33 +00:00
absidue bc6b88231e
Add locale fallbacks for "es_AR", "es-MX", "pt-BR" and "pt-PT" (#4892)
* Add fallback to "es" when strings are missing in "es_AR" and "es-MX"

* Add fallbacks for pt-PT and pt-BR too
2024-04-11 07:59:01 -04:00
Emma 1dde533270
Use more generic icon for `Quick bookmark` feature (#4885)
* Use `bookmark` icon for `Quick bookmark` feature

* Make bookmark icon primary colour

* Remove colour from fa-bookmark

* Make thumbnail icons fully visible instead of only 85% visible

* Make thumbnail icons very slightly larger

* Revert size change of bookmark icon and playlist add icon

* Revert `$thumbnail-overlay-opacity` and change icon opacity directly
2024-04-11 08:24:25 +00:00
absidue 490c51fe59
Workaround YouTube returning empty pages on the channel live tab (#4914) 2024-04-09 09:22:39 -04:00
absidue 4b509f0edd
Fix incorrect published dates in the channel search with the Invidious API (#4912) 2024-04-08 21:26:03 -04:00
absidue ae027f1c90
Fix window title displaying null while loading a video or channel (#4913) 2024-04-08 21:16:51 -04:00
absidue ab60eb264a
Ask the main process, instead of the file system whether the replace HTTP cache setting is enabled (#4894) 2024-04-07 23:00:07 -04:00
absidue f7206ec7e8
Use blob URLs for storyboards instead of writing them to the file system (#4891) 2024-04-08 09:31:20 +08:00
ChunkyProgrammer d8387b76d7
Add i18n-eslint-plugin (#4763)
* add i18n-eslint-plugin

* remove `FreeTube` `Invidious` and `YouTube` from locale files as those shouldn't be translated

* Remove testing code

* Uncomment code

* use separate getColorTranslations function

* make suggested changes

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

* Add back blank line between import & export

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <git@pikachuexe.net>
2024-04-07 14:58:15 +00:00
absidue 8b16bd5d6d
Move ft-list-channel specific css to ft-list-channel.scss (#4873) 2024-04-06 09:53:01 +08:00
PikachuEXE bf4f6e42b4
Make chapter section scroll to current chapter when scroll into view port when expanded (#4725)
* * Make chapter section scroll to current chapter when scroll into view port when expanded

* * Use existing element instead of new dummy element
2024-04-02 12:53:43 -04:00
PikachuEXE 4dea7746c5
Update icons for add to/remove from quick bookmark button (#4825)
* * Update icons for add to/remove from quick bookmark target button

* * Change quick bookmarked indicator to green

* * Stop importing star icon which is now unused
2024-04-01 21:54:19 -04:00
absidue f25753c164
Add support for sorting the shorts tab by oldest on the local API (#4832) 2024-04-01 21:54:02 -04:00
absidue 455216c6cd
Add support for CommentViews in video comments (#4806) 2024-04-02 09:30:41 +08:00
absidue 52e605d8cd
Add support for LockupViews on the channel podcasts tab (#4767) 2024-04-02 09:03:58 +08:00
absidue 5f2a998331
Fix v-observe-visibility error when playlist items are updated (#4774) 2024-03-26 21:36:34 -04:00
absidue b04e349b06
Fix extracting the subscriber count from channel PageHeader nodes (#4804) 2024-03-26 21:35:34 -04:00
absidue 598d970b93
Create empty subscriptions cache objects directly instead of cloning (#4814) 2024-03-27 08:37:19 +08:00
absidue b1244b7dab
Parse compact numbers without using floating point numbers to avoid accuracy issues (#4817) 2024-03-27 08:34:21 +08:00
absidue d8a3ab337d
Fix the left arrow key not working on the first button in prompts (#4816) 2024-03-27 08:32:21 +08:00
absidue b65b1a6be9
Move usingElectron from computed into data (#4810) 2024-03-26 20:27:57 -04:00
absidue 31c813ddfd
Stop setting node modules path now that we bundle the modules (#4809) 2024-03-26 20:27:35 -04:00
PikachuEXE 8fa8e1fd99
! Fix handling of video data without `published` (#4788) 2024-03-25 15:23:01 +00:00
absidue cac1d6be09
Keep the video options button visible when the dropdown is open (#4771) 2024-03-25 10:21:10 -04:00
absidue 4c47987bde
Undo context menu widget layering workaround now that the issue is fixed (#4768) 2024-03-19 08:47:47 +08:00