Skip to content

Commit 3fbe1ba

Browse files
Pollepsjoepio
authored andcommitted
#676 Fix cursor moves to end of input when typing in tables
1 parent e8d868d commit 3fbe1ba

File tree

5 files changed

+11
-15
lines changed

5 files changed

+11
-15
lines changed

browser/data-browser/src/components/forms/InputBoolean.tsx

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import React, { useState } from 'react';
22
import { useBoolean } from '@tomic/react';
33
import { InputProps } from './ResourceField';
4-
import { ErrMessage, InputStyled } from './InputStyles';
4+
import { ErrMessage } from './InputStyles';
5+
import { Checkbox } from './Checkbox';
56

67
export default function InputBoolean({
78
resource,
@@ -15,18 +16,9 @@ export default function InputBoolean({
1516
commit,
1617
});
1718

18-
function handleUpdate(e: React.ChangeEvent<HTMLInputElement>) {
19-
setValue(e.target.checked);
20-
}
21-
2219
return (
2320
<>
24-
<InputStyled
25-
type='checkbox'
26-
checked={!!value}
27-
onChange={handleUpdate}
28-
{...props}
29-
/>
21+
<Checkbox checked={!!value} onChange={setValue} {...props} />
3022
{err && <ErrMessage>{err.message}</ErrMessage>}
3123
</>
3224
);

browser/data-browser/src/components/forms/InputNumber.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, { useState } from 'react';
2-
import { useNumber } from '@tomic/react';
2+
import { Datatype, useNumber } from '@tomic/react';
33
import { InputProps } from './ResourceField';
44
import { ErrMessage, InputStyled, InputWrapper } from './InputStyles';
55

@@ -12,6 +12,7 @@ export default function InputNumber({
1212
const [err, setErr] = useState<Error | undefined>(undefined);
1313
const [value, setValue] = useNumber(resource, property.subject, {
1414
handleValidationError: setErr,
15+
validate: false,
1516
commit,
1617
});
1718

@@ -33,6 +34,7 @@ export default function InputNumber({
3334
placeholder='Enter a number...'
3435
type='number'
3536
value={value === undefined ? '' : Number.isNaN(value) ? '' : value}
37+
step={property.datatype === Datatype.INTEGER ? 1 : 'any'}
3638
onChange={handleUpdate}
3739
{...props}
3840
/>

browser/data-browser/src/components/forms/InputSlug.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export default function InputSlug({
1717

1818
const [value, setValue] = useString(resource, property.subject, {
1919
handleValidationError: setErr,
20+
validate: false,
2021
commit,
2122
});
2223

browser/data-browser/src/components/forms/InputString.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ export default function InputString({
1313
...props
1414
}: InputProps): JSX.Element {
1515
const [err, setErr, onBlur] = useValidation();
16-
1716
const [value, setValue] = useString(resource, property.subject, {
1817
commit,
18+
validate: false,
1919
});
2020

2121
function handleUpdate(event: React.ChangeEvent<HTMLInputElement>): void {

browser/data-browser/src/views/TablePage/TableCell.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ function useIsEditing(row: number, column: number) {
5252
const valueOpts = {
5353
commitDebounce: 0,
5454
commit: false,
55+
validate: false,
5556
};
5657

5758
export function TableCell({
@@ -105,7 +106,7 @@ export function TableCell({
105106

106107
save();
107108
},
108-
[setValue, setCreatedAt, createdAt, value, resource, property],
109+
[setValue, setCreatedAt, createdAt, resource, property, save],
109110
);
110111

111112
const handleEnterEditModeWithCharacter = useCallback(
@@ -139,7 +140,7 @@ export function TableCell({
139140
resource={resource}
140141
/>
141142
) : (
142-
<React.Fragment key={`${value}`}>
143+
<React.Fragment>
143144
<Editor.Display
144145
value={value}
145146
onChange={onChange}

0 commit comments

Comments
 (0)