@@ -4,13 +4,13 @@ import styled from 'styled-components';
4
4
5
5
const MainContainer = styled . div < {
6
6
$mode : 'AUTO' | 'FIXED' ;
7
- $height ?: number ;
8
7
} > `
9
8
display: flex;
10
9
flex-direction: column;
11
10
height: 100%;
12
11
overflow: hidden;
13
12
position: relative;
13
+ border: 4px solid red;
14
14
` ;
15
15
16
16
const StickyToolbar = styled . div < {
@@ -33,14 +33,12 @@ const DefaultToolbar = styled.div`
33
33
const TableSection = styled . div < {
34
34
$mode : 'AUTO' | 'FIXED' ;
35
35
} > `
36
- flex: 1;
37
- min-height: 0;
38
36
overflow: ${ props => props . $mode === 'FIXED' ? 'auto' : 'visible' } ;
37
+ border: 4px solid blue;
39
38
` ;
40
39
41
40
interface TableContainerProps {
42
41
mode : 'AUTO' | 'FIXED' ;
43
- containerHeight ?: number ;
44
42
toolbarPosition : 'above' | 'below' | 'close' ;
45
43
stickyToolbar : boolean ;
46
44
showToolbar : boolean ;
@@ -51,51 +49,30 @@ interface TableContainerProps {
51
49
52
50
export const TableContainer : React . FC < TableContainerProps > = ( {
53
51
mode,
54
- containerHeight,
55
52
toolbarPosition,
56
53
stickyToolbar,
57
54
showToolbar,
58
55
toolbar,
59
56
children,
60
57
containerRef
61
58
} ) => {
62
- const ToolbarComponent = stickyToolbar ? StickyToolbar : DefaultToolbar ;
63
-
64
- const renderToolbarOutside = stickyToolbar && showToolbar ;
65
- const renderToolbarInside = ! stickyToolbar && showToolbar ;
59
+
66
60
67
61
return (
68
- < MainContainer $mode = { mode } $height = { containerHeight } ref = { containerRef } >
69
- { /* Above toolbar (sticky) */ }
70
- { renderToolbarOutside && toolbarPosition === 'above' && (
71
- < ToolbarComponent $position = "above" >
72
- { toolbar }
73
- </ ToolbarComponent >
62
+ < MainContainer $mode = { mode } ref = { containerRef } >
63
+ < TableSection $mode = { mode } >
64
+ { showToolbar && toolbarPosition === 'above' && (
65
+ stickyToolbar
66
+ ? < StickyToolbar $position = "above" > { toolbar } </ StickyToolbar >
67
+ : < DefaultToolbar > { toolbar } </ DefaultToolbar >
74
68
) }
75
-
76
- { /* Table content + optional non-sticky toolbar inside scrollable area */ }
77
- < TableSection $mode = { mode } >
78
- { /* Non-sticky toolbar ABOVE inside scrollable area */ }
79
- { renderToolbarInside && toolbarPosition === 'above' && (
80
- < DefaultToolbar >
81
- { toolbar }
82
- </ DefaultToolbar >
83
- ) }
84
- { children }
85
- { /* Non-sticky toolbar BELOW inside scrollable area */ }
86
- { renderToolbarInside && toolbarPosition === 'below' && (
87
- < DefaultToolbar >
88
- { toolbar }
89
- </ DefaultToolbar >
90
- ) }
91
- </ TableSection >
92
-
93
- { /* Below toolbar (sticky) */ }
94
- { renderToolbarOutside && toolbarPosition === 'below' && (
95
- < ToolbarComponent $position = "below" >
96
- { toolbar }
97
- </ ToolbarComponent >
69
+ { children }
70
+ { showToolbar && toolbarPosition === 'below' && (
71
+ stickyToolbar
72
+ ? < StickyToolbar $position = "below" > { toolbar } </ StickyToolbar >
73
+ : < DefaultToolbar > { toolbar } </ DefaultToolbar >
98
74
) }
99
- </ MainContainer >
75
+ </ TableSection >
76
+ </ MainContainer >
100
77
) ;
101
78
} ;
0 commit comments