1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-18 09:35:20 +02:00
joplin/ReactNativeClient/MarkdownEditor/renderButtons.js

33 lines
926 B
JavaScript
Raw Normal View History

Mobile: Add toolbar, list continuation and Markdown preview to editor (#2224) * The basic editor is working! No list continuation still though * List continuation is working! Now to delete when entering again and not typing on line + handle ordered lists * Supports checkboxes + attempted at setting font * Editor font works now; now need to fix the delete (look at past state) * Fix deletion problem * Add ordered list handler * Add comments * Extract insertListLine * End lists on enter for empty bullets * Add MarkdownView (renders badly though) * Save edited text from MarkdownEditor * Cleanup * Refactor react-native-markdown-editor/ * Rename react-native-markdown-editor/ => MarkdownEditor/ * Cleanup * Fix preview styles; still need to fix checkbox problem * Fix keyboard padding * Change name back to #body_changeText * Incorporate PR feedback from @laurent22 * wip: Move MarkdownEditor/ from ReactNativeClient/lib/ to ReactNativeClient/ * Move MarkdownEditor/ from ReactNativeClient/lib/ to ReactNativeClient/ * Remove log statement * Focus TextInput in MarkdownEditor from grandparent * Make eslint happy * Extract textInputRefName to shared variable * Remove accidental #setState * Cleanup * Cleanup * Run linter * Cleanup * Update button order * Improve styles for config descriptions * Allow descriptions to be added to BOOL type Setting configs * Add editorBeta Setting * Move FailSafe details to description text * Update descriptionText styles * Put the editor under the beta flag toggle * Incorporate PR feedback from @laurent22 * Refactor Markdown editor focusing * Cleanup * Reorder MarkdownEditor formats * Make applyListFormat behavior more intuitive * Add comment * Show MarkdownEditor with preview by default * Show preview by default, then hide on typing * Fix MarkdownEditor selection bug * Cleanup * Update Markdown button styles * Make Markdown button colors theme-conscious * Fix merge conflict resolution mistake * Fix broken import * Delete package-lock.json * Reset package-lock.json Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-03-25 12:50:45 +02:00
import React from 'react';
import { FlatList, TouchableOpacity, Text } from 'react-native';
import Formats from './Formats';
const defaultStyles = { padding: 8, fontSize: 16 };
const defaultMarkdownButton = ({ item, getState, setState, color }) => {
return (
<TouchableOpacity onPress={() => item.onPress({ getState, setState, item })}>
<Text style={[defaultStyles, item.style, { color: color }]}>
{item.title}
</Text>
</TouchableOpacity>
);
};
export const renderFormatButtons = ({ getState, setState, color }, formats, markdownButton) => {
const list = (
<FlatList
data={formats ? formats : Formats}
keyboardShouldPersistTaps="always"
// eslint-disable-next-line no-unused-vars
renderItem={({ item, index }) =>
markdownButton
? markdownButton({ item, getState, setState })
: defaultMarkdownButton({ item, getState, setState, color })}
horizontal
/>
);
return list;
};