From 363f1fe39d535589a50e0f1bf5a9282a48fd6280 Mon Sep 17 00:00:00 2001 From: Asad Date: Mon, 10 Mar 2025 14:48:15 -0400 Subject: [PATCH] fixed cell width issue --- example/src/SheetJSExample.tsx | 27 ++++++++--- react-native-tabeller-0.1.0.tgz | Bin 24644 -> 23808 bytes src/components/cell.tsx | 29 ++++++----- src/components/cols.tsx | 16 ++---- src/components/rows.tsx | 83 ++++++++++++++------------------ src/components/table.tsx | 59 ++++++----------------- src/types.ts | 5 +- 7 files changed, 98 insertions(+), 121 deletions(-) diff --git a/example/src/SheetJSExample.tsx b/example/src/SheetJSExample.tsx index 8a20db0..6ee0259 100644 --- a/example/src/SheetJSExample.tsx +++ b/example/src/SheetJSExample.tsx @@ -1,6 +1,6 @@ /* sheetjs (C) SheetJS -- https://sheetjs.com */ import { useState, useCallback } from 'react'; -import { StyleSheet, Text, Button, Alert, ScrollView, Image } from 'react-native'; +import { StyleSheet, Text, Button, Alert, ScrollView } from 'react-native'; import { Table, Row, Rows, TableWrapper } from 'react-native-tabeller'; import { read, utils, WorkSheet } from 'xlsx'; @@ -25,6 +25,7 @@ function SheetJSExample(): JSX.Element { const [widths, setWidths] = useState( Array.from({ length: 7 }, () => 20) ); + const importFile = useCallback(async () => { try { const ab = await ( @@ -60,7 +61,7 @@ function SheetJSExample(): JSX.Element { data={data[0]} style={styles.thead} textStyle={styles.text} - widthArr={widths.map((x) => x * 1.2)} + widthArr={widths} /> @@ -69,7 +70,7 @@ function SheetJSExample(): JSX.Element { data={data.slice(1)} style={styles.tr} textStyle={styles.text} - widthArr={widths.map((x) => x * 1.2)} + widthArr={widths} /> @@ -80,7 +81,12 @@ function SheetJSExample(): JSX.Element { } const styles = StyleSheet.create({ - container: { backgroundColor: '#F5FCFF' }, + container: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: '#F5FCFF', + }, welcome: { fontSize: 20, textAlign: 'center', margin: 10 }, bolded: { textAlign: 'center', @@ -88,8 +94,17 @@ const styles = StyleSheet.create({ marginBottom: 5, fontWeight: 'bold', }, - thead: { height: 40, backgroundColor: '#f1f8ff' }, - tr: { height: 30 }, + thead: { + height: 40, + backgroundColor: '#f1f8ff', + borderWidth: 0.5, + justifyContent: 'center', + }, + tr: { + height: 30, + borderWidth: 0.5, + justifyContent: 'center', + }, text: { marginLeft: 5 }, table: { width: '100%' }, image: { height: 16, width: 16 }, diff --git a/react-native-tabeller-0.1.0.tgz b/react-native-tabeller-0.1.0.tgz index 7540ee15fedcbe42f64dcd8fd3b54e03ed2deded..01683e0f50ceb6bdef9492cb460f576a6c3c7012 100644 GIT binary patch literal 23808 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 BR+j(( literal 24644 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 diff --git a/src/components/cell.tsx b/src/components/cell.tsx index a9b995a..1e130d2 100644 --- a/src/components/cell.tsx +++ b/src/components/cell.tsx @@ -1,8 +1,7 @@ import { useMemo } from 'react'; import type { FC, PropsWithChildren } from 'react'; -import { View, Text, StyleSheet, TouchableWithoutFeedback } from 'react-native'; +import { View, Text, StyleSheet, Pressable } from 'react-native'; import type { ViewStyle } from 'react-native'; - import type { CellProps } from '../types'; /** @@ -18,7 +17,7 @@ export const Cell: FC> = ({ borderStyle, children, onPress, - cellContainerProps = {}, + cellContainer = {}, ...props }) => { const textDom = children ?? ( @@ -34,16 +33,27 @@ export const Cell: FC> = ({ const composedStyles = useMemo(() => { const styles: ViewStyle = {}; if (width) styles.width = width; + if (height) styles.height = height; + if (flex) styles.flex = flex; + if (!width && !flex && !height && !style) styles.flex = 1; return styles; }, [width, height, flex, style]); + // determine whether to apply flex: 1 to cell style + const cellStyle = useMemo(() => { + if (width) { + return {}; + } + return styles.cell; + }, [width]); + return ( > = ({ }, composedStyles, style, - cellContainerProps.style, - styles.cell, + cellContainer.style, + cellStyle, ])} > - onPress(data) : undefined} - disabled={!onPress} - > + onPress?.(data)}> {textDom} - + ); }; diff --git a/src/components/cols.tsx b/src/components/cols.tsx index 4a6e40d..15a7e11 100644 --- a/src/components/cols.tsx +++ b/src/components/cols.tsx @@ -11,12 +11,9 @@ export const Col: FC = ({ heightArr, flex, textStyle, - borderStyle, ...props }) => { - if (!data) return null; - - return ( + return data ? ( = ({ width={width} height={height} textStyle={textStyle} - borderStyle={borderStyle} {...props} /> ); })} - ); + ) : null; }; export const Cols: FC = ({ @@ -48,14 +44,11 @@ export const Cols: FC = ({ heightArr, flexArr, textStyle, - borderStyle, ...props }) => { - if (!data) return null; - const width = widthArr ? sum(widthArr) : 0; - return ( + return data ? ( {data.map((item, i) => { const flex = flexArr?.[i]; @@ -69,13 +62,12 @@ export const Cols: FC = ({ flex={flex} style={style} textStyle={textStyle} - borderStyle={borderStyle} {...props} /> ); })} - ); + ) : null; }; const styles = StyleSheet.create({ diff --git a/src/components/rows.tsx b/src/components/rows.tsx index 700298f..fe96863 100644 --- a/src/components/rows.tsx +++ b/src/components/rows.tsx @@ -15,43 +15,40 @@ export const Row: FC = ({ height, flexArr, textStyle, - borderStyle, onPress, cellTextStyle, ...props }) => { - // calc total width based on width array - const totalWidth = widthArr ? sum(widthArr) : 0; - - // calc row styles based on props - const rowStyle = useMemo((): ViewStyle => { + const width = widthArr ? sum(widthArr) : 0; + const composedStyle = useMemo(() => { const styles: ViewStyle = {}; - if (totalWidth) styles.width = totalWidth; - if (height) styles.height = height; - return styles; - }, [totalWidth, height]); + if (width) styles.width = width; - if (!data || !data.length) return null; + if (height) styles.height = height; + + return styles; + }, [width, height]); + + if (!data) return null; return ( - - {data.map((item, index) => { - const cellFlex = flexArr?.[index]; - const cellWidth = widthArr?.[index]; - const customTextStyle = cellTextStyle - ? cellTextStyle(item, index) - : undefined; - + + {data.map((item, i) => { + const flex = flexArr?.[i]; + const wth = widthArr?.[i]; return ( ); @@ -60,7 +57,6 @@ export const Row: FC = ({ ); }; -/** Rows component - Renders multiple rows*/ export const Rows: FC = ({ data, style, @@ -68,44 +64,39 @@ export const Rows: FC = ({ heightArr, flexArr, textStyle, - borderStyle, ...props }) => { - // calc total flex and width - const totalFlex = flexArr ? sum(flexArr) : 0; - const totalWidth = widthArr ? sum(widthArr) : 0; + const flex = flexArr ? sum(flexArr) : 0; + const width = widthArr ? sum(widthArr) : 0; - // calc container styles - const containerStyle = useMemo((): ViewStyle => { + const composedStyle = useMemo(() => { const styles: ViewStyle = {}; - if (totalFlex) styles.flex = totalFlex; - if (totalWidth) styles.width = totalWidth; + if (flex) styles.flex = flex; + + if (width) styles.width = width; + return styles; - }, [totalFlex, totalWidth]); - - if (!data || !data.length) return null; - - return ( - - {data.map((rowData, index) => { - const rowHeight = heightArr?.[index]; + }, [flex, width]); + return data ? ( + + {data.map((item, i) => { + const height = heightArr?.[i]; return ( ); })} - ); + ) : null; }; const styles = StyleSheet.create({ diff --git a/src/components/table.tsx b/src/components/table.tsx index db6f657..4fa9582 100644 --- a/src/components/table.tsx +++ b/src/components/table.tsx @@ -1,6 +1,6 @@ import type { FC } from 'react'; import React from 'react'; -import { View, StyleSheet } from 'react-native'; +import { View } from 'react-native'; import type { TableProps, TableWrapperProps } from '../types'; @@ -10,35 +10,25 @@ export const Table: FC = ({ style, borderStyle, children }) => { const borderColor = borderStyle?.borderColor ?? '#000'; const renderChildren = () => - React.Children.map(children, (child) => { - if (!React.isValidElement(child)) return child; - - // check if we should add the border style | skip known type names - const elementType = child.type as any; - const isScrollView = - elementType?.displayName === 'ScrollView' || - elementType?.name === 'ScrollView'; - - if (borderStyle && !isScrollView) { - return React.cloneElement(child, { - borderStyle, - ...child.props, - }); - } - - return child; - }); + React.Children.map(children, (child: any) => + React.cloneElement( + child, + borderStyle && child.type.displayName !== 'ScrollView' + ? { borderStyle } + : {} + ) + ); return ( {renderChildren()} @@ -51,28 +41,9 @@ export const TableWrapper: FC = ({ children, }) => { const renderChildren = () => - React.Children.map(children, (child) => { - if (!React.isValidElement(child)) return child; + React.Children.map(children, (child: any) => + React.cloneElement(child, borderStyle ? { borderStyle } : {}) + ); - if (borderStyle) { - return React.cloneElement(child, { - borderStyle, - ...child.props, - }); - } - - return child; - }); - - return ( - - {renderChildren()} - - ); + return {renderChildren()}; }; - -const styles = StyleSheet.create({ - wrapper: { - flex: 1, - }, -}); diff --git a/src/types.ts b/src/types.ts index a54c33f..4d98591 100644 --- a/src/types.ts +++ b/src/types.ts @@ -28,7 +28,7 @@ export interface CellProps extends BaseTableProps { /** text style for cell content */ textStyle?: StyleProp; /** props passed to the cell container */ - cellContainerProps?: ViewProps; + cellContainer?: ViewProps; /** callback when cell is pressed */ onPress?: (data: any) => void; /** children to render inside the cell */ @@ -48,7 +48,7 @@ export interface RowProps extends BaseTableProps { /** text style applied to all cell in the row */ textStyle?: StyleProp; /** function to generate custom text styles for individual cell */ - cellTextStyle?: (item: any, index: number) => StyleProp; + cellTextStyle?: (item: any) => StyleProp; /** callback when a cell is pressed */ onPress?: (item: any) => void; } @@ -65,6 +65,7 @@ export interface RowsProps extends BaseTableProps { flexArr?: number[]; /** text style applied to all cells */ textStyle?: StyleProp; + cellTextStyle?: (item: any) => StyleProp; /** callback when a cell is pressed */ onPress?: (item: any) => void; }