diff --git a/craft/src/panels/sitesmith/SitesmithButton.tsx b/craft/src/panels/sitesmith/SitesmithButton.tsx new file mode 100644 index 0000000..c25e81d --- /dev/null +++ b/craft/src/panels/sitesmith/SitesmithButton.tsx @@ -0,0 +1,29 @@ +import React from 'react'; +import { useSitesmith } from '../../hooks/useSitesmith'; +import { useEditorConfig } from '../../state/EditorConfigContext'; + +interface Props { onClick: () => void; } + +export const SitesmithButton: React.FC = ({ onClick }) => { + const cfg = useEditorConfig(); + const siteId = cfg.whpConfig?.siteId ?? 0; + const { summary } = useSitesmith(siteId); + const locked = summary?.status === 'DISABLED'; + const capped = summary?.status === 'CAP_REACHED'; + return ( + + ); +}; diff --git a/craft/src/panels/topbar/TopBar.tsx b/craft/src/panels/topbar/TopBar.tsx index bcbd82a..f347cd2 100644 --- a/craft/src/panels/topbar/TopBar.tsx +++ b/craft/src/panels/topbar/TopBar.tsx @@ -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 = ({ 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 | null>(null); const publishTimeoutRef = useRef | null>(null); const hasLoadedRef = useRef(false); @@ -239,6 +241,8 @@ export const TopBar: React.FC = ({ device, onDeviceChange }) => { )} + setSitesmithOpen(true)} /> + + + + )} ); };