Skip to content

Commit

Permalink
Fix: server picker validates unselected option (#11020)
Browse files Browse the repository at this point in the history
* add aria-label to default homeserver checkbox

* test ServerPickerDialog

* remove debug

* strict fixes

* dont validate unselected server field on ServerPickerDialog

* i18n
  • Loading branch information
Kerry committed Jun 1, 2023
1 parent a28f44a commit 143ffcc
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 8 deletions.
8 changes: 6 additions & 2 deletions src/components/views/dialogs/ServerPickerDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,19 @@ export default class ServerPickerDialog extends React.PureComponent<IProps, ISta
private onSubmit = async (ev: SyntheticEvent): Promise<void> => {
ev.preventDefault();

if (this.state.defaultChosen) {
this.props.onFinished(this.defaultServer);
}

const valid = await this.fieldRef.current?.validate({ allowEmpty: false });

if (!valid && !this.state.defaultChosen) {
if (!valid) {
this.fieldRef.current?.focus();
this.fieldRef.current?.validate({ allowEmpty: false, focused: true });
return;
}

this.props.onFinished(this.state.defaultChosen ? this.defaultServer : this.validatedConf);
this.props.onFinished(this.validatedConf);
};

public render(): React.ReactNode {
Expand Down
6 changes: 0 additions & 6 deletions test/components/views/dialogs/ServerPickerDialog-test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,6 @@ describe("<ServerPickerDialog />", () => {

fireEvent.click(screen.getByText("Continue"));

// serverpicker still validates the 'other homeserver' field on submit
// when default is chosen
// so this throws a lot of errors into the console
// and is asynchronous while waiting for validation
await flushPromises();

// closed dialog with default server
expect(onFinished).toHaveBeenCalledWith(defaultServerConfig);
});
Expand Down

0 comments on commit 143ffcc

Please sign in to comment.