/// import * as React from 'react' export interface PropsDefine { /** * 导航栏标题 */ title?: string /** * 编辑器的高度 */ height?: number /** * 定制外部提供编辑组件 */ customComponents?: Array> /** * 基础组件 * web 引用 fit-gaea/lib/web-components * react-native 同时兼容 web 引用 fit-gaea/lib/native-components */ baseComponents?: Array> /** * 页面初始化信息 */ defaultValue?: { [mapUniqueKey: string]: FitGaea.ViewportComponentInfo } /** * 点击保存后会返回页面结构树信息 * info.saveToVersion() 被执行后,本地会在顶部新增一个版本信息 * 同时要后端把 info.pageInfo 和当前时间戳 存储起来,下次刷新时候获取,并且塞入到 versionInit 可以显示版本快照信息 */ onSave?: (info?: { [mapUniqueKey: string]: FitGaea.ViewportComponentInfo }) => void /** * 工具栏:是否只显示定制组件 */ isHideCustomComponents?: boolean /** * 第一次切换到版本记录页,填充版本纪录,每条记录格式如下: * info: 与 onSave 的 info.pageInfo 相同,表示这个快照的内容 * date: javascript 的 Date 时间戳,表示当前修改的时间 */ versionInit?: (saveVersion?: (versions?: Array)=>void, hasNext?: boolean)=>void /** * 点击版本记录页的加载更多按钮,加载到哪和加载逻辑需要在业务中处理 */ onLoadMoreVersionClick?: (saveVersion?: (versions?: Array)=>void, hasNext?: boolean)=>void /** * 点击版本发布按钮 * 执行回调会打一个新版本号,注意当服务器保存成功时再调用 */ onPublish?: (id?: string, version?: string, remarks?: string, save?: Function)=>void /** * 当上线被点击后,上线浮层弹出时候的回调 * 此时可以通讯服务器,获取所有已发布的版本信息,作为传参执行回调函数,这样版本信息选择里变有值了 */ onOnlineModalShow?: (callback: (lists: Array)=>void)=>void /** * 当确认上线按钮被点击 */ onOnlineClick?: (key: string|number)=>void /** * 资源 tab 获取内容时的回调 */ getSourceFileList?: (folderId: string, callback: (lists: Array)=>void)=>void /** * 资源 tab 新增一个文件/文件夹 */ addSourceFile?: (folderId?: string, fileInfo?: FitGaea.SourceFile, addSuccess?: ()=>void)=>void /** * is for react-native? */ isReactNative?: boolean [x: string]: any } export class Props implements PropsDefine { title = 'Fit-Gaea' version = '0.0.0' customComponents = [] as Array> isHideCustomComponents = false height = 450 onSave = ()=> { } versionInit = (saveVersion: Function)=> { saveVersion([] as any, false) } onOnlineModalShow = (callback: any)=> { callback([] as any) } onOnlineClick = (key: string|number)=> { } onLoadMoreVersionClick = ()=> { } onPublish = ()=> { } getSourceFileList = (folderId: string, callback: (lists: Array)=>void)=> { // get fileList by folderId const fileList: Array = [] as any // run callback callback(fileList) } addSourceFile = (folderId?: string, fileInfo?: FitGaea.SourceFile, addSuccess?: ()=>void)=> { addSuccess() } isReactNative = false } export interface StateDefine { /** * 是否在预览模式 */ isPreview?: boolean } export class State implements StateDefine { isPreview = false }