Skip to content
This repository was archived by the owner on Feb 28, 2026. It is now read-only.

Commit 6f9ac8b

Browse files
authored
Merge pull request #119 from slashbaseide/develop
Merge develop
2 parents 1f46ae5 + 8537d19 commit 6f9ac8b

18 files changed

Lines changed: 574 additions & 272 deletions

File tree

frontend/src/components/dbfragments/cheatsheet/cheatsheet.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import styles from './cheatsheet.module.scss'
21
import React, { useRef, useState } from 'react'
32
import { DBConnType } from '../../../data/defaults'
43
import CheatsheetCommand from './command'

frontend/src/components/dbfragments/history.tsx

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useContext, useEffect } from 'react'
1+
import { useContext, useEffect } from 'react'
22
import { DBConnection, Tab } from '../../data/models'
33
import { selectDBConnection } from '../../redux/dbConnectionSlice'
44
import { useAppDispatch, useAppSelector } from '../../redux/hooks'
@@ -38,11 +38,24 @@ const DBHistoryFragment = ({ }: DBHistoryPropType) => {
3838
}
3939
}
4040

41+
function refreshHandler() {
42+
dispatch(reset());
43+
fetchDBQueryLogs();
44+
}
45+
4146
return (
4247
<div className={currentTab.isActive ? "db-tab-active" : "db-tab"}>
4348
{dbConnection &&
44-
<React.Fragment>
45-
<h1>Showing History in {dbConnection.name}</h1>
49+
<>
50+
<div className="is-flex is-justify-content-space-between ">
51+
<h1>Showing History in {dbConnection.name}</h1>
52+
<button className="button is-flex" onClick={refreshHandler}>
53+
<span className="icon is-small">
54+
<i className="fas fa-sync" />
55+
</span>
56+
<span>Refresh</span>
57+
</button>
58+
</div>
4659
<br />
4760
<InfiniteScroll
4861
dataLength={dbQueryLogs.length}
@@ -62,8 +75,7 @@ const DBHistoryFragment = ({ }: DBHistoryPropType) => {
6275
>
6376
<table className={"table is-bordered is-striped is-narrow is-hoverable is-fullwidth"}>
6477
<tbody>
65-
{dbQueryLogs.map((log) => {
66-
return (
78+
{dbQueryLogs.map((log) => (
6779
<tr key={log.id}>
6880
<td>
6981
<code>{log.query}</code>
@@ -73,15 +85,14 @@ const DBHistoryFragment = ({ }: DBHistoryPropType) => {
7385
</td>
7486
</tr>
7587
)
76-
})}
88+
)}
7789
</tbody>
7890
</table>
7991
</InfiniteScroll>
80-
</React.Fragment>
92+
</>
8193
}
8294
</div>
8395
)
8496
}
8597

86-
87-
export default DBHistoryFragment
98+
export default DBHistoryFragment

frontend/src/components/dbfragments/jsontable/jsontable.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ const JsonTable = ({ queryData, dbConnection, mName, isInteractive, showHeader,
6262

6363
const changeFilter = () => {
6464
let filter: string[] | undefined = undefined
65-
let filterText = filterRef.current!.value.trim()
65+
const filterText = filterRef.current!.value.trim()
6666
if (filterText !== '' && filterText.startsWith("{") && filterText.endsWith("}")) {
6767
filter = [filterText]
6868
}
@@ -74,7 +74,7 @@ const JsonTable = ({ queryData, dbConnection, mName, isInteractive, showHeader,
7474
return
7575
}
7676
let sort: string[] | undefined = undefined
77-
let sortText = sortRef.current!.value.trim()
77+
const sortText = sortRef.current!.value.trim()
7878
if (sortText !== '' && sortText.startsWith("{") && sortText.endsWith("}")) {
7979
sort = [sortText]
8080
}
@@ -107,10 +107,11 @@ const JsonTable = ({ queryData, dbConnection, mName, isInteractive, showHeader,
107107
rows,
108108
prepareRow,
109109
state,
110-
} = useTable<any>({
110+
} = useTable({
111111
columns,
112112
data,
113113
defaultColumn,
114+
initialState: { selectedRowIds : {}},
114115
...{ editingCellIndex, startEditing, onSaveCell }
115116
}, useRowSelect, hooks => {
116117
if (isInteractive && isEditing)
@@ -127,7 +128,7 @@ const JsonTable = ({ queryData, dbConnection, mName, isInteractive, showHeader,
127128

128129
const newState: any = state // temporary typescript hack
129130
const selectedRows: number[] = Object.keys(newState.selectedRowIds).map(x => parseInt(x))
130-
const selectedUnderscoreIDs = rows.filter((_, i) => selectedRows.includes(i)).map(x => x.original['_id']).filter(x => x)
131+
const selectedUnderscoreIDs = rows.filter((_, i) => selectedRows.includes(i)).map(x => (x.original as any)['_id']).filter(x => x)
131132

132133
const deleteRows = async () => {
133134
if (selectedUnderscoreIDs.length > 0) {
@@ -275,4 +276,4 @@ const CellSelectionComponent = ({ row }: any) => (
275276
</div>
276277
)
277278

278-
export default JsonTable
279+
export default JsonTable

frontend/src/components/dbfragments/query.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import styles from './query.module.scss'
22
import React, { useContext, useEffect, useState } from 'react'
33
import toast from 'react-hot-toast'
4-
import { DBConnection, DBQuery, DBQueryData, DBQueryResult, Tab } from '../../data/models'
4+
import { DBConnection, DBQueryData, DBQueryResult, Tab } from '../../data/models'
55
import QueryEditor from './queryeditor/queryeditor'
66
import { selectDBConnection } from '../../redux/dbConnectionSlice'
77
import { useAppDispatch, useAppSelector } from '../../redux/hooks'
@@ -14,10 +14,7 @@ import { closeTab, updateActiveTab } from '../../redux/tabsSlice'
1414
import TabContext from '../layouts/tabcontext'
1515

1616

17-
type DBQueryPropType = {
18-
}
19-
20-
const DBQueryFragment = (_: DBQueryPropType) => {
17+
const DBQueryFragment = () => {
2118

2219
const dispatch = useAppDispatch()
2320

frontend/src/components/dbfragments/showdata.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,7 @@ import JsonTable from './jsontable/jsontable'
1111
import { getDBDataInDataModel, selectIsFetchingQueryData, selectQueryData } from '../../redux/dataModelSlice'
1212
import TabContext from '../layouts/tabcontext'
1313

14-
type DBShowDataPropType = {
15-
16-
}
17-
18-
const DBShowDataFragment = (_: DBShowDataPropType) => {
14+
const DBShowDataFragment = () => {
1915

2016
const dispatch = useAppDispatch()
2117

frontend/src/components/dbfragments/showmodel.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,7 @@ import { useAppSelector } from '../../redux/hooks'
55
import TabContext from '../layouts/tabcontext'
66
import DataModel from './datamodel/datamodel'
77

8-
type DBShowModelPropType = {
9-
10-
}
11-
12-
const DBShowModelFragment = (_: DBShowModelPropType) => {
8+
const DBShowModelFragment = () => {
139

1410
const dbConnection: DBConnection | undefined = useAppSelector(selectDBConnection)
1511
const currentTab: Tab = useContext(TabContext)!

frontend/src/components/dbfragments/table/addmodal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import styles from './table.module.scss'
22
import React, { useContext, useState } from 'react'
33
import { ApiResult, AddDataResponse, DBConnection, DBQueryData, Tab } from '../../../data/models'
44
import toast from 'react-hot-toast'
5-
import { useAppDispatch, useAppSelector } from '../../../redux/hooks'
5+
import { useAppDispatch } from '../../../redux/hooks'
66
import { addDBData, setQueryData } from '../../../redux/dataModelSlice'
77
import { DBConnType } from '../../../data/defaults'
88
import TabContext from '../../layouts/tabcontext'

frontend/src/components/dbfragments/table/table.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,11 @@ const Table = ({ queryData, dbConnection, mSchema, mName, isInteractive, showHea
100100
rows,
101101
prepareRow,
102102
state,
103-
} = useTable<any>({
103+
} = useTable({
104104
columns,
105105
data,
106106
defaultColumn,
107+
initialState: { selectedRowIds: {}},
107108
...{ editCell, resetEditCell, onSaveCell }
108109
},
109110
useRowSelect,
@@ -121,12 +122,10 @@ const Table = ({ queryData, dbConnection, mSchema, mName, isInteractive, showHea
121122
}
122123
)
123124

124-
const newState: any = state // temporary typescript hack
125-
const selectedRowIds: any = newState.selectedRowIds
126-
const selectedRows: number[] = Object.keys(selectedRowIds).map(x => parseInt(x))
125+
const selectedRows: number[] = Object.keys(state.selectedRowIds).map(x => parseInt(x))
127126
const selectedIDs = dbConnection.type === DBConnType.POSTGRES ?
128-
rows.filter((_, i) => selectedRows.includes(i)).map(x => x.original['0']).filter(x => x)
129-
: rows.filter((_, i) => selectedRows.includes(i)).map(x => queryData.pkeys!.map((pkey) => ({ [pkey]: x.original[queryData.columns.findIndex(x => x === pkey)] }))).map(x => x.reduce(((r, c) => Object.assign(r, c)), {})).map(x => JSON.stringify(x))
127+
rows.filter((_, i) => selectedRows.includes(i)).map(x => (x.original as any)['0']).filter(x => x)
128+
: rows.filter((_, i) => selectedRows.includes(i)).map(x => queryData.pkeys!.map((pkey) => ({ [pkey]: (x.original as any)[queryData.columns.findIndex(x => x === pkey)] }))).map(x => x.reduce(((r, c) => Object.assign(r, c)), {})).map(x => JSON.stringify(x))
130129

131130
const deleteRows = async () => {
132131
if (dbConnection.type === DBConnType.MYSQL && queryData.pkeys?.length === 0) {
@@ -353,4 +352,4 @@ const CellSelectionComponent = ({ row }: any) => (
353352
)
354353

355354

356-
export default Table
355+
export default Table

frontend/src/components/layouts/applayout.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { FunctionComponent, useEffect } from 'react'
1+
import React, { FunctionComponent } from 'react'
22
import Header from './header'
33
import Footer from './footer'
44
import Sidebar from './sidebar'
@@ -7,11 +7,7 @@ import { useAppSelector } from '../../redux/hooks';
77
import { selectIsShowingSidebar } from '../../redux/configSlice';
88
import TabsBar from './tabsbar';
99

10-
type PageLayoutPropType = {
11-
12-
}
13-
14-
const AppLayout: FunctionComponent<PageLayoutPropType> = () => {
10+
const AppLayout: FunctionComponent = () => {
1511

1612
const location = useLocation()
1713

frontend/src/components/layouts/footer.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@ import Constants from '../../constants'
55
import { useEffect } from 'react'
66
import { checkConnection, selectDBConnection, selectIsDBConnected, getDBDataModels, resetDBDataModels } from '../../redux/dbConnectionSlice'
77

8-
9-
type FooterPropType = {}
10-
11-
const Footer = (_: FooterPropType) => {
8+
const Footer = () => {
129

1310
const navigate = useNavigate()
1411
const location = useLocation()

0 commit comments

Comments
 (0)