mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 02:31:45 +00:00
* Added Plugin File * Added Logic * Known issue * Finished Backend part * Before cleanup * Added Style Removed log * Fixed time and visibility issues * Changed lyrics style * Changed way lyrics are selected * Fix * Added style lyrics options * Cleanup * Fix lyrics styling Changed how lyrics status are changed * Moved code to make file more readable * Change Tab Size * Fixed issue with overlapping lyrics * Removed debug console.log * Added style adaptation for music videos * Changed file indent * Revered back to original pnpm file * Removed unnecessary option * Fix lyrics status bug Removed leftover logs * Started to implement fetching for genius lyrics * feat(synced-lyrics): add `addedVersion` field * Made changes according to feedbacks * fix: add a delay of 300ms to the current time - Since the transition takes 300ms, we need to add a delay of 300ms to the current time * Removed test about genius.com scraping * Removed 300ms delay * chore: cleaned up the code * Specified path and variable * chore: always enable lyrics tab * chore: use SolidJS to render the lyrics * chore: remove useless signal * chore: feature-parity with original PR (+some nice stuff) * recreate lock file * show json decode error * feat(synced-lyrics): improve ui - Change type assertion code - Replace span to `yt-formatted-string` - Add refetch button * chore: make the lyric styling a solidjs effect * feat: i18n * chore: apply suggestion --------- Co-authored-by: Su-Yong <simssy2205@gmail.com> Co-authored-by: JellyBrick <shlee1503@naver.com> Co-authored-by: Angelos Bouklis <53124886+ArjixWasTaken@users.noreply.github.com>
38 lines
1000 B
TypeScript
38 lines
1000 B
TypeScript
import { render } from 'solid-js/web';
|
|
|
|
import { LyricsRenderer, setIsVisible, setPlayerState } from './renderer';
|
|
import { VideoDetails } from '@/types/video-details';
|
|
|
|
export const selectors = {
|
|
head: '#tabsContent > .tab-header:nth-of-type(2)',
|
|
body: {
|
|
tabRenderer: '#tab-renderer[page-type="MUSIC_PAGE_TYPE_TRACK_LYRICS"]',
|
|
root: 'ytmusic-description-shelf-renderer',
|
|
},
|
|
};
|
|
|
|
export const tabStates = {
|
|
true: (data?: VideoDetails) => {
|
|
setIsVisible(true);
|
|
setPlayerState(data ?? null);
|
|
|
|
const tabRenderer = document.querySelector<HTMLElement>(
|
|
selectors.body.tabRenderer,
|
|
);
|
|
if (!tabRenderer) return;
|
|
|
|
let container = document.querySelector('#synced-lyrics-container');
|
|
if (container) return;
|
|
|
|
container = Object.assign(document.createElement('div'), {
|
|
id: 'synced-lyrics-container',
|
|
});
|
|
|
|
tabRenderer.appendChild(container);
|
|
render(() => <LyricsRenderer />, container);
|
|
},
|
|
false: () => {
|
|
setIsVisible(false);
|
|
},
|
|
};
|