1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-25 16:19:47 +02:00

Markdown support in card description and comment, fixes for mobile devices, update dependencies

This commit is contained in:
Maksim Eltyshev 2019-10-03 03:02:46 +05:00
parent 530e4c26ee
commit 18f0cc59dd
11 changed files with 374 additions and 14 deletions

View file

@ -0,0 +1,43 @@
import React, { useCallback } from 'react';
import PropTypes from 'prop-types';
import ReactMarkdown from 'react-markdown';
const Markdown = React.memo(({ linkStopPropagation, ...props }) => {
const handleLinkClick = useCallback((event) => {
event.stopPropagation();
}, []);
const linkRenderer = useCallback(
/* eslint-disable jsx-a11y/anchor-has-content,
jsx-a11y/click-events-have-key-events,
jsx-a11y/no-static-element-interactions,
react/jsx-props-no-spreading */
(linkProps) => <a {...linkProps} onClick={handleLinkClick} />,
/* eslint-enable jsx-a11y/anchor-has-content,
jsx-a11y/click-events-have-key-events,
jsx-a11y/no-static-element-interactions,
react/jsx-props-no-spreading */
[handleLinkClick],
);
let renderers;
if (linkStopPropagation) {
renderers = {
link: linkRenderer,
};
}
// eslint-disable-next-line react/jsx-props-no-spreading
return <ReactMarkdown {...props} renderers={renderers} />;
});
Markdown.propTypes = {
linkStopPropagation: PropTypes.bool,
};
Markdown.defaultProps = {
linkStopPropagation: false,
};
export default Markdown;

View file

@ -0,0 +1,3 @@
import Markdown from './Markdown';
export default Markdown;

View file

@ -1,5 +1,8 @@
import Input from './components/Input';
import Popup from './components/Popup';
import Markdown from './components/Markdown';
import DragScroller from './components/DragScroller';
export { Input, Popup, DragScroller };
export {
Input, Popup, Markdown, DragScroller,
};