From a959b8a0a161e25e6cfa9bf4764065869f905826 Mon Sep 17 00:00:00 2001 From: Malar Kannan Date: Fri, 28 Jul 2017 12:26:45 +0530 Subject: [PATCH] refactoring files --- src/App.tsx | 46 ---------------------------- src/LexEdit.tsx | 1 + src/LexEditor.tsx | 4 +-- src/LexSetup.tsx | 39 +++++++++++++++++++++-- src/{App.test.tsx => index.test.tsx} | 2 +- src/index.tsx | 27 +++++++++++++++- walle_server.py | 5 +++ 7 files changed, 71 insertions(+), 53 deletions(-) delete mode 100644 src/App.tsx rename src/{App.test.tsx => index.test.tsx} (87%) diff --git a/src/App.tsx b/src/App.tsx deleted file mode 100644 index 46a3fdd..0000000 --- a/src/App.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import * as React from 'react'; -import { bindActionCreators } from 'redux'; -import { Provider, connect } from 'react-redux'; -// import { LexEditor } from './LexComponents'; -import { LexSetup } from './LexSetup'; -import * as actionCreators from './actionCreators'; -import { walleStore } from './WallEStore'; -import { Header, Icon, Segment } from 'semantic-ui-react'; - -function mapStateToProps(state: any) { - return state; -} - -function mapDispachToProps(dispatch: any) { - return bindActionCreators(actionCreators, dispatch); -} - -export class Main extends React.Component { - render() { - return ( -
- -
- - - Freespeech Lexicon Editor - -
-
- -
- ); - } -} - -const ReduxMain = connect(mapStateToProps, mapDispachToProps)(Main); - -const App = (props: any) => { - return ( - - - - ); -}; - -export default App; diff --git a/src/LexEdit.tsx b/src/LexEdit.tsx index c6e0169..95fdc75 100644 --- a/src/LexEdit.tsx +++ b/src/LexEdit.tsx @@ -114,5 +114,6 @@ export class LexEdit extends React.Component { private handleOnSave(event: any) { this.props.save(this.state.lexItem, this.props.fieldMetaMap); + this.props.saveXMLBackend(); } } diff --git a/src/LexEditor.tsx b/src/LexEditor.tsx index 39a2b31..110dc56 100644 --- a/src/LexEditor.tsx +++ b/src/LexEditor.tsx @@ -16,14 +16,14 @@ export class LexEditor extends React.Component { .filter((q: any) => searchMeta.get(q) === searchText) .take(10) .value(); - let { fieldMetaMap: fieldMetaMap, save: save } = this.props; + let { fieldMetaMap, save, saveXMLBackend } = this.props; return (
{ }; export class LexSetup extends React.Component { + xmlBuilder = new XML.Builder(); constructor(props: any) { super(props); this.state = { xmlLoaded: false }; } public componentDidMount() { - fetch(this.props.fileName) + let fileName = '/new_es_orig.xml'; + fetch(fileName) .then((response) => response.text()) .then((xmlString) => { XML.parseString(xmlString, (err, xmlData) => { @@ -260,8 +262,39 @@ export class LexSetup extends React.Component { ); let xmlEntries = xmlToEntries(this.props.xmlData); + let saveXMLBackend = () => { + this.setState({ xmlLoaded: false }); + let xmlText = this.xmlBuilder.buildObject(this.props.xmlData); + fetch('/api/save', { + method: 'POST', + body: xmlText + }) + .then((response) => response.text()) + .then((rsptext) => { + console.log('response', rsptext); + this.setState({ xmlLoaded: true }); + }) + .catch((e) => { + // console.log('errored :', e); + this.setState({ xmlLoaded: true }); + }); + }; let editor = ( - +
+ +
+ + + Freespeech Lexicon Editor + +
+
+ +
); return this.state.xmlLoaded ? editor : dimmer; } diff --git a/src/App.test.tsx b/src/index.test.tsx similarity index 87% rename from src/App.test.tsx rename to src/index.test.tsx index 2b4da0b..d22bd3f 100644 --- a/src/App.test.tsx +++ b/src/index.test.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import * as ReactDOM from 'react-dom'; -import App from './App'; +import App from './index'; it('renders without crashing', () => { const div = document.createElement('div'); diff --git a/src/index.tsx b/src/index.tsx index a1018f4..dd2f150 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,8 +1,33 @@ import * as React from 'react'; import * as ReactDOM from 'react-dom'; -import App from './App'; import registerServiceWorker from './registerServiceWorker'; import './index.css'; +import { bindActionCreators } from 'redux'; +import { Provider, connect } from 'react-redux'; +// import { LexEditor } from './LexComponents'; +import { LexSetup } from './LexSetup'; +import * as actionCreators from './actionCreators'; +import { walleStore } from './WallEStore'; + +function mapStateToProps(state: any) { + return state; +} + +function mapDispachToProps(dispatch: any) { + return bindActionCreators(actionCreators, dispatch); +} + +const ReduxMain = connect(mapStateToProps, mapDispachToProps)(LexSetup); + +const App = (props: any) => { + return ( + + + + ); +}; ReactDOM.render(, document.getElementById('root') as HTMLElement); registerServiceWorker(); + +export default App; diff --git a/walle_server.py b/walle_server.py index 95ea78f..cf8a37c 100644 --- a/walle_server.py +++ b/walle_server.py @@ -23,6 +23,11 @@ def walle_morph(): pos = pos_req if pos_req != '' else 'N'; return json.dumps(get_morph(word,pos)) +@app.route('/api/save',methods=['POST']) +def walle_save(): + print request.form + return 'ok' + # hmr streaming # import requests # from flask import Response,stream_with_context