Skip to content

Commit

Permalink
馃憤 close #3712 stop watch trigger re-render with onBlur (#3716)
Browse files Browse the repository at this point in the history
* close #3712 watch trigger re-render with onBlur

* fix automation tests
  • Loading branch information
bluebill1049 committed Dec 17, 2020
1 parent 9fe58e8 commit c74dc0b
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
2 changes: 1 addition & 1 deletion cypress/integration/conditionalField.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,6 @@ describe('ConditionalField', () => {
}),
);

cy.get('#renderCount').contains('36');
cy.get('#renderCount').contains('34');
});
});
16 changes: 8 additions & 8 deletions cypress/integration/watchUseFieldArray.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
describe('watchUseFieldArray', () => {
it('should behaviour correctly when watching the field array', () => {
it.only('should behaviour correctly when watching the field array', () => {

This comment has been minimized.

Copy link
@aaronjensen

aaronjensen Dec 17, 2020

Contributor

Looks like an only was left here

This comment has been minimized.

Copy link
@bluebill1049

bluebill1049 Dec 17, 2020

Author Member

oh shit...

cy.visit('http://localhost:3000/watch-field-array/normal');

cy.get('#append').click();
Expand All @@ -9,38 +9,38 @@ describe('watchUseFieldArray', () => {
cy.get('#result').contains('[{"name":"2test"}]');

cy.get('#prepend').click();
cy.get('#result').contains('[{"name":"9"},{"name":"2test"}]');
cy.get('#result').contains('[{"name":"8"},{"name":"2test"}]');

cy.get('#append').click();
cy.get('#append').click();
cy.get('#append').click();
cy.get('#result').contains(
'[{"name":"9"},{"name":"2test"},{"name":"12"},{"name":"15"},{"name":"18"}]',
'[{"name":"8"},{"name":"2test"},{"name":"10"},{"name":"12"},{"name":"14"}]',
);

cy.get('#swap').click();
cy.get('#result').contains(
'[{"name":"9"},{"name":"12"},{"name":"2test"},{"name":"15"},{"name":"18"}]',
'[{"name":"8"},{"name":"10"},{"name":"2test"},{"name":"12"},{"name":"14"}]',
);

cy.get('#move').click();
cy.get('#result').contains(
'[{"name":"2test"},{"name":"9"},{"name":"12"},{"name":"15"},{"name":"18"}]',
'[{"name":"2test"},{"name":"8"},{"name":"10"},{"name":"12"},{"name":"14"}]',
);

cy.get('#insert').click();
cy.get('#result').contains(
'[{"name":"2test"},{"name":"25"},{"name":"9"},{"name":"12"},{"name":"15"},{"name":"18"}]',
'[{"name":"2test"},{"name":"20"},{"name":"8"},{"name":"10"},{"name":"12"},{"name":"14"}]',
);

cy.get('#remove').click();
cy.get('#result').contains(
'[{"name":"2test"},{"name":"9"},{"name":"12"},{"name":"15"},{"name":"18"}]',
'[{"name":"2test"},{"name":"8"},{"name":"10"},{"name":"12"},{"name":"14"}]',
);

cy.get('#removeAll').click();
cy.get('#result').contains('[]');
cy.get('#renderCount').contains('32');
cy.get('#renderCount').contains('26');
});

it('should return empty when items been removed and defaultValues are supplied', () => {
Expand Down
6 changes: 3 additions & 3 deletions src/useForm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -559,7 +559,7 @@ export function useForm<
let state = updateAndGetDirtyState(name, false);
let shouldRender =
!isEmptyObject(state) ||
isFieldWatched(name as FieldName<TFieldValues>);
(!isBlurEvent && isFieldWatched(name as FieldName<TFieldValues>));

if (
isBlurEvent &&
Expand All @@ -582,7 +582,7 @@ export function useForm<
}

if (shouldSkipValidation) {
renderWatchedInputs(name);
!isBlurEvent && renderWatchedInputs(name);
return (
(!isEmptyObject(state) ||
(shouldRender && isEmptyObject(state))) &&
Expand Down Expand Up @@ -633,7 +633,7 @@ export function useForm<
)[name];
}

renderWatchedInputs(name);
!isBlurEvent && renderWatchedInputs(name);
shouldRenderBaseOnError(name, error, shouldRender, state, isValid);
}
};
Expand Down

0 comments on commit c74dc0b

Please sign in to comment.