Spaces:
Paused
Paused
| import React, { useEffect, useState } from "react"; | |
| import Tabs, { TabPane } from "rc-tabs"; | |
| import { Monaco } from "./Monaco"; | |
| import { EditorValueInterface } from "../../_types/editorTypes"; | |
| const InputCode = ({ editorValue: parentEditorValue }: { editorValue: EditorValueInterface }) => { | |
| const [editorValue, setEditorValue] = useState(parentEditorValue); | |
| // Update local state when parent state updates | |
| useEffect(() => { | |
| setEditorValue(parentEditorValue); | |
| }, [parentEditorValue]); | |
| const dataToMap = Object.entries(editorValue.tabs); | |
| const tabPane = dataToMap.map((item, key) => ( | |
| <TabPane tab={<div>{item[1].title}</div>} key={key}> | |
| <Monaco tab={item[0]} monacoLanguage={item[1].monacoLanguage} /> | |
| </TabPane> | |
| )); | |
| return ( | |
| <Tabs | |
| className="editor-input-tabs" | |
| tabPosition="top" | |
| tabBarGutter={16} | |
| defaultActiveKey="javascript" | |
| > | |
| {tabPane} | |
| </Tabs> | |
| ); | |
| }; | |
| const InputCodeTab = React.memo(InputCode); | |
| export default InputCodeTab; | |