import React, {Fragment, useEffect, useState } from 'react'; import {observer, inject} from "mobx-react"; import {f7, View, List, ListItem, Icon, Row, Button, Page, Navbar, NavRight, Segmented, BlockTitle, Link, ListButton, Toggle, Actions, ActionsButton, ActionsGroup} from 'framework7-react'; import { useTranslation } from 'react-i18next'; import {Device} from '../../../../../common/mobile/utils/device'; const EditTableContents = props => { const { t } = useTranslation(); const _t = t('Edit', {returnObjects: true}); const api = Common.EditorApi.get(); const propsTableContents = api.asc_GetTableOfContentsPr(); const count = propsTableContents.get_StylesCount(); console.log(propsTableContents); const [type, setType] = useState(0); const [styleValue, setStyleValue] = useState(propsTableContents.get_StylesType()); const [pageNumbers, setPageNumbers] = useState(propsTableContents.get_ShowPageNumbers()); const [rightAlign, setRightAlign] = useState(propsTableContents.get_RightAlignTab()); const [leaderValue, setLeaderValue] = useState(propsTableContents.get_TabLeader() ? propsTableContents.get_TabLeader() : Asc.c_oAscTabLeader.Dot); const arrStyles = (type === 1) ? [ { displayValue: t('Edit.textCurrent'), value: Asc.c_oAscTOFStylesType.Current }, { displayValue: t('Edit.textSimple'), value: Asc.c_oAscTOFStylesType.Simple }, { displayValue: t('Edit.textOnline'), value: Asc.c_oAscTOFStylesType.Web }, { displayValue: t('Edit.textClassic'), value: Asc.c_oAscTOFStylesType.Classic }, { displayValue: t('Edit.textDistinctive'), value: Asc.c_oAscTOFStylesType.Distinctive }, { displayValue: t('Edit.textCentered'), value: Asc.c_oAscTOFStylesType.Centered }, { displayValue: t('Edit.textFormal'), value: Asc.c_oAscTOFStylesType.Formal } ] : [ { displayValue: t('Edit.textCurrent'), value: Asc.c_oAscTOCStylesType.Current }, { displayValue: t('Edit.textSimple'), value: Asc.c_oAscTOCStylesType.Simple }, { displayValue: t('Edit.textOnline'), value: Asc.c_oAscTOCStylesType.Web }, { displayValue: t('Edit.textStandard'), value: Asc.c_oAscTOCStylesType.Standard }, { displayValue: t('Edit.textModern'), value: Asc.c_oAscTOCStylesType.Modern }, { displayValue: t('Edit.textClassic'), value: Asc.c_oAscTOCStylesType.Classic } ]; const arrLeaders = [ { value: Asc.c_oAscTabLeader.None, displayValue: t('Edit.textNone') }, { value: Asc.c_oAscTabLeader.Dot, displayValue: '....................' }, { value: Asc.c_oAscTabLeader.Hyphen, displayValue: '-----------------' }, { value: Asc.c_oAscTabLeader.Underscore,displayValue: '__________' } ]; const activeStyle = arrStyles.find(style => style.value === styleValue); const activeLeader = arrLeaders.find(leader => leader.value === leaderValue); const openActionsButtonsRefresh = () => { f7.actions.create({ buttons: [ [ { text: t('Edit.textRefreshEntireTable'), onClick: () => props.onTableContentsUpdate('all') }, { text: t('Edit.textRefreshPageNumbersOnly'), onClick: () => props.onTableContentsUpdate('pages') } ], [ { text: t('Edit.textCancel'), bold: true } ] ] }).open(); } return ( {t('Edit.textPageNumbers')} { setPageNumbers(!pageNumbers); props.onPageNumbers(!pageNumbers); }}> {pageNumbers && {t('Edit.textRightAlign')} { setRightAlign(!rightAlign); props.onRightAlign(!rightAlign); }}> } {(pageNumbers && rightAlign) && } openActionsButtonsRefresh()} /> props.onRemoveTableContents()} /> ) }; const PageEditStylesTableContents = props => { const { t } = useTranslation(); const _t = t('Edit', {returnObjects: true}); const [styleValue, setStyleValue] = useState(props.styleValue); return ( {Device.phone && } {props.arrStyles.map((style, index) => { return ( { setStyleValue(style.value); props.setStyleValue(style.value); props.onStyle(style.value) }}> ) })} ) } const PageEditLeaderTableContents = props => { const { t } = useTranslation(); const _t = t('Edit', {returnObjects: true}); const [leaderValue, setLeaderValue] = useState(props.leaderValue); return ( {Device.phone && } {props.arrLeaders.map((leader, index) => { return ( { setLeaderValue(leader.value); props.setLeaderValue(leader.value); props.onLeader(leader.value); }}> ) })} ) } const PageEditStructureTableContents = props => { const { t } = useTranslation(); const _t = t('Edit', {returnObjects: true}); const isAndroid = Device.android; const api = Common.EditorApi.get(); const propsTableContents = api.asc_GetTableOfContentsPr(); const {styles, start, end, count, disableOutlines, checkStyles} = props.fillTOCProps(propsTableContents); console.log(styles, start, end, count, disableOutlines, checkStyles); const [structure, setStructure] = useState(count ? 1 : 0); const [amountLevels, setAmountLevels] = useState(end); return ( {Device.phone && } setStructure(0)}> setStructure(1)}> {structure === 0 ? {!isAndroid && {amountLevels}} { if(amountLevels > 1) { setAmountLevels(amountLevels - 1); props.onLevelsChange(amountLevels - 1); } }}> {isAndroid ? : ' - '} {isAndroid && {amountLevels}} { if(amountLevels < 9) { setAmountLevels(amountLevels + 1); props.onLevelsChange(amountLevels + 1); } }}> {isAndroid ? : ' + '} : {styles.map((style, index) => { return ( {!isAndroid && {style.value}} { if(style.value > 1) { props.addStyles(style.name, style.value - 1); } }}> {isAndroid ? : ' - '} {isAndroid && {style.value}} { if(style.value < 9) { props.addStyles(style.name, style.value + 1); } }}> {isAndroid ? : ' + '} ) })} } ) } export { EditTableContents, PageEditStylesTableContents, PageEditLeaderTableContents, PageEditStructureTableContents };