import React from 'react' import PageHtmlComponent from '../component/PageHtml.jsx' import { handleFetchResult, PopinFixed, PopinFixedHeader, PopinFixedOption, PopinFixedContent, Timeline } from 'tracim_lib' import { timelineDebugData } from '../timelineDebugData.js' import { FETCH_CONFIG } from '../helper.js' const debug = { workspace: { id: -1, title: 'Test debug workspace' }, appConfig: { name: 'PageHtml', customClass: 'wsFilePageHtml', icon: 'fa fa-file-word-o', apiUrl: 'http://localhost:3001' }, loggedUser: { id: 5, username: 'Smoi', firstname: 'Côme', lastname: 'Stoilenom', email: 'osef@algoo.fr', avatar: 'https://avatars3.githubusercontent.com/u/11177014?s=460&v=4' }, content: { id: -1, type: 'pageHtml', title: 'Test debug pageHtml', status: 'validated', version: '-1', text: 'This is the default pageHtml content for debug purpose' }, timeline: timelineDebugData } class pageHtml extends React.Component { constructor (props) { super(props) this.state = { appName: 'PageHtml', isVisible: true, workspace: props.data ? props.data.workspace : debug.workspace, appConfig: props.data ? props.data.appConfig : debug.appConfig, loggedUser: props.data ? props.data.loggedUser : debug.loggedUser, content: props.data ? props.data.content : debug.content, timeline: props.data ? [] : debug.timeline } document.addEventListener('appCustomEvent', this.customEventReducer) } customEventReducer = ({ detail: action }) => { // action: { type: '', data: {} } switch (action.type) { case 'PageHtml_showApp': this.setState({isVisible: true}) break case 'PageHtml_hideApp': this.setState({isVisible: false}) break } } async componentDidMount () { const { workspace, content, appConfig } = this.state if (content.id === '-1') return // debug case const fetchResultPageHtml = await fetch(`${appConfig.apiUrl}/workspace/${workspace.id}/content/${content.id}`, { ...FETCH_CONFIG, method: 'GET' }) const fetchResultTimeline = await fetch(`${appConfig.apiUrl}/workspace/${workspace.id}/content/${content.id}/timeline`, { ...FETCH_CONFIG, method: 'GET' }) fetchResultPageHtml.json = await handleFetchResult(fetchResultPageHtml) fetchResultTimeline.json = await handleFetchResult(fetchResultTimeline) this.setState({ content: fetchResultPageHtml.json, timeline: fetchResultTimeline.json }) } handleClickBtnCloseApp = () => { this.setState({ isVisible: false }) } render () { const { isVisible, loggedUser, content, timeline, appConfig } = this.state if (!isVisible) return null return ( ) } } export default pageHtml