34 lines
1002 B
JavaScript
34 lines
1002 B
JavaScript
import React from 'react'
|
|
import { createRoot } from 'react-dom/client'
|
|
import Topbar from './components/Topbar'
|
|
|
|
function mount() {
|
|
const container = document.getElementById('topbar-root')
|
|
if (!container) return
|
|
|
|
const user = container.dataset.userId
|
|
? {
|
|
id: container.dataset.userId,
|
|
displayName: container.dataset.displayName || 'Account',
|
|
username: container.dataset.username || '',
|
|
avatarUrl: container.dataset.avatarUrl || null,
|
|
uploadUrl: container.dataset.uploadUrl || '/upload',
|
|
}
|
|
: null
|
|
|
|
const root = createRoot(container)
|
|
root.render(<Topbar user={user} />)
|
|
|
|
// hide legacy header if present
|
|
const legacy = document.getElementById('legacy-topbar')
|
|
const topbar = document.getElementById('topbar')
|
|
if (legacy) legacy.style.display = 'none'
|
|
if (topbar) topbar.style.display = 'none'
|
|
}
|
|
|
|
if (document.readyState === 'loading') {
|
|
document.addEventListener('DOMContentLoaded', mount)
|
|
} else {
|
|
mount()
|
|
}
|