Files
tubearchivist/frontend/src/components/MoveVideoMenu.tsx
Merlin 83bb7f678b DRAFT: Add Tubearchivist Frontend React dev docker setup (#768)
* Add development docker-compose file

* Add /new/ path in nginx conf

* Add frontend production setup

* Fix lint

* Refac move prod docker compose into non suffixed file

* Fix run.sh fileendings on windows

* Fix docker file naming consistancies

* Add frontend dev setup

* Add docker compose dev command

* Refac remove docker network

* Fix potential error causes

* Chore update react-router-dom

* Add redirect to login after logout

* Refac allow basic auth for session login in api

* Fix loginresponsetype optional property

* Refac move isAdmin check into page Base

* Refac use node lts for dev container

* Refac remove old setup in readme

* Refac move getisAdmin into loader and rename

* Refac remove manual csrf cookie handing from actions and loader

* Fix post requiring csrf header & cookie

* Fix remove empty files

* Refac revert dockerfile changes

* Refac revert gitatrributes changes

* Refac revert docker changes

* Refac revert nginx changes

* Refac revert docker change

* Refac move frontend into frontend folder

* Add production steps to dockerfile

* Refac implement endpoint renaming

* Refac remove frontend dockerfile

* Add credentials include for dev env

* Fix allow cors with credentials for dev environment

* Fix images in dev mode

* Add credentials for dev mode to all loader and actions, except signin

* Revert cors config

* Revert cors config

* Fix nginx not serving /youtube/

* Fix video url missing api

* Fix media url missing api

* Add application settings page

* Add continue vids

* Add csrf to delete requests

* Refac use api/video endpoint with filter to home, channel, playlist pages

* Add channel nav request

* Add channel playlists

* Fix filterbar for playlist in channel

* Add playlist_nav to video page

* Add downloads aggs

* Refac remove basic auth

* Fix credentials include in signin

* Refac user config to user me config

* Add ApiToken get
2024-08-11 00:53:50 +07:00

95 lines
2.5 KiB
TypeScript

import iconClose from '/img/icon-close.svg';
import iconArrowTop from '/img/icon-arrow-top.svg';
import iconArrowUp from '/img/icon-arrow-up.svg';
import iconArrowDown from '/img/icon-arrow-down.svg';
import iconArrowBottom from '/img/icon-arrow-bottom.svg';
import iconRemove from '/img/icon-remove.svg';
import updateCustomPlaylist from '../api/actions/updateCustomPlaylist';
type MoveVideoMenuProps = {
playlistId?: string;
videoId: string;
setCloseMenu: (status: boolean) => void;
setRefresh: (status: boolean) => void;
};
const MoveVideoMenu = ({ playlistId, videoId, setCloseMenu, setRefresh }: MoveVideoMenuProps) => {
if (playlistId === undefined) {
return [];
}
return (
<>
<div className="video-popup-menu">
<img
src={iconClose}
className="video-popup-menu-close-button"
title="Close menu"
onClick={() => setCloseMenu(true)}
/>
<h3>Move Video</h3>
<img
className="move-video-button"
data-context="top"
onClick={async () => {
await updateCustomPlaylist('top', playlistId, videoId);
setRefresh(true);
}}
src={iconArrowTop}
title="Move to top"
/>
<img
className="move-video-button"
data-context="up"
onClick={async () => {
await updateCustomPlaylist('up', playlistId, videoId);
setRefresh(true);
}}
src={iconArrowUp}
title="Move up"
/>
<img
className="move-video-button"
data-context="down"
onClick={async () => {
await updateCustomPlaylist('down', playlistId, videoId);
setRefresh(true);
}}
src={iconArrowDown}
title="Move down"
/>
<img
className="move-video-button"
data-context="bottom"
onClick={async () => {
await updateCustomPlaylist('bottom', playlistId, videoId);
setRefresh(true);
}}
src={iconArrowBottom}
title="Move to bottom"
/>
<img
className="move-video-button"
data-context="remove"
onClick={async () => {
await updateCustomPlaylist('remove', playlistId, videoId);
setRefresh(true);
}}
src={iconRemove}
title="Remove from playlist"
/>
</div>
</>
);
};
export default MoveVideoMenu;