mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-16 12:42:06 +00:00
feat(music-together): Add new plugin Music Together (#1562)
* feat(music-together): test `peerjs` * feat(music-together): replace `prompt` to `custom-electron-prompt` * fix(music-together): fix * test fix * wow * test * feat(music-together): improve `onStart` * fix: adblocker * fix(adblock): fix crash with `peerjs` * feat(music-together): add host UI * feat(music-together): implement addSong, removeSong, syncQueue * feat(music-together): inject panel * feat(music-together): redesign music together panel * feat(music-together): sync queue, profile * feat(music-together): sync progress, song, state * fix(music-together): fix some bug * fix(music-together): fix sync queue * feat(music-together): support i18n * feat(music-together): improve sync queue * feat(music-together): add profile in music item * refactor(music-together): refactor structure * feat(music-together): add permission * fix(music-together): fix queue sync bug * fix(music-together): fix some bugs * fix(music-together): fix permission not working on guest mode * fix(music-together): fix queue sync relate bugs * fix(music-together): fix automix items not append using music together * fix(music-together): fix * feat(music-together): improve video injection * fix(music-together): fix injection code * fix(music-together): fix broadcast guest * feat(music-together): add more permission * fix(music-together): fix injector * fix(music-together): fix guest add song logic * feat(music-together): add popup close listener * fix(music-together): fix connection issue * fix(music-together): fix connection issue 2 * feat(music-together): reserve playlist * fix(music-together): exclude automix songs * fix(music-together): fix playlist index sync bug * fix(music-together): fix connection failed error and sync index * fix(music-together): fix host set index bug * fix: apply fix from eslint * feat(util): add `ImageElementFromSrc` * chore(util): update jsdoc * feat(music-together): add owner name * chore(music-together): add translation * feat(music-together): add progress sync * chore(music-together): remove `console.log` --------- Co-authored-by: JellyBrick <shlee1503@naver.com>
This commit is contained in:
60
src/plugins/music-together/ui/host.ts
Normal file
60
src/plugins/music-together/ui/host.ts
Normal file
@ -0,0 +1,60 @@
|
||||
import { t } from '@/i18n';
|
||||
import { ElementFromHtml } from '@/plugins/utils/renderer';
|
||||
|
||||
import { Popup } from '../element';
|
||||
import { createStatus } from '../ui/status';
|
||||
|
||||
import IconKey from '../icons/key.svg?raw';
|
||||
import IconOff from '../icons/off.svg?raw';
|
||||
import IconTune from '../icons/tune.svg?raw';
|
||||
|
||||
export type HostPopupProps = {
|
||||
onItemClick: (id: string) => void;
|
||||
};
|
||||
export const createHostPopup = (props: HostPopupProps) => {
|
||||
const status = createStatus();
|
||||
status.setStatus('host');
|
||||
|
||||
const result = Popup({
|
||||
data: [
|
||||
{
|
||||
type: 'custom',
|
||||
element: status.element,
|
||||
},
|
||||
{
|
||||
type: 'divider'
|
||||
},
|
||||
{
|
||||
id: 'music-together-copy-id',
|
||||
type: 'item',
|
||||
icon: ElementFromHtml(IconKey),
|
||||
text: t('plugins.music-together.menu.click-to-copy-id'),
|
||||
onClick: () => props.onItemClick('music-together-copy-id'),
|
||||
},
|
||||
{
|
||||
id: 'music-together-permission',
|
||||
type: 'item',
|
||||
icon: ElementFromHtml(IconTune),
|
||||
text: t('plugins.music-together.menu.set-permission', { permission: t('plugins.music-together.menu.permission.host-only') }),
|
||||
onClick: () => props.onItemClick('music-together-permission'),
|
||||
},
|
||||
{
|
||||
type: 'divider',
|
||||
},
|
||||
{
|
||||
type: 'item',
|
||||
id: 'music-together-close',
|
||||
icon: ElementFromHtml(IconOff),
|
||||
text: t('plugins.music-together.menu.close'),
|
||||
onClick: () => props.onItemClick('music-together-close'),
|
||||
},
|
||||
],
|
||||
anchorAt: 'bottom-right',
|
||||
popupAt: 'top-right',
|
||||
});
|
||||
|
||||
return {
|
||||
...status,
|
||||
...result,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user