mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-30 11:46:36 +08:00
71bf60c69c
初始化项目
51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import { createRoot } from 'react-dom/client'
|
|
import { X } from 'lucide-react'
|
|
|
|
import { AdminLibraryPanel } from '../pages/AdminLibraryPanel'
|
|
|
|
export function openManageLibrariesDialog(): Promise<void> {
|
|
return new Promise((resolve) => {
|
|
const host = document.createElement('div')
|
|
document.body.appendChild(host)
|
|
const root = createRoot(host)
|
|
|
|
const close = () => {
|
|
root.unmount()
|
|
host.remove()
|
|
resolve()
|
|
}
|
|
|
|
root.render(<ManageLibrariesDialog onClose={close} />)
|
|
})
|
|
}
|
|
|
|
function ManageLibrariesDialog({ onClose }: { onClose: () => void }) {
|
|
return (
|
|
<div
|
|
className="fixed inset-0 z-[100] flex items-center justify-center bg-black/35 p-4 backdrop-blur-sm"
|
|
onClick={onClose}
|
|
>
|
|
<div
|
|
role="dialog"
|
|
aria-modal="true"
|
|
className="flex h-[85vh] w-full max-w-5xl flex-col overflow-hidden rounded-3xl border border-white/70 bg-white shadow-2xl"
|
|
onClick={(event) => event.stopPropagation()}
|
|
>
|
|
<div className="flex items-center justify-between border-b border-gray-100 px-6 py-4">
|
|
<h3 className="font-display text-lg font-bold text-ink-600">管理媒体库</h3>
|
|
<button
|
|
type="button"
|
|
onClick={onClose}
|
|
className="rounded-xl p-1.5 text-ink-50 transition hover:bg-gray-100 hover:text-ink-600"
|
|
title="关闭"
|
|
>
|
|
<X size={20} />
|
|
</button>
|
|
</div>
|
|
<div className="flex-1 overflow-y-auto p-6">
|
|
<AdminLibraryPanel />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
)
|
|
} |