sitesmith: topbar button with locked/capped states

This commit is contained in:
2026-05-23 14:23:51 -07:00
parent cf3457aa15
commit bf55ee85b9
2 changed files with 41 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ import { usePages } from '../../state/PageContext';
import { DeviceMode } from '../../types';
import { TemplateModal } from './TemplateModal';
import { HeadCodeModal } from './HeadCodeModal';
import { SitesmithButton } from '../sitesmith/SitesmithButton';
interface TopBarProps {
device: DeviceMode;
@@ -26,6 +27,7 @@ export const TopBar: React.FC<TopBarProps> = ({ device, onDeviceChange }) => {
const [isDraft, setIsDraft] = useState(false);
const [templateModalOpen, setTemplateModalOpen] = useState(false);
const [headCodeModalOpen, setHeadCodeModalOpen] = useState(false);
const [sitesmithOpen, setSitesmithOpen] = useState(false);
const saveTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
const publishTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
const hasLoadedRef = useRef(false);
@@ -239,6 +241,8 @@ export const TopBar: React.FC<TopBarProps> = ({ device, onDeviceChange }) => {
</span>
)}
<SitesmithButton onClick={() => setSitesmithOpen(true)} />
<button
className="topbar-btn primary"
onClick={handleSave}
@@ -269,6 +273,14 @@ export const TopBar: React.FC<TopBarProps> = ({ device, onDeviceChange }) => {
</div>
<TemplateModal open={templateModalOpen} onClose={() => setTemplateModalOpen(false)} />
<HeadCodeModal open={headCodeModalOpen} onClose={() => setHeadCodeModalOpen(false)} />
{sitesmithOpen && (
<div role="dialog" style={{ position: 'fixed', top: 0, left: 0, right: 0, bottom: 0, background: 'rgba(0,0,0,0.6)', zIndex: 9000, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
<div style={{ background: '#0f0f17', color: '#fff', padding: 32, borderRadius: 10 }}>
<p>SitesmithModal will land in Task 20.</p>
<button onClick={() => setSitesmithOpen(false)} style={{ background: '#7c3aed', color: '#fff', border: 'none', padding: '8px 14px', borderRadius: 6 }}>Close</button>
</div>
</div>
)}
</nav>
);
};