Skip to content

Commit 51d50ef

Browse files
committed
Long lines in code blocks should not wrap Expensify#7497 is fixed
1 parent 38c327f commit 51d50ef

File tree

3 files changed

+33
-3
lines changed

3 files changed

+33
-3
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import React from 'react';
2+
import {ScrollView} from 'react-native-gesture-handler';
3+
import {View} from 'react-native';
4+
import _ from 'underscore';
5+
import withLocalize from '../../withLocalize';
6+
import htmlRendererPropTypes from './htmlRendererPropTypes';
7+
8+
const PreRenderer = (props) => {
9+
const TDefaultRenderer = props.TDefaultRenderer;
10+
const defaultRendererProps = _.omit(props, ['TDefaultRenderer']);
11+
12+
return (
13+
<ScrollView horizontal>
14+
<View onStartShouldSetResponder={() => true}>
15+
<TDefaultRenderer
16+
// eslint-disable-next-line react/jsx-props-no-spreading
17+
{...defaultRendererProps}
18+
/>
19+
</View>
20+
</ScrollView>
21+
);
22+
};
23+
24+
PreRenderer.propTypes = htmlRendererPropTypes;
25+
PreRenderer.displayName = 'PreRenderer';
26+
27+
export default withLocalize(PreRenderer);

src/components/HTMLEngineProvider/HTMLRenderers/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import AnchorRenderer from './AnchorRenderer';
22
import CodeRenderer from './CodeRenderer';
33
import EditedRenderer from './EditedRenderer';
44
import ImageRenderer from './ImageRenderer';
5+
import PreRenderer from './PreRenderer';
56

67
/**
78
* This collection defines our custom renderers. It is a mapping from HTML tag type to the corresponding component.
@@ -14,4 +15,5 @@ export default {
1415

1516
// Custom tag renderers
1617
edited: EditedRenderer,
18+
pre: PreRenderer,
1719
};

src/components/PressableWithSecondaryInteraction/index.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import _ from 'underscore';
22
import React, {Component} from 'react';
3-
import {Pressable} from 'react-native';
3+
import {Platform, Pressable} from 'react-native';
44
import {LongPressGestureHandler, State} from 'react-native-gesture-handler';
55
import SelectionScraper from '../../libs/SelectionScraper';
66
import * as pressableWithSecondaryInteractionPropTypes from './pressableWithSecondaryInteractionPropTypes';
@@ -31,7 +31,8 @@ class PressableWithSecondaryInteraction extends Component {
3131
* @param {Object} e
3232
*/
3333
callSecondaryInteractionWithMappedEvent(e) {
34-
if (e.nativeEvent.state !== State.ACTIVE) {
34+
const isHoverableDevice = ((Platform.OS === 'web') || (Platform.OS === 'windows') || (Platform.OS === 'macos'));
35+
if ((e.nativeEvent.state !== State.ACTIVE) || isHoverableDevice) {
3536
return;
3637
}
3738

@@ -73,7 +74,7 @@ class PressableWithSecondaryInteraction extends Component {
7374
onPressOut={this.props.onPressOut}
7475
onPress={this.props.onPress}
7576
ref={el => this.pressableRef = el}
76-
// eslint-disable-next-line react/jsx-props-no-spreading
77+
// eslint-disable-next-line react/jsx-props-no-spreading
7778
{...defaultPressableProps}
7879
>
7980
{this.props.children}

0 commit comments

Comments
 (0)