44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import React from 'react';
|
|
import { ScrollView } from 'react-native';
|
|
import { StackNavigationOptions } from '@react-navigation/stack';
|
|
import { RouteProp } from '@react-navigation/native';
|
|
|
|
import I18n from '../i18n';
|
|
import { isIOS } from '../utils/deviceInfo';
|
|
import { themes } from '../lib/constants';
|
|
import { TSupportedThemes, withTheme } from '../theme';
|
|
import { ChatsStackParamList } from '../stacks/types';
|
|
|
|
interface IMarkdownTableViewProps {
|
|
route: RouteProp<ChatsStackParamList, 'MarkdownTableView'>;
|
|
theme: TSupportedThemes;
|
|
}
|
|
|
|
class MarkdownTableView extends React.Component<IMarkdownTableViewProps> {
|
|
static navigationOptions = (): StackNavigationOptions => ({
|
|
title: I18n.t('Table')
|
|
});
|
|
|
|
render() {
|
|
const { route, theme } = this.props;
|
|
const renderRows = route.params?.renderRows;
|
|
const tableWidth = route.params?.tableWidth;
|
|
|
|
if (isIOS) {
|
|
return (
|
|
<ScrollView style={{ backgroundColor: themes[theme].backgroundColor }} contentContainerStyle={{ width: tableWidth }}>
|
|
{renderRows()}
|
|
</ScrollView>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<ScrollView style={{ backgroundColor: themes[theme].backgroundColor }}>
|
|
<ScrollView horizontal>{renderRows()}</ScrollView>
|
|
</ScrollView>
|
|
);
|
|
}
|
|
}
|
|
|
|
export default withTheme(MarkdownTableView);
|