[ SYSTEM ]: Linux wordpress 6.1.0-44-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
[ SERVER ]: Apache/2.4.66 (Debian) | PHP: 8.2.30
[ USER ]: www-data | IP: 172.19.30.54
GEFORCE FILE MANAGER
/
var
/
www
/
html
/
wordpress
/
wp-content
/
plugins
/
presto-player
/
src
/
admin
/
blocks
/
blocks
/
bunny
/
popup
/
stream
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📁 collections
SET
[ DEL ]
📁 store
SET
[ DEL ]
📁 upload
SET
[ DEL ]
📁 video
SET
[ DEL ]
📄 BackButton.js
623 B
SET
[ EDIT ]
|
[ DEL ]
📄 CollectionHeader.js
2,887 B
SET
[ EDIT ]
|
[ DEL ]
📄 Footer.js
1,248 B
SET
[ EDIT ]
|
[ DEL ]
📄 Header.js
1,605 B
SET
[ EDIT ]
|
[ DEL ]
📄 Loading.js
294 B
SET
[ EDIT ]
|
[ DEL ]
📄 Popup.js
3,799 B
SET
[ EDIT ]
|
[ DEL ]
📄 ProgressBar.js
353 B
SET
[ EDIT ]
|
[ DEL ]
📄 ProgressOverlay.js
787 B
SET
[ EDIT ]
|
[ DEL ]
📄 Sidebar.js
4,941 B
SET
[ EDIT ]
|
[ DEL ]
📄 ThumbTemplate.js
1,643 B
SET
[ EDIT ]
|
[ DEL ]
📄 utils.js
1,634 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: Popup.js
/** @jsx jsx */ /** * WordPress dependencies */ const { __ } = wp.i18n; const { Button, DropZone, DropZoneProvider, Notice } = wp.components; const { useState, useEffect, Fragment } = wp.element; const { dispatch, useSelect } = wp.data; import { css, jsx } from "@emotion/core"; import Sidebar from "./Sidebar"; import Videos from "./video/Videos"; import Collections from "./collections/Collections"; import Header from "./Header"; import Footer from "./Footer"; import CollectionHeader from "./CollectionHeader"; import Uploads from "./upload/Uploads"; import MediaPopupTemplate from "@/admin/blocks/shared/media/MediaPopupTemplate"; export default ({ onClose, onChoose }) => { const isPrivate = useSelect((select) => select("presto-player/bunny-popup").isPrivate() ); const uploads = useSelect((select) => select("presto-player/bunny-popup").uploads() ); const currentCollection = useSelect((select) => select("presto-player/bunny-popup").currentCollection() ); const errors = useSelect((select) => select("presto-player/bunny-popup").errors() ); useEffect(() => { dispatch("presto-player/bunny-popup").setVideosFetched(false); dispatch("presto-player/bunny-popup").setCollections([]); dispatch("presto-player/bunny-popup").setVideos([]); }, []); const onCloseConfirm = () => { if (uploads.length) { const r = confirm("Discard your uploads?"); if (r) { onClose(); dispatch("presto-player/bunny-popup").setUploads([]); } return; } onClose(); }; const addUpload = (files) => { dispatch("presto-player/bunny-popup").addUploads(files); }; const removeUpload = (file) => { dispatch("presto-player/bunny-popup").removeUpload(file); }; /** * Modal Title * * @returns string */ const title = isPrivate ? __("Private Stream Library", "presto-player") : __("Public Stream Library", "presto-player"); /** * Main Content * * @returns JSX */ const mainContent = () => { return ( <DropZoneProvider css={css` overflow: auto; display: flex; flex-direction: column; `} > <div css={css` padding: 12px 24px; overflow: auto; display: flex; flex-direction: column; `} > {!!errors.length && errors.map((error) => { return ( <Notice css={css` margin: 0 0 20px 0; `} status="error" onRemove={() => dispatch("presto-player/bunny-popup").removeError(error) } > {error} </Notice> ); })} {/* Show back button or collections */} {!!currentCollection ? <CollectionHeader /> : <Collections />} <div css={css` display: flex; align-items: stretch; `} > <Videos /> </div> <DropZone label={"Drop files"} onFilesDrop={addUpload} /> </div> </DropZoneProvider> ); }; /** * Modal Header */ const header = ( <Header afterUpload={ <Uploads uploads={uploads} removeUpload={removeUpload} isPrivate={isPrivate} /> } /> ); const sidebar = <Sidebar />; /** * Modal Footer */ const footer = <Footer onChoose={onChoose} />; return ( <MediaPopupTemplate title={title} header={header} mainContent={mainContent()} onClose={onCloseConfirm} footer={footer} sidebar={sidebar} /> ); };