From 55c13270a2611026559c291deb424ce624a4d65c Mon Sep 17 00:00:00 2001 From: Stepan Usatiuk Date: Fri, 30 Aug 2019 22:22:45 +0200 Subject: [PATCH] move local document state to redux --- frontend/src/Documents/DocumentEdit.tsx | 65 ++++++------------- .../src/Documents/tests/DocumentEdit.test.tsx | 57 +++++++++------- frontend/src/Home/Home.tsx | 4 +- frontend/src/Home/tests/Home.test.tsx | 1 + frontend/src/redux/docs/actions.ts | 22 ++++++- frontend/src/redux/docs/reducer.ts | 32 ++++++++- 6 files changed, 109 insertions(+), 72 deletions(-) diff --git a/frontend/src/Documents/DocumentEdit.tsx b/frontend/src/Documents/DocumentEdit.tsx index 38c0e62..a904699 100644 --- a/frontend/src/Documents/DocumentEdit.tsx +++ b/frontend/src/Documents/DocumentEdit.tsx @@ -12,12 +12,14 @@ import { deleteDocCancel, deleteDocStart, fetchDocsStart, + updateDoc, uploadDocStart, } from "~redux/docs/actions"; +import { IDocumentEntry } from "~redux/docs/reducer"; import { IAppState } from "~redux/reducers"; export interface IDocumentEditComponentProps extends RouteComponentProps { - allDocs: { [key: number]: IDocumentJSON }; + allDocs: { [key: number]: IDocumentEntry }; fetching: boolean; spinner: boolean; @@ -26,32 +28,17 @@ export interface IDocumentEditComponentProps extends RouteComponentProps { deleteDoc: (id: number) => void; cancelDelete: () => void; uploadDoc: (id: number, name: string, content: string) => void; + updateDoc: (id: number, name: string, content: string) => void; } export interface IDocumentEditComponentState { loaded: boolean; - id: number | null; - name: string | null; - content: string | null; - - savedName: string | null; - savedContent: string | null; - - dirty: boolean; } const defaultDocumentEditComponentState: IDocumentEditComponentState = { loaded: false, - id: null, - name: null, - content: null, - - savedName: null, - savedContent: null, - - dirty: false, }; export class DocumentEditComponent extends React.PureComponent< @@ -71,6 +58,8 @@ export class DocumentEditComponent extends React.PureComponent< public render() { if (this.state.loaded) { + const doc = this.props.allDocs[this.state.id]; + return (
@@ -78,7 +67,7 @@ export class DocumentEditComponent extends React.PureComponent< className={Classes.INPUT} onChange={this.handleInputChange} name="name" - value={this.state.name} + value={doc.name} onKeyPress={this.handleNameKeyPress} />
@@ -99,7 +88,7 @@ export class DocumentEditComponent extends React.PureComponent<