Merge branch 'release/next-js' of https://github.com/urbit/urbit into npm-packages

This commit is contained in:
Tyler Brown Cifu Shuster 2021-02-16 15:12:43 -08:00
commit a53c1e519b
2 changed files with 43 additions and 25 deletions

View File

@ -23,7 +23,7 @@ export default class CodeContent extends Component {
style={{ whiteSpace: 'pre' }} style={{ whiteSpace: 'pre' }}
backgroundColor='washedGray' backgroundColor='washedGray'
> >
{content.code.output[0].join('\n')} {content.code.output.join('\n')}
</Text> </Text>
) : null; ) : null;

View File

@ -2,7 +2,6 @@ import React, { Component, useState, useEffect } from 'react';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import ReactMarkdown from 'react-markdown'; import ReactMarkdown from 'react-markdown';
import RemarkDisableTokenizers from 'remark-disable-tokenizers'; import RemarkDisableTokenizers from 'remark-disable-tokenizers';
import RemarkBreaks from 'remark-breaks';
import urbitOb from 'urbit-ob'; import urbitOb from 'urbit-ob';
import { Text } from '@tlon/indigo-react'; import { Text } from '@tlon/indigo-react';
import { GroupLink } from "~/views/components/GroupLink"; import { GroupLink } from "~/views/components/GroupLink";
@ -49,14 +48,27 @@ const renderers = {
} }
}; };
const MessageMarkdown = React.memo(props => ( const MessageMarkdown = React.memo(props => {
const { source, ...rest } = props;
const blockCode = source.split('```');
const codeLines = blockCode.map(codes => codes.split("\n"));
const lines = codeLines.reduce((acc, val, i) => {
if((i % 2) === 1) {
return [...acc, `\`\`\`${val.join('\n')}\`\`\``];
} else {
return [...acc, ...val];
}
}, []);
return lines.map((line, i) => (
<>
{ i !== 0 && <br />}
<ReactMarkdown <ReactMarkdown
{...props} {...rest}
source={line}
unwrapDisallowed={true} unwrapDisallowed={true}
renderers={renderers} renderers={renderers}
// shim until we uncover why RemarkBreaks and
// RemarkDisableTokenizers can't be loaded simultaneously
disallowedTypes={['heading', 'list', 'listItem', 'link']}
allowNode={(node, index, parent) => { allowNode={(node, index, parent) => {
if ( if (
node.type === 'blockquote' node.type === 'blockquote'
@ -71,8 +83,14 @@ const MessageMarkdown = React.memo(props => (
return true; return true;
}} }}
plugins={[RemarkBreaks]} /> plugins={[[RemarkDisableTokenizers, {
)); block: DISABLED_BLOCK_TOKENS,
inline: DISABLED_INLINE_TOKENS
}]]}
/>
</>
))
});
export default function TextContent(props) { export default function TextContent(props) {
const content = props.content; const content = props.content;