Skip to content

Commit 2059894

Browse files
committed
fix: fixing duplicate and add new row
1 parent 3b2b806 commit 2059894

File tree

5 files changed

+25
-9
lines changed

5 files changed

+25
-9
lines changed

src/renderer/screens/DatabaseScreen/QueryResultViewer/QueryResultTable.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
} from '@fortawesome/free-solid-svg-icons';
2121
import { useEditableResult } from 'renderer/contexts/EditableQueryResultProvider';
2222
import BaseType from 'renderer/datatype/BaseType';
23+
import { useSqlExecute } from 'renderer/contexts/SqlExecuteProvider';
2324

2425
export interface QuertResultTableSortedHeader {
2526
by: 'ASC' | 'DESC';
@@ -41,6 +42,7 @@ function QueryResultTable({
4142
onSortReset,
4243
sortedHeader,
4344
}: QueryResultTableProps) {
45+
const { common } = useSqlExecute();
4446
const [stickyHeaderIndex, setStickyHeaderIndex] = useState<
4547
number | undefined
4648
>();
@@ -80,14 +82,17 @@ function QueryResultTable({
8082
return {
8183
rowIndex: -(newRowIndex + 1),
8284
data: headers.reduce(
83-
(prev, header) => ({ ...prev, [header.name]: undefined }),
85+
(prev, header) => ({
86+
...prev,
87+
[header.name]: common.createTypeValue(header, undefined),
88+
}),
8489
{},
8590
),
8691
};
8792
});
8893

8994
return [...newRows, ...result];
90-
}, [result, newRowCount]);
95+
}, [result, newRowCount, common]);
9196

9297
const rules = useMemo<TableEditableRule>(() => {
9398
if (headers && currentDatabase && schema) {

src/renderer/screens/DatabaseScreen/QueryResultViewer/TableCell/TableCellDecimal.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ function TableCellDecimalEditor({
3232
);
3333
}
3434

35-
function TableCellDecimalContent({ value }: TableEditableContentProps) {
36-
return <TableCellContent right value={value} />;
35+
function TableCellDecimalContent({
36+
value,
37+
}: TableEditableContentProps<DecimalType>) {
38+
return <TableCellContent right value={value.toNullableString()} />;
3739
}
3840

3941
const TableCellDecimal = createTableCellType({

src/renderer/screens/DatabaseScreen/QueryResultViewer/TableCell/TableCellEnum.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ function TableCellStringEditor({
3333
);
3434
}
3535

36-
function TableCellStringContent({ value }: TableEditableContentProps) {
37-
return <TableCellContent value={value} />;
36+
function TableCellStringContent({
37+
value,
38+
}: TableEditableContentProps<StringType>) {
39+
return <TableCellContent value={value.toNullableString()} />;
3840
}
3941

4042
const TableCellEnum = createTableCellType({

src/renderer/screens/DatabaseScreen/QueryResultViewer/TableCell/TableCellNumber.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,10 @@ function TableCellNumberEditor({
3434
);
3535
}
3636

37-
function TableCellNumberContent({ value }: TableEditableContentProps) {
38-
return <TableCellContent right value={value} />;
37+
function TableCellNumberContent({
38+
value,
39+
}: TableEditableContentProps<NumberType>) {
40+
return <TableCellContent right value={value.toNullableString()} />;
3941
}
4042

4143
const TableCellNumber = createTableCellType({

src/renderer/screens/DatabaseScreen/QueryResultViewer/useDataTableContextMenu.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,12 @@ export default function useDataTableContextMenu({
179179
text: 'Insert new row',
180180
disabled: !rules.insertable,
181181
onClick: () => {
182-
collector.createNewRow();
182+
const newRow = new Array(headers.length)
183+
.fill(undefined)
184+
.map((_, idx) => {
185+
return common.createTypeValue(headers[idx], undefined);
186+
});
187+
collector.createNewRow(newRow);
183188
},
184189
icon: <FontAwesomeIcon icon={faPlusCircle} color="#27ae60" />,
185190
},

0 commit comments

Comments
 (0)