Skip to content

Commit 5f4e67a

Browse files
committed
Help appeared in md
1 parent a169d84 commit 5f4e67a

8 files changed

Lines changed: 1609 additions & 21 deletions

File tree

package-lock.json

Lines changed: 1534 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"react-dom": "^17.0.2",
2929
"react-icons": "^4.2.0",
3030
"react-keyed-file-browser": "^1.14.0",
31+
"react-markdown": "^8.0.7",
3132
"react-modal": "^3.13.1",
3233
"react-scripts": "4.0.3",
3334
"react-simple-code-editor": "^0.13.0",

src/App.jsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import FileDragDrop from './component/File-drag-drop';
1414
import HistoryModal from './component/modals/History';
1515
import LocalFileBrowser from './component/fileBrowser';
1616
import FileEditModal from './component/modals/FileEdit';
17+
import MarkDown from './component/modals/markDown';
1718

1819
const app = () => {
1920
const [superState, dispatcher] = useReducer(reducer, initialState);
@@ -39,6 +40,7 @@ const app = () => {
3940
superState={superState}
4041
dispatcher={dispatcher}
4142
/>
43+
<MarkDown superState={superState} dispatcher={dispatcher} />
4244
<FileDragDrop dispatcher={dispatcher} />
4345
<Header superState={superState} dispatcher={dispatcher} />
4446
<section className="body" style={{ display: 'flex', overflow: 'hidden' }}>

src/component/modals/GraphCompDetails.jsx

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ import React, { useState, useEffect } from 'react';
33
import './graph-comp-details.css';
44
import ParentModal from './ParentModal';
55
import { readTextFile, createFile } from '../../toolbarActions/toolbarFunctions';
6+
import { actionType as T } from '../../reducer';
67

78
const ModalComp = ({ closeModal, superState, dispatcher }) => {
89
const [data, setData] = useState({});
910
const [errorMessage, setErrorMessage] = useState('');
1011
const [element, setElement] = useState(null);
1112
const [editSourceClicked, setEditSourceClicked] = useState(false);
1213
const [createSourceClicked, setCreateSourceClicked] = useState(false);
13-
const [helpClicked, setHelpClicked] = useState(false);
1414
const [createHelpClicked, setCreateHelpClicked] = useState(false);
1515
const { modalPayload, ModelOpen } = superState;
1616
const {
@@ -47,20 +47,14 @@ const ModalComp = ({ closeModal, superState, dispatcher }) => {
4747
}
4848
setEditSourceClicked(false);
4949
setCreateSourceClicked(false);
50-
}, [createSourceClicked, editSourceClicked, element]);
50+
}, [createSourceClicked, editSourceClicked]);
5151

5252
useEffect(() => {
5353
if (createHelpClicked) {
5454
createFile(superState, dispatcher);
5555
}
56-
if (helpClicked && element === null) {
57-
toast.error('Respective doc is not present in same directory');
58-
} else if (element !== null) {
59-
readTextFile(superState, dispatcher, element.fileObj, element.fileHandle);
60-
}
61-
setHelpClicked(false);
6256
setCreateHelpClicked(false);
63-
}, [createHelpClicked, helpClicked, element]);
57+
}, [createHelpClicked]);
6458

6559
const openFile = () => {
6660
setElement(null);
@@ -90,10 +84,27 @@ const ModalComp = ({ closeModal, superState, dispatcher }) => {
9084
}
9185
});
9286
}
93-
if (submitText === 'Edit Node') {
94-
setHelpClicked(true);
95-
} else if (submitText === 'Create Node') {
96-
setCreateHelpClicked(true);
87+
setCreateHelpClicked(true);
88+
};
89+
90+
const openMarkDownDoc = async () => {
91+
dispatcher({ type: T.SET_MARKDOWN_MODAL, payload: true });
92+
setElement(null);
93+
if (superState.fileState !== undefined && data.label !== '') {
94+
const docname1 = data.label.split(':')[1].split('.')[0].concat('.md');
95+
const matchingElement = superState.fileState.find((ele) => ele.key.split('/')[1] === docname1);
96+
if (matchingElement) {
97+
const fr = new FileReader();
98+
fr.onload = (x) => {
99+
dispatcher({ type: T.SET_INPUT_FILE, payload: x.target.result });
100+
};
101+
if (matchingElement.fileHandle) {
102+
fr.readAsText(await matchingElement.fileHandle.getFile());
103+
} else if (matchingElement.fileObj) {
104+
fr.readAsText(matchingElement.fileObj);
105+
}
106+
setElement(matchingElement);
107+
}
97108
}
98109
};
99110

@@ -115,13 +126,24 @@ const ModalComp = ({ closeModal, superState, dispatcher }) => {
115126
>
116127
{ submitText === 'Edit Node' ? 'Edit Source' : 'Create Source' }
117128
</button>
118-
<button
119-
className="btn btn-primary"
120-
type="button"
121-
onClick={openDoc}
122-
>
123-
{ submitText === 'Edit Node' ? 'Help' : 'Create Help' }
124-
</button>
129+
{ title === 'Edit Node'
130+
? (
131+
<button
132+
className="btn btn-primary"
133+
type="button"
134+
onClick={openMarkDownDoc}
135+
>
136+
Help
137+
</button>
138+
) : (
139+
<button
140+
className="btn btn-primary"
141+
type="button"
142+
onClick={openDoc}
143+
>
144+
Create Help
145+
</button>
146+
)}
125147
</>
126148
) : '' }
127149
</div>

src/component/modals/markDown.jsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import React from 'react';
2+
import ReactMarkdown from 'react-markdown';
3+
import ParentModal from './ParentModal';
4+
import { actionType as T } from '../../reducer';
5+
6+
const MarkDown = ({ superState, dispatcher }) => {
7+
const title = 'Demo';
8+
const close = () => {
9+
dispatcher({ type: T.SET_MARKDOWN_MODAL, payload: false });
10+
};
11+
return (
12+
<ParentModal closeModal={close} ModelOpen={superState.markDownModal} title={title}>
13+
<ReactMarkdown>{superState.inputFile}</ReactMarkdown>
14+
</ParentModal>
15+
);
16+
};
17+
18+
export default MarkDown;

src/reducer/actionType.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const actionType = {
2323
NEW_GRAPH: 'NEW_GRAPH',
2424
SET_SHARE_MODAL: 'SET_SHARE_MODAL',
2525
SET_SETTING_MODAL: 'SET_SETTING_MODAL',
26+
SET_MARKDOWN_MODAL: 'SET_MARKDOWN_MODAL',
2627
SET_FILE_REF: 'SET_FILE_REF',
2728
SET_HISTORY_MODAL: 'SET_HISTORY_MODAL',
2829
SET_AUTHOR: 'SET_AUTHOR',
@@ -35,6 +36,7 @@ const actionType = {
3536
SET_FILE_HANDLE: 'SET_FILE_HANDLE',
3637
SET_DIR_NAME: 'SET_DIR_NAME',
3738
SET_FILE_STATE: 'SET_FILE_STATE',
39+
SET_INPUT_FILE: 'SET_INPUT_FILE',
3840
};
3941

4042
export default zealit(actionType);

src/reducer/initialState.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const initialState = {
1313
settingsModal: false,
1414
editDetailsModal: false,
1515
newGraphModal: false,
16-
16+
markDownModal: false,
1717
eleSelected: false,
1818
drawModeOn: true,
1919
undoEnabled: false,
@@ -27,6 +27,7 @@ const initialState = {
2727
uploadedDirName: null,
2828
resetEnabled: false,
2929
fileState: [],
30+
inputFile: '',
3031
};
3132

3233
const initialGraphState = {

src/reducer/reducer.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,14 @@ const reducer = (state, action) => {
142142
return { ...state, settingsModal: action.payload };
143143
}
144144

145+
case T.SET_MARKDOWN_MODAL: {
146+
return { ...state, markDownModal: action.payload };
147+
}
148+
149+
case T.SET_INPUT_FILE: {
150+
return { ...state, inputFile: action.payload };
151+
}
152+
145153
case T.SET_FILE_REF: {
146154
return { ...state, fileRef: action.payload };
147155
}

0 commit comments

Comments
 (0)