import * as React from 'react'; import { CustomScript, FolderInfo, Mode, PanelSettings } from '../../models'; import { CommandToCode } from '../CommandToCode'; import { Collapsible } from './Collapsible'; import { GlobalSettings } from './GlobalSettings'; import { OtherActions } from './OtherActions'; import { FolderAndFiles } from './FolderAndFiles'; import { SponsorMsg } from './SponsorMsg'; import { StartServerButton } from './StartServerButton'; import { FeatureFlag } from '../../components/features/FeatureFlag'; import { FEATURE_FLAG } from '../../constants/Features'; import { Messenger } from '@estruyf/vscode/dist/client'; import { GitAction } from './Git/GitAction'; import { useMemo } from 'react'; export interface IBaseViewProps { settings: PanelSettings | undefined; folderAndFiles: FolderInfo[] | undefined; mode: Mode | undefined; } const BaseView: React.FunctionComponent = ({ settings, folderAndFiles, mode }: React.PropsWithChildren) => { const openDashboard = () => { Messenger.send(CommandToCode.openDashboard); }; const initProject = () => { Messenger.send(CommandToCode.initProject); }; const createContent = () => { Messenger.send(CommandToCode.createContent); }; const openPreview = () => { Messenger.send(CommandToCode.openPreview); }; const runBulkScript = (script: CustomScript) => { Messenger.send(CommandToCode.runCustomScript, { title: script.title, script }); }; const customActions: any[] = (settings?.scripts || []).filter( (s) => s.bulk && (s.type === 'content' || !s.type) ); const allPanelValues = useMemo(() => { return Object.values(FEATURE_FLAG.panel).filter(v => v !== FEATURE_FLAG.panel.globalSettings) }, [FEATURE_FLAG.panel]); return (
{!settings?.isInitialized && (
)} {settings?.isInitialized && ( <>
{customActions.map((script) => ( ))}
)}
); }; BaseView.displayName = 'BaseView'; export { BaseView };