You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-08-13 22:12:50 +02:00
Render markdown
This commit is contained in:
@@ -1,11 +1,12 @@
|
|||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import { View, Button, TextInput } from 'react-native';
|
import { View, Button, TextInput, WebView } from 'react-native';
|
||||||
import { connect } from 'react-redux'
|
import { connect } from 'react-redux'
|
||||||
import { Log } from 'lib/log.js'
|
import { Log } from 'lib/log.js'
|
||||||
import { Note } from 'lib/models/note.js'
|
import { Note } from 'lib/models/note.js'
|
||||||
import { ScreenHeader } from 'lib/components/screen-header.js';
|
import { ScreenHeader } from 'lib/components/screen-header.js';
|
||||||
import { Checkbox } from 'lib/components/checkbox.js'
|
import { Checkbox } from 'lib/components/checkbox.js'
|
||||||
import { _ } from 'lib/locale.js';
|
import { _ } from 'lib/locale.js';
|
||||||
|
import marked from 'lib/marked.js';
|
||||||
|
|
||||||
class NoteScreenComponent extends React.Component {
|
class NoteScreenComponent extends React.Component {
|
||||||
|
|
||||||
@@ -15,7 +16,10 @@ class NoteScreenComponent extends React.Component {
|
|||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
this.state = { note: Note.new() }
|
this.state = {
|
||||||
|
note: Note.new(),
|
||||||
|
mode: 'view',
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillMount() {
|
componentWillMount() {
|
||||||
@@ -79,13 +83,29 @@ class NoteScreenComponent extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let bodyComponent = null;
|
||||||
|
if (this.state.mode == 'view') {
|
||||||
|
const source = {
|
||||||
|
html: note ? marked(note.body, { gfm: true, breaks: true }) : '',
|
||||||
|
};
|
||||||
|
|
||||||
|
bodyComponent = (
|
||||||
|
<View style={{flex:1}}>
|
||||||
|
<WebView source={source}/>
|
||||||
|
<Button title="Edit note" onPress={() => { this.setState({ mode: 'edit' }); }}/>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
bodyComponent = <TextInput style={{flex: 1, textAlignVertical: 'top', fontFamily: 'monospace'}} multiline={true} value={note.body} onChangeText={(text) => this.body_changeText(text)} />
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View style={{flex: 1}}>
|
<View style={{flex: 1}}>
|
||||||
<ScreenHeader navState={this.props.navigation.state} menuOptions={this.menuOptions()} />
|
<ScreenHeader navState={this.props.navigation.state} menuOptions={this.menuOptions()} />
|
||||||
<View style={{ flexDirection: 'row' }}>
|
<View style={{ flexDirection: 'row' }}>
|
||||||
{ isTodo && <Checkbox checked={!!Number(note.todo_completed)} /> }<TextInput style={{flex:1}} value={note.title} onChangeText={(text) => this.title_changeText(text)} />
|
{ isTodo && <Checkbox checked={!!Number(note.todo_completed)} /> }<TextInput style={{flex:1}} value={note.title} onChangeText={(text) => this.title_changeText(text)} />
|
||||||
</View>
|
</View>
|
||||||
<TextInput style={{flex: 1, textAlignVertical: 'top', fontFamily: 'monospace'}} multiline={true} value={note.body} onChangeText={(text) => this.body_changeText(text)} />
|
{ bodyComponent }
|
||||||
{ todoComponents }
|
{ todoComponents }
|
||||||
<Button title="Save note" onPress={() => this.saveNoteButton_press()} />
|
<Button title="Save note" onPress={() => this.saveNoteButton_press()} />
|
||||||
</View>
|
</View>
|
||||||
|
1286
ReactNativeClient/lib/marked.js
Normal file
1286
ReactNativeClient/lib/marked.js
Normal file
File diff suppressed because it is too large
Load Diff
@@ -11,6 +11,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"form-data": "^2.1.4",
|
"form-data": "^2.1.4",
|
||||||
"moment": "^2.18.1",
|
"moment": "^2.18.1",
|
||||||
|
"query-string": "4.3.4",
|
||||||
"react": "16.0.0-alpha.12",
|
"react": "16.0.0-alpha.12",
|
||||||
"react-native": "0.46.0",
|
"react-native": "0.46.0",
|
||||||
"react-native-action-button": "^2.6.9",
|
"react-native-action-button": "^2.6.9",
|
||||||
@@ -18,13 +19,12 @@
|
|||||||
"react-native-fs": "^2.3.3",
|
"react-native-fs": "^2.3.3",
|
||||||
"react-native-popup-menu": "^0.7.4",
|
"react-native-popup-menu": "^0.7.4",
|
||||||
"react-native-side-menu": "^0.20.1",
|
"react-native-side-menu": "^0.20.1",
|
||||||
|
"react-native-sqlite-storage": "3.3.*",
|
||||||
"react-native-vector-icons": "^2.0.3",
|
"react-native-vector-icons": "^2.0.3",
|
||||||
"react-navigation": "^1.0.0-beta.9",
|
"react-navigation": "^1.0.0-beta.9",
|
||||||
"uuid": "^3.0.1",
|
|
||||||
"redux": "3.6.0",
|
|
||||||
"react-redux": "4.4.8",
|
"react-redux": "4.4.8",
|
||||||
"query-string": "4.3.4",
|
"redux": "3.6.0",
|
||||||
"react-native-sqlite-storage": "3.3.*"
|
"uuid": "^3.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-jest": "19.0.0",
|
"babel-jest": "19.0.0",
|
||||||
|
Reference in New Issue
Block a user