diff --git a/content/docs/optimizing-performance.md b/content/docs/optimizing-performance.md
index c2911673a..111962734 100644
--- a/content/docs/optimizing-performance.md
+++ b/content/docs/optimizing-performance.md
@@ -212,24 +212,6 @@ O React cria e mantém sua representação interna da UI renderizada. Ele inclui
Quando uma propriedade ou estado de um componente é alterado, o React decide se uma atualização do DOM atual é necessária comparando o novo elemento retornado com o antigo. Quando eles não forem iguais, o React irá alterar o DOM.
-Você pode agora visualizar essas re-renderizações do virtual DOM como o React DevTools:
-
-- [Extensão para Chrome](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en)
-- [Extensão para Firefox](https://addons.mozilla.org/en-GB/firefox/addon/react-devtools/)
-- [Pacote separado](https://www.npmjs.com/package/react-devtools)
-
-No console de desenvolvedor selecione a opção **Highlight Updates** na aba de **React**:
-
-

-
-Interaja com sua página e você deve ver as bordas coloridas aparecendo ao redor de qualquer componente que foi re-renderizado. Isto faz com que você perceba re-renders que não são necessários. Você pode aprender mais sobre essa funcionalidade do React DevTools nesse [post](https://blog.logrocket.com/make-react-fast-again-part-3-highlighting-component-updates-6119e45e6833) do [Ben Edelstein](https://blog.logrocket.com/@edelstein).
-
-Considere esse exemplo:
-
-

-
-Perceba que quando nós estamos acessando o segundo _todo_, o primeiro todo também pisca na tela a cada tecla digitada. Isto significa que ele está sendo re-renderizando pelo React junto com o input. Isso algumas vez é chamado render desperdiçado (wasted render). Nós sabemos que ele é desnecessário porque o conteúdo do primeiro todo não tem nenhuma mudança, mas o React não sabe sobre isso.
-
Embora o React somente altere os nós de DOM alterados, o re-rendering ainda leva algum tempo. Em muitos casos isso não é um problema, mas se a lentidão é perceptível, você pode aumentar velocidade dele sobrescrevendo a função de lifecycle `shouldComponentUpdate`, na qual é chamada antes do processo de re-rendering começar. A implementação padrão dessa função retorna `true`, deixando o React performar a alteração:
```javascript
@@ -401,37 +383,4 @@ function updateColorMap(colormap) {
Se você está usando Create React App, ambos `Object.assign` e a sintaxe de espalhador de objeto estão disponíveis por padrão.
-## Usando Estruturas De Dados Mutáveis {#using-immutable-data-structures}
-
-[Immutable.js](https://github.com/facebook/immutable-js) é uma outra maneira de resolver esse problema. Ele fornece coleções persistentes e imutáveis que trabalham via compartilhamento estrutural:
-
-* *Imutabilidade*: uma vez criada, uma coleção não pode ser mais alterada.
-* *Persistência*: novas coleções podem ser criadas a partir de coleções antigas e uma mutação como um conjunto. A coleção original ainda é válida depois que a nova coleção é criada.
-* *Compartilhamento estrutural*: novas coleções são criadas usando o máximo possível de mesma estrutura original, reduzindo a cópia ao mínimo para melhorar a performance.
-
-Imutabilidade faz rastrear mudanças de forma barata. Uma mudança irá sempre resultar em um novo objeto onde nós somente precisaremos checar se a referência para o objeto mudou. Por exemplo, nesse exemplo de código JavaScript:
-
-
-```javascript
-const x = { foo: 'bar' };
-const y = x;
-y.foo = 'baz';
-x === y; // true
-```
-
-Embora `y` foi editado, desde que sua referência para o objeto `x`, essa comparação retorna `true`. Você pode escrever um código similar com immutable.js:
-
-```javascript
-const SomeRecord = Immutable.Record({ foo: null });
-const x = new SomeRecord({ foo: 'bar' });
-const y = x.set('foo', 'baz');
-const z = x.set('foo', 'bar');
-x === y; // false
-x === z; // true
-```
-
-Nesse caso, já que uma nova referência é retornada quando mutamos `x`, nós podemos usar a referência para checar a equalidade `(x === y)` para verificar que o novo valor armazenado em `y` é diferente que o valor original em `x`.
-
-Outras bibliotecas que podem ajudar a usar dados imutáveis são [Immer](https://github.com/mweststrate/immer), [immutability-helper](https://github.com/kolodny/immutability-helper), e [seamless-immutable](https://github.com/rtfeldman/seamless-immutable).
-
-Estruturas de dados imutáveis fornecem para você uma maneira barata para rastrear mudanças em objetos, no qual é tudo que nós precisamos para implementar `shouldComponentUpdate`. Isso pode oferecer a você um bom impulsionamento de performance.
+Quando você lida com objetos profundamente aninhados, atualizá-los de maneira imutável pode parecer complicado. Se você enfrentar esse problema, consulte [Immer](https://github.com/mweststrate/immer) or [immutability-helper](https://github.com/kolodny/immutability-helper). Essas bibliotecas permitem escrever código altamente legível sem perder os benefícios da imutabilidade.
diff --git a/content/docs/reference-profiler.md b/content/docs/reference-profiler.md
index f65dbd23a..58a9e41c9 100644
--- a/content/docs/reference-profiler.md
+++ b/content/docs/reference-profiler.md
@@ -44,7 +44,7 @@ render(
-
+
);
```
diff --git a/content/docs/reference-test-renderer.md b/content/docs/reference-test-renderer.md
index 7447847aa..de07481d3 100644
--- a/content/docs/reference-test-renderer.md
+++ b/content/docs/reference-test-renderer.md
@@ -103,7 +103,7 @@ expect(testInstance.findByProps({className: "sub"}).children).toEqual(['Sub']);
TestRenderer.create(element, options);
```
-Cria uma instância do `TestRenderer` com o elemento React fornecido. Este método não usa o DOM real, mas ainda renderiza completamente a árvore de componentes na memória para que você possa fazer verificações sobre ela. A instância retornada possui os seguintes métodos e propriedades.
+Cria uma instância do `TestRenderer` com o elemento React fornecido. Este método não usa o DOM real, mas ainda renderiza completamente a árvore de componentes na memória para que você possa fazer verificações sobre ela. Retorna uma [instância TestRender](#testrenderer-instance).
### `TestRenderer.act()` {#testrendereract}
diff --git a/content/docs/render-props.md b/content/docs/render-props.md
index 238f99350..061d0332b 100644
--- a/content/docs/render-props.md
+++ b/content/docs/render-props.md
@@ -14,7 +14,7 @@ Um componente com uma _render prop_ recebe uma função que retorna um elemento
)}/>
```
-Bibliotecas que usam render props incluem [React Router](https://reacttraining.com/react-router/web/api/Route/render-func) e [Downshift](https://github.com/paypal/downshift).
+Bibliotecas que usam render props incluem [React Router](https://reacttraining.com/react-router/web/api/Route/render-func), [Downshift](https://github.com/paypal/downshift) e [Formik](https://github.com/jaredpalmer/formik).
Nesse documento vamos discutir por que _render props_ são úteis e como escrevê-las.
diff --git a/content/docs/static-type-checking.md b/content/docs/static-type-checking.md
index 9f5d2f32b..2de584b1f 100644
--- a/content/docs/static-type-checking.md
+++ b/content/docs/static-type-checking.md
@@ -88,13 +88,13 @@ Se você configurou o Babel manualmente no seu projeto, precisará instalar um p
Se você usa [Yarn](https://yarnpkg.com/), execute:
```bash
-yarn add --dev babel-preset-flow
+yarn add --dev @babel/preset-flow
```
Se você usa [npm](https://www.npmjs.com/), execute:
```bash
-npm install --save-dev babel-preset-flow
+npm install --save-dev @babel/preset-flow
```
Então adicione o preset `flow` à sua [configuração do Babel](https://babeljs.io/docs/usage/babelrc/). Por exemplo, se você configura o Babel através do arquivo `.babelrc`, pode ficar parecido com isto:
@@ -102,7 +102,7 @@ Então adicione o preset `flow` à sua [configuração do Babel](https://babeljs
```js{3}
{
"presets": [
- "flow",
+ "@babel/preset-flow",
"react"
]
}
diff --git a/content/docs/testing-recipes.md b/content/docs/testing-recipes.md
index 609d3d74a..dd7efa5b4 100644
--- a/content/docs/testing-recipes.md
+++ b/content/docs/testing-recipes.md
@@ -14,8 +14,9 @@ Common testing patterns for React components.
On this page, we will primarily use function components. However, these testing strategies don't depend on implementation details, and work just as well for class components too.
-- [Setup/Teardown ](#setup--teardown)
+- [Setup/Teardown](#setup--teardown)
- [`act()`](#act)
+- [Rendering](#rendering)
- [Data Fetching](#data-fetching)
- [Mocking Modules](#mocking-modules)
- [Events](#events)
diff --git a/content/docs/testing.md b/content/docs/testing.md
index cf2de4c44..5bccd1fc4 100644
--- a/content/docs/testing.md
+++ b/content/docs/testing.md
@@ -28,7 +28,7 @@ Different answers may work for different teams and products.
### Recommended Tools {#tools}
-**[Jest](https://facebook.github.io/jest/)** is a JavaScript test runner that lets you access the DOM via [`jsdom`](#mocking-a-rendering-surface). While jsdom is only an approximation of how the browser works, it is often good enough for testing React components. Jest provides a great iteration speed combined with powerful features like mocking [modules](#mocking-modules) and [timers](#mocking-timers) so you can have more control over how the code executes.
+**[Jest](https://facebook.github.io/jest/)** is a JavaScript test runner that lets you access the DOM via [`jsdom`](/docs/testing-environments.html#mocking-a-rendering-surface). While jsdom is only an approximation of how the browser works, it is often good enough for testing React components. Jest provides a great iteration speed combined with powerful features like mocking [modules](/docs/testing-environments.html#mocking-modules) and [timers](/docs/testing-environments.html#mocking-timers) so you can have more control over how the code executes.
**[React Testing Library](https://testing-library.com/react)** is a set of helpers that let you test React components without relying on their implementation details. This approach makes refactoring a breeze and also nudges you towards best practices for accessibility. Although it doesn't provide a way to "shallowly" render a component without its children, a test runner like Jest lets you do this by [mocking](/docs/testing-recipes.html#mocking-modules).
diff --git a/content/images/blog/devtools-component-filters.gif b/content/images/blog/devtools-component-filters.gif
new file mode 100644
index 000000000..287c66757
Binary files /dev/null and b/content/images/blog/devtools-component-filters.gif differ
diff --git a/content/images/blog/devtools-v4-screenshot.png b/content/images/blog/devtools-v4-screenshot.png
new file mode 100644
index 000000000..83a67d548
Binary files /dev/null and b/content/images/blog/devtools-v4-screenshot.png differ
diff --git a/content/languages.yml b/content/languages.yml
index cd9d70744..51fb6f8af 100644
--- a/content/languages.yml
+++ b/content/languages.yml
@@ -59,6 +59,10 @@
translated_name: हिन्दी
code: hi
status: 0
+- name: Hungarian
+ translated_name: magyar
+ code: hu
+ status: 0
- name: Armenian
translated_name: Հայերեն
code: hy
@@ -174,7 +178,7 @@
- name: Vietnamese
translated_name: Tiếng Việt
code: vi
- status: 0
+ status: 1
- name: Simplified Chinese
translated_name: 简体中文
code: zh-hans
diff --git a/src/components/CodeEditor/CodeEditor.js b/src/components/CodeEditor/CodeEditor.js
index 1438ea94a..b911b25c9 100644
--- a/src/components/CodeEditor/CodeEditor.js
+++ b/src/components/CodeEditor/CodeEditor.js
@@ -271,7 +271,7 @@ class CodeEditor extends Component {
_updateState(code, showJSX = true) {
try {
- let newState = {
+ const newState = {
compiled: compileES5(code),
error: null,
};