Additional useCallback on inputs (#320)

This commit is contained in:
Jaco Greeff
2020-04-20 18:23:14 +02:00
committed by GitHub
parent f349c24761
commit 526f2a2612
7 changed files with 90 additions and 78 deletions
+3 -3
View File
@@ -7,9 +7,9 @@
"packages/*"
],
"resolutions": {
"@polkadot/api": "^1.11.0-beta.32",
"@polkadot/api": "^1.11.0-beta.33",
"@polkadot/keyring": "^2.8.1",
"@polkadot/types": "^1.11.0-beta.32",
"@polkadot/types": "^1.11.0-beta.33",
"@polkadot/util": "^2.8.1",
"@polkadot/util-crypto": "^2.8.1",
"babel-core": "^7.0.0-bridge.0",
@@ -30,7 +30,7 @@
"devDependencies": {
"@babel/core": "^7.9.0",
"@polkadot/dev": "^0.52.11",
"@polkadot/typegen": "^1.11.0-beta.32",
"@polkadot/typegen": "^1.11.0-beta.33",
"@types/jest": "^25.2.1",
"copy-webpack-plugin": "^5.1.1",
"sinon-chrome": "^3.0.1",
+1 -1
View File
@@ -6,7 +6,7 @@
"license": "Apache-2",
"dependencies": {
"@babel/runtime": "^7.9.2",
"@polkadot/api": "^1.11.0-beta.32",
"@polkadot/api": "^1.11.0-beta.33",
"@polkadot/extension-inject": "0.24.1",
"@polkadot/keyring": "^2.8.1",
"@polkadot/ui-keyring": "^0.52.1"
+10 -7
View File
@@ -33,13 +33,16 @@ export default function Import (): React.ReactElement<Props> {
const [name, setName] = useState<string | null>(null);
const [password, setPassword] = useState<string | null>(null);
const _onChangeSeed = useCallback(async (suri: string | null): Promise<void> => {
if (suri) {
setAccount(await validateSeed(suri));
} else {
setAccount(null);
}
}, []);
const _onChangeSeed = useCallback(
async (suri: string | null): Promise<void> => {
if (suri) {
setAccount(await validateSeed(suri));
} else {
setAccount(null);
}
},
[]
);
// FIXME Duplicated between here and Create.tsx
const _onCreate = useCallback((): void => {
@@ -2,7 +2,7 @@
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import React from 'react';
import React, { useCallback } from 'react';
import styled from 'styled-components';
import Label from './Label';
@@ -23,9 +23,12 @@ interface Props {
}
function InputWithLabel ({ className, defaultValue, isError, isFocused, isReadOnly, label, onBlur, onChange, placeholder, type = 'text', value }: Props): React.ReactElement<Props> {
const _onChange = ({ target: { value } }: React.ChangeEvent<HTMLInputElement>): void => {
onChange && onChange(value.trim());
};
const _onChange = useCallback(
({ target: { value } }: React.ChangeEvent<HTMLInputElement>): void => {
onChange && onChange(value);
},
[onChange]
);
return (
<Label
@@ -2,7 +2,7 @@
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import React from 'react';
import React, { useCallback } from 'react';
import Label from './Label';
import { TextArea } from './TextInputs';
@@ -19,9 +19,12 @@ interface Props {
}
export default function TextAreaWithLabel ({ className, isError, isFocused, isReadOnly, label, onChange, rowsCount, value }: Props): React.ReactElement<Props> {
const _onChange = ({ target: { value } }: React.ChangeEvent<HTMLTextAreaElement>): void => {
onChange && onChange(value.trim());
};
const _onChange = useCallback(
({ target: { value } }: React.ChangeEvent<HTMLTextAreaElement>): void => {
onChange && onChange(value);
},
[onChange]
);
return (
<Label
@@ -12,6 +12,7 @@ interface BasicProps {
value?: string;
onChange?: (value: string) => void;
}
type Props<T extends BasicProps> = T & {
className?: string;
validator: Validator<string>;
@@ -42,10 +43,12 @@ function ValidatedInput<T extends object> ({ className, component: Input, onVali
return (
<div className={className}>
<Input {...props as T}
<Input
{...props as T}
isError={Result.isError(validationResult)}
onChange={setValue}
value={value} />
value={value}
/>
{Result.isError(validationResult) && <ErrorMessage>{validationResult.error.errorDescription}</ErrorMessage>}
</div>
);
+57 -57
View File
@@ -2784,42 +2784,42 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/api-derive@npm:1.11.0-beta.32":
version: 1.11.0-beta.32
resolution: "@polkadot/api-derive@npm:1.11.0-beta.32"
"@polkadot/api-derive@npm:1.11.0-beta.33":
version: 1.11.0-beta.33
resolution: "@polkadot/api-derive@npm:1.11.0-beta.33"
dependencies:
"@babel/runtime": ^7.9.2
"@polkadot/api": 1.11.0-beta.32
"@polkadot/rpc-core": 1.11.0-beta.32
"@polkadot/rpc-provider": 1.11.0-beta.32
"@polkadot/types": 1.11.0-beta.32
"@polkadot/api": 1.11.0-beta.33
"@polkadot/rpc-core": 1.11.0-beta.33
"@polkadot/rpc-provider": 1.11.0-beta.33
"@polkadot/types": 1.11.0-beta.33
"@polkadot/util": ^2.8.1
"@polkadot/util-crypto": ^2.8.1
bn.js: ^5.1.1
memoizee: ^0.4.14
rxjs: ^6.5.5
checksum: 2/0217423bfc14487346e542d360a62ec324d460be11fe446d0085625ea88c880031db656e53dcc7ac4d642c3d0eb5f2c67917af879d9d7d03a24f4444448f3758
checksum: 2/856c8dce1a5698bd806022402f5936d98efae6dc72e239a02949f90dbcffbf872e541c9a7c3e6c7ceaccabca917228a4995bdc19b1e918e538e94cce815ee4f8
languageName: node
linkType: hard
"@polkadot/api@npm:^1.11.0-beta.32":
version: 1.11.0-beta.32
resolution: "@polkadot/api@npm:1.11.0-beta.32"
"@polkadot/api@npm:^1.11.0-beta.33":
version: 1.11.0-beta.33
resolution: "@polkadot/api@npm:1.11.0-beta.33"
dependencies:
"@babel/runtime": ^7.9.2
"@polkadot/api-derive": 1.11.0-beta.32
"@polkadot/api-derive": 1.11.0-beta.33
"@polkadot/keyring": ^2.8.1
"@polkadot/metadata": 1.11.0-beta.32
"@polkadot/rpc-core": 1.11.0-beta.32
"@polkadot/rpc-provider": 1.11.0-beta.32
"@polkadot/types": 1.11.0-beta.32
"@polkadot/types-known": 1.11.0-beta.32
"@polkadot/metadata": 1.11.0-beta.33
"@polkadot/rpc-core": 1.11.0-beta.33
"@polkadot/rpc-provider": 1.11.0-beta.33
"@polkadot/types": 1.11.0-beta.33
"@polkadot/types-known": 1.11.0-beta.33
"@polkadot/util": ^2.8.1
"@polkadot/util-crypto": ^2.8.1
bn.js: ^5.1.1
eventemitter3: ^4.0.0
rxjs: ^6.5.5
checksum: 2/ff4e382d59b4299e35c57167b67d72cd0773661988af2aa21cfdf599c29fa4c8de4a0656d63ab608bd246b2c71af1c66a9c0234caec2d00c30656fc447944929
checksum: 2/d52c72700619713e965787289308725587da390af65155ac542c26b3ac9b0411b84d6f44df9ccc76fcd67c2c71bece266dd48bfad6269300a92c217d37b299a4
languageName: node
linkType: hard
@@ -2915,7 +2915,7 @@ __metadata:
resolution: "@polkadot/extension-base@workspace:packages/extension-base"
dependencies:
"@babel/runtime": ^7.9.2
"@polkadot/api": ^1.11.0-beta.32
"@polkadot/api": ^1.11.0-beta.33
"@polkadot/extension-inject": 0.24.1
"@polkadot/keyring": ^2.8.1
"@polkadot/ui-keyring": ^0.52.1
@@ -3020,17 +3020,17 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/metadata@npm:1.11.0-beta.32":
version: 1.11.0-beta.32
resolution: "@polkadot/metadata@npm:1.11.0-beta.32"
"@polkadot/metadata@npm:1.11.0-beta.33":
version: 1.11.0-beta.33
resolution: "@polkadot/metadata@npm:1.11.0-beta.33"
dependencies:
"@babel/runtime": ^7.9.2
"@polkadot/types": 1.11.0-beta.32
"@polkadot/types-known": 1.11.0-beta.32
"@polkadot/types": 1.11.0-beta.33
"@polkadot/types-known": 1.11.0-beta.33
"@polkadot/util": ^2.8.1
"@polkadot/util-crypto": ^2.8.1
bn.js: ^5.1.1
checksum: 2/83ef44f74615e38790c348592acc5d27f113e79d0f00395400b08c6307b681413f9fb52a089715db119a58a09fb3a5b1f788e09ac2d3c86b0152b8be4a921919
checksum: 2/49ac2547396a965f04433ced65e1b8a64e25066e0874c1a6bb98edd1c8539937464734abb2590339f5ead1d44b346d0a17181a20d3b63cf45f6f1c19ef764ddb
languageName: node
linkType: hard
@@ -3073,49 +3073,49 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/rpc-core@npm:1.11.0-beta.32":
version: 1.11.0-beta.32
resolution: "@polkadot/rpc-core@npm:1.11.0-beta.32"
"@polkadot/rpc-core@npm:1.11.0-beta.33":
version: 1.11.0-beta.33
resolution: "@polkadot/rpc-core@npm:1.11.0-beta.33"
dependencies:
"@babel/runtime": ^7.9.2
"@polkadot/metadata": 1.11.0-beta.32
"@polkadot/rpc-provider": 1.11.0-beta.32
"@polkadot/types": 1.11.0-beta.32
"@polkadot/metadata": 1.11.0-beta.33
"@polkadot/rpc-provider": 1.11.0-beta.33
"@polkadot/types": 1.11.0-beta.33
"@polkadot/util": ^2.8.1
memoizee: ^0.4.14
rxjs: ^6.5.5
checksum: 2/93a259bdb908e6dd2f76da5023c915c01f70c3b4dcc0190d8a27acca122685ee5d66299b73d0bb023825d6c86c87f4b89cd50d03bb19f1ebfdf1804f2cb1d8ff
checksum: 2/0acd2f0824b253919c70f1521e1825df3292f5a7707ed3575d3ee441c1ec44331876ef31bed3b17d02908e14881e1b09425dbe39c123666cab903fedd300b9f2
languageName: node
linkType: hard
"@polkadot/rpc-provider@npm:1.11.0-beta.32":
version: 1.11.0-beta.32
resolution: "@polkadot/rpc-provider@npm:1.11.0-beta.32"
"@polkadot/rpc-provider@npm:1.11.0-beta.33":
version: 1.11.0-beta.33
resolution: "@polkadot/rpc-provider@npm:1.11.0-beta.33"
dependencies:
"@babel/runtime": ^7.9.2
"@polkadot/metadata": 1.11.0-beta.32
"@polkadot/types": 1.11.0-beta.32
"@polkadot/metadata": 1.11.0-beta.33
"@polkadot/types": 1.11.0-beta.33
"@polkadot/util": ^2.8.1
"@polkadot/util-crypto": ^2.8.1
bn.js: ^5.1.1
eventemitter3: ^4.0.0
isomorphic-fetch: ^2.2.1
websocket: ^1.0.31
checksum: 2/729bb56f11370b421ca12d2a2da09b93a7e2fd5d256af279274574ca209c2186a6d9930568f25cb3bf21f1862883509a54e0648516ac8948c2f0ad21604d0c4b
checksum: 2/84cae896a152245fef3a244f83d49a4aa0af5467729a44d9a71dc154093737129aa4a64e97677b3ab3f5a645303b76afc8fba1454db597a22c4939df9425f4a3
languageName: node
linkType: hard
"@polkadot/typegen@npm:^1.11.0-beta.32":
version: 1.11.0-beta.32
resolution: "@polkadot/typegen@npm:1.11.0-beta.32"
"@polkadot/typegen@npm:^1.11.0-beta.33":
version: 1.11.0-beta.33
resolution: "@polkadot/typegen@npm:1.11.0-beta.33"
dependencies:
"@babel/core": ^7.9.0
"@babel/register": ^7.9.0
"@babel/runtime": ^7.9.2
"@polkadot/api": 1.11.0-beta.32
"@polkadot/metadata": 1.11.0-beta.32
"@polkadot/rpc-provider": 1.11.0-beta.32
"@polkadot/types": 1.11.0-beta.32
"@polkadot/api": 1.11.0-beta.33
"@polkadot/metadata": 1.11.0-beta.33
"@polkadot/rpc-provider": 1.11.0-beta.33
"@polkadot/types": 1.11.0-beta.33
"@polkadot/util": ^2.8.1
websocket: ^1.0.31
yargs: ^15.3.1
@@ -3125,35 +3125,35 @@ __metadata:
polkadot-types-from-defs: scripts/polkadot-types-from-defs.js
polkadot-types-internal-interfaces: scripts/polkadot-types-internal-interfaces.js
polkadot-types-internal-metadata: scripts/polkadot-types-internal-metadata.js
checksum: 2/17ae4acac9fd37fc1e70f47f0dec69cbeb3793e8972471da7e23d224775dc7f35c5c47f715c88f683450f97795a2f8760c4af3b90f16da2af4aeebf71c37a709
checksum: 2/4543c9044e202db88ba42fcc801cc3d4ba17c46731cb02fc3355f3836f16fc3bfa66fcccf267b5ad9bb2513d69a0c79e5fb6893fc66908e010a7fcf3fee80bff
languageName: node
linkType: hard
"@polkadot/types-known@npm:1.11.0-beta.32":
version: 1.11.0-beta.32
resolution: "@polkadot/types-known@npm:1.11.0-beta.32"
"@polkadot/types-known@npm:1.11.0-beta.33":
version: 1.11.0-beta.33
resolution: "@polkadot/types-known@npm:1.11.0-beta.33"
dependencies:
"@babel/runtime": ^7.9.2
"@polkadot/types": 1.11.0-beta.32
"@polkadot/types": 1.11.0-beta.33
"@polkadot/util": ^2.8.1
bn.js: ^5.1.1
checksum: 2/12d57c8a6d626573d8813baadbd93e95f87ee20ec36a683a599f0eb4e50c74e6f8ee7c5450f5848ccfc0f907f0463fedc0cde47ee684bd9e3ca0838b7530c581
checksum: 2/ac78127dddf4eb62e4aba66febe40a3fd1a655ac462008ba152f65adaaad7536e3513b39511ff93b34b55bb6fee8bd46f1e27234ff360ac5398ba0281d577c3d
languageName: node
linkType: hard
"@polkadot/types@npm:^1.11.0-beta.32":
version: 1.11.0-beta.32
resolution: "@polkadot/types@npm:1.11.0-beta.32"
"@polkadot/types@npm:^1.11.0-beta.33":
version: 1.11.0-beta.33
resolution: "@polkadot/types@npm:1.11.0-beta.33"
dependencies:
"@babel/runtime": ^7.9.2
"@polkadot/metadata": 1.11.0-beta.32
"@polkadot/metadata": 1.11.0-beta.33
"@polkadot/util": ^2.8.1
"@polkadot/util-crypto": ^2.8.1
"@types/bn.js": ^4.11.6
bn.js: ^5.1.1
memoizee: ^0.4.14
rxjs: ^6.5.5
checksum: 2/9a9a234b77ce5da05196c3343dfaaee9e2c1a48c9e54b04bc6337d3365d138fd2895daaf81aee39cc9ceade8607a7a5b63ba269b43005468af4cfa535722e335
checksum: 2/b476b0a8206f1d998ba92d89d485a8d54ba0de857508ec6e00af82097d2349019254d85170c15be486e5278156f505fe0b00391d7d9e183cf80a1d100f26b161
languageName: node
linkType: hard
@@ -18002,7 +18002,7 @@ __metadata:
dependencies:
"@babel/core": ^7.9.0
"@polkadot/dev": ^0.52.11
"@polkadot/typegen": ^1.11.0-beta.32
"@polkadot/typegen": ^1.11.0-beta.33
"@types/jest": ^25.2.1
copy-webpack-plugin: ^5.1.1
sinon-chrome: ^3.0.1