Skip to content

Commit b293eac

Browse files
committed
implement simple bar
1 parent c30ffdd commit b293eac

File tree

2 files changed

+56
-13
lines changed

2 files changed

+56
-13
lines changed

client/packages/lowcoder/src/comps/comps/tableLiteComp/parts/TableContainer.tsx

Lines changed: 52 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
// parts/TableContainer.tsx
22
import React from 'react';
33
import styled from 'styled-components';
4+
import SimpleBar from 'simplebar-react';
5+
import 'simplebar-react/dist/simplebar.min.css';
46

57
const MainContainer = styled.div<{
68
$mode: 'AUTO' | 'FIXED';
79
}>`
810
display: flex;
911
flex-direction: column;
1012
height: 100%;
11-
overflow: hidden;
1213
position: relative;
13-
border: 4px solid red;
1414
`;
1515

1616
const StickyToolbar = styled.div<{
@@ -33,8 +33,34 @@ const DefaultToolbar = styled.div`
3333
const TableSection = styled.div<{
3434
$mode: 'AUTO' | 'FIXED';
3535
}>`
36-
overflow: ${props => props.$mode === 'FIXED' ? 'auto' : 'visible'};
36+
37+
flex: 1 1 auto;
38+
min-height: 0;
3739
border: 4px solid blue;
40+
overflow: hidden;
41+
`;
42+
43+
44+
const SimpleBarWrapper = styled(SimpleBar)<{
45+
$showVertical: boolean;
46+
$showHorizontal: boolean;
47+
}>`
48+
height: 100%;
49+
border: 4px solid red;
50+
51+
${props => !props.$showVertical && `
52+
.simplebar-scrollbar[data-direction="vertical"] {
53+
opacity: 0 !important;
54+
pointer-events: none;
55+
}
56+
`}
57+
58+
${props => !props.$showHorizontal && `
59+
.simplebar-scrollbar[data-direction="horizontal"] {
60+
opacity: 0 !important;
61+
pointer-events: none;
62+
}
63+
`}
3864
`;
3965

4066
interface TableContainerProps {
@@ -45,6 +71,8 @@ interface TableContainerProps {
4571
toolbar: React.ReactNode;
4672
children: React.ReactNode;
4773
containerRef?: React.RefObject<HTMLDivElement>;
74+
showVerticalScrollbar: boolean;
75+
showHorizontalScrollbar: boolean;
4876
}
4977

5078
export const TableContainer: React.FC<TableContainerProps> = ({
@@ -54,25 +82,36 @@ export const TableContainer: React.FC<TableContainerProps> = ({
5482
showToolbar,
5583
toolbar,
5684
children,
57-
containerRef
85+
containerRef,
86+
showVerticalScrollbar,
87+
showHorizontalScrollbar
5888
}) => {
5989

6090

6191
return (
6292
<MainContainer $mode={mode} ref={containerRef}>
93+
{stickyToolbar && toolbarPosition === 'above' && (
94+
<StickyToolbar $position="above">{toolbar}</StickyToolbar>
95+
)}
6396
<TableSection $mode={mode}>
64-
{showToolbar && toolbarPosition === 'above' && (
65-
stickyToolbar
66-
? <StickyToolbar $position="above">{toolbar}</StickyToolbar>
67-
: <DefaultToolbar>{toolbar}</DefaultToolbar>
97+
98+
<SimpleBarWrapper
99+
$showVertical={showVerticalScrollbar}
100+
$showHorizontal={showHorizontalScrollbar}
101+
>
102+
{!stickyToolbar && toolbarPosition === 'above' && (
103+
<DefaultToolbar>{toolbar}</DefaultToolbar>
68104
)}
69-
{children}
70-
{showToolbar && toolbarPosition === 'below' && (
71-
stickyToolbar
72-
? <StickyToolbar $position="below">{toolbar}</StickyToolbar>
73-
: <DefaultToolbar>{toolbar}</DefaultToolbar>
105+
{children}
106+
{!stickyToolbar && toolbarPosition === 'below' && (
107+
<DefaultToolbar>{toolbar}</DefaultToolbar>
74108
)}
109+
</SimpleBarWrapper>
110+
75111
</TableSection>
112+
{stickyToolbar && toolbarPosition === 'below' && (
113+
<StickyToolbar $position="below">{toolbar}</StickyToolbar>
114+
)}
76115
</MainContainer>
77116
);
78117
};

client/packages/lowcoder/src/comps/comps/tableLiteComp/tableCompView.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,8 @@ export const TableCompView = React.memo((props: {
181181
stickyToolbar={stickyToolbar}
182182
showToolbar={!hideToolbar}
183183
toolbar={toolbarView}
184+
showVerticalScrollbar={compChildren.showVerticalScrollbar.getView()}
185+
showHorizontalScrollbar={compChildren.showHorizontalScrollbar.getView()}
184186
>
185187
<EmptyContent text={trans("table.emptyColumns")} />
186188
</TableContainer>
@@ -199,6 +201,8 @@ export const TableCompView = React.memo((props: {
199201
showToolbar={!hideToolbar}
200202
toolbar={toolbarView}
201203
containerRef={containerRef}
204+
showVerticalScrollbar={compChildren.showVerticalScrollbar.getView()}
205+
showHorizontalScrollbar={compChildren.showHorizontalScrollbar.getView()}
202206
>
203207

204208
<TableRenderer<any>

0 commit comments

Comments
 (0)