11import React , { useEffect , useState } from 'react' ;
2- import { Flex , theme , Table , Typography , Button , Space } from 'antd' ;
2+ import { Flex , theme , Table , Typography , Button , Space , Tooltip } from 'antd' ;
33
44import { getTable } from './getTableData' ;
55
66import type { TableColumnsType , TableProps } from 'antd' ;
77import { NodeData } from '@graphscope/studio-graph' ;
88import { PlayCircleOutlined } from '@ant-design/icons' ;
9- import { FullScreen } from '@graphscope/studio-components' ;
9+ import { FullScreen , Utils } from '@graphscope/studio-components' ;
10+ import AdjustColumns , { getTableColumns } from '../../TableView/AdjustColumns' ;
1011
1112export interface IPropertiesPanelProps {
1213 items : NodeData [ ] ;
@@ -22,6 +23,23 @@ const TableView: React.FunctionComponent<IPropertiesPanelProps> = props => {
2223 const defaultSelectedRowKeys = dataSource . map ( item => item . key ) ;
2324 const [ selectedRowKeys , setSelectedRowKeys ] = useState < React . Key [ ] > ( defaultSelectedRowKeys ) ;
2425 // const containerRef = React.useRef<HTMLDivElement>(null);
26+
27+ /** filter cloumns */
28+ const [ state , setState ] = useState ( {
29+ columnIds : ( Utils . storage . get ( 'explore_table_view_column_ids' ) as string [ ] ) || columns . map ( item => item . key ) ,
30+ } ) ;
31+ const { columnIds } = state ;
32+ const tableColumns = getTableColumns ( columnIds ) ;
33+ const handleChangeColumns = value => {
34+ setState ( preState => {
35+ return {
36+ ...preState ,
37+ columnIds : value ,
38+ } ;
39+ } ) ;
40+ } ;
41+ /** filter cloumns end */
42+
2543 useEffect ( ( ) => {
2644 const { dataSource } = getTable ( [ ...items ] ) ;
2745 const defaultSelectedRowKeys = dataSource . map ( item => item . key ) ;
@@ -57,7 +75,10 @@ const TableView: React.FunctionComponent<IPropertiesPanelProps> = props => {
5775 Total { counts } data items, { selectedRowKeys . length } selected.
5876 </ Typography . Text >
5977 < Space >
60- < Button icon = { < PlayCircleOutlined /> } type = "text" onClick = { handleClick } > </ Button >
78+ < Tooltip title = "Appand selected items to the graph" >
79+ < Button icon = { < PlayCircleOutlined /> } type = "text" onClick = { handleClick } > </ Button >
80+ </ Tooltip >
81+ < AdjustColumns onChange = { handleChangeColumns } />
6182 < FullScreen containerRef = { containerRef } />
6283 </ Space >
6384 </ Flex >
@@ -70,7 +91,7 @@ const TableView: React.FunctionComponent<IPropertiesPanelProps> = props => {
7091 } }
7192 // pagination={false}
7293 dataSource = { dataSource }
73- columns = { columns }
94+ columns = { tableColumns }
7495 bordered
7596 scroll = { { x : 'max-content' } }
7697 />
0 commit comments