import React, { useEffect, FunctionComponent, useContext, MutableRefObject, useRef, useState, memo } from 'react'; import { View, ViewStyle, KeyboardAvoidingView, TouchableWithoutFeedback, Text, Keyboard } from 'react-native'; import styles from './PixelRichTextEditorStyles'; import usePixelRichTextEditorTranslation from './PixelRichTextEditorTranslation' import { PixelStyles } from 'react-native-pixel-styles'; import CNEditor, { CNToolbar, getDefaultStyles, getInitialObject } from "react-native-cn-richtext-editor"; import { PixelwolfText } from 'react-native-pixel-components'; interface IProps { // Props type definition style?: ViewStyle | ViewStyle[] } interface IState { // State type definition value: any selectedTag: string, selectedStyles: string[] } export const PixelRichTextEditor: FunctionComponent = memo((props) => { const { I18n } = usePixelRichTextEditorTranslation() const themeStore = useContext(PixelStyles.pixelThemeStoreContext) const defaultStyles = getDefaultStyles(); let customStyles = { ...defaultStyles, body: { fontSize: 12 }, heading: { fontSize: 16 }, title: { fontSize: 20 }, div: { fontSize: 50 } }; const editor: MutableRefObject = useRef(null) const initialState: IState = { value: [getInitialObject()], selectedStyles: [], selectedTag: 'body' }; const [value, setValue] = useState(initialState.value) const [selectedStyles, setSelectedStyles] = useState(initialState.selectedStyles) const [selectedTag, setSelectedTag] = useState(initialState.selectedTag) // ComponentDidMount useEffect(() => { return () => { //ComponentDidUnmount } }, []) const onStyleKeyPress = (toolType) => { editor.current.applyToolbar(toolType); } const onSelectedTagChanged = (tag) => { setSelectedTag(tag) } const onSelectedStyleChanged = (styles) => { setSelectedStyles(styles) } const onValueChanged = (value) => { setValue(value) console.log(value) } return ( Imagem }] }, { type: 'tool', iconArray: [{ toolTypeText: 'bold', iconComponent: Bold }] }, { type: 'tool', iconArray: [ { toolTypeText: 'body', iconComponent: Body }, ] }, { type: 'tool', iconArray: [ { toolTypeText: 'ul', iconComponent: Lista } ] }, { type: 'tool', iconArray: [ { toolTypeText: 'ol', iconComponent: Lista Numerada } ] }, ]} selectedTag={selectedTag} selectedStyles={selectedStyles} onStyleKeyPress={onStyleKeyPress} /> ); })