Skip to content

Commit

Permalink
Merge pull request #733 from dennis531/input-field-blur
Browse files Browse the repository at this point in the history
Add keyboard keys to remove focus on input fields
  • Loading branch information
Arnei committed Jul 12, 2024
2 parents a0ab426 + ce7cc7b commit 401825b
Show file tree
Hide file tree
Showing 23 changed files with 63 additions and 22 deletions.
3 changes: 2 additions & 1 deletion src/components/configuration/partials/wizard/BumperPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import React from "react";
import { useTranslation } from "react-i18next";
import WizardNavigationButtons from "../../../shared/wizard/WizardNavigationButtons";
import FileUpload from "../../../shared/wizard/FileUpload";
import { Field, FormikProps } from "formik";
import { FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import Notifications from "../../../shared/Notifications";

/**
Expand Down
3 changes: 2 additions & 1 deletion src/components/configuration/partials/wizard/GeneralPage.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import React from "react";
import { useTranslation } from "react-i18next";
import Notifications from "../../../shared/Notifications";
import { Field, FormikProps } from "formik";
import { FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import WizardNavigationButtons from "../../../shared/wizard/WizardNavigationButtons";

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from "react";
import { useTranslation } from "react-i18next";
import { Field, FormikProps } from "formik";
import { FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import WizardNavigationButtons from "../../../shared/wizard/WizardNavigationButtons";
import FileUpload from "../../../shared/wizard/FileUpload";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import React from "react";
import { useTranslation } from "react-i18next";
import cn from "classnames";
import { Field, FormikProps } from "formik";
import { FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import WizardNavigationButtons from "../../../shared/wizard/WizardNavigationButtons";
import FileUpload from "../../../shared/wizard/FileUpload";
import Notifications from "../../../shared/Notifications";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from "react";
import { useTranslation } from "react-i18next";
import { Field, Formik } from "formik";
import { Formik } from "formik";
import { Field } from "../../../shared/Field";
import cn from "classnames";
import _ from "lodash";
import Notifications from "../../../shared/Notifications";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from "react";
import { useTranslation } from "react-i18next";
import { Field, Formik } from "formik";
import { Formik } from "formik";
import { Field } from "../../../shared/Field";
import cn from "classnames";
import _ from "lodash";
import Notifications from "../../../shared/Notifications";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import React, { useEffect } from "react";
import { useTranslation } from "react-i18next";
import cn from "classnames";
import { Field, FieldArray, FormikProps } from "formik";
import { FieldArray, FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import Notifications from "../../../shared/Notifications";
import RenderField from "../../../shared/wizard/RenderField";
import { getTimezoneOffset, hasAccess } from "../../../../utils/utils";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import React, { useEffect } from "react";
import cn from "classnames";
import _ from "lodash";
import { DatePicker } from "@mui/x-date-pickers/DatePicker";
import { Field, Formik } from "formik";
import { Formik } from "formik";
import { Field } from "../../../shared/Field";
import Notifications from "../../../shared/Notifications";
import {
getSchedulingConflicts,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import {
fetchAclTemplates,
fetchRolesWithTarget,
} from "../../../../slices/aclSlice";
import { Field, FieldArray } from "formik";
import { FieldArray } from "formik";
import { Field } from "../../../shared/Field";
import RenderMultiField from "../../../shared/wizard/RenderMultiField";
import { getUserInformation } from "../../../../selectors/userInfoSelectors";
import { hasAccess } from "../../../../utils/utils";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from "react";
import { useTranslation } from "react-i18next";
import { Field, FormikProps } from "formik";
import { FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import RenderMultiField from "../../../shared/wizard/RenderMultiField";
import RenderField from "../../../shared/wizard/RenderField";
import WizardNavigationButtons from "../../../shared/wizard/WizardNavigationButtons";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from "react";
import { useTranslation } from "react-i18next";
import { Field, FormikProps } from "formik";
import { FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import RenderField from "../../../shared/wizard/RenderField";
import WizardNavigationButtons from "../../../shared/wizard/WizardNavigationButtons";
import RenderMultiField from "../../../shared/wizard/RenderMultiField";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ import {
getTimezoneOffset,
translateOverrideFallback,
} from "../../../../utils/utils";
import { Field, FieldArray, FormikProps } from "formik";
import { FieldArray, FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import RenderField from "../../../shared/wizard/RenderField";
import { getRecordings } from "../../../../selectors/recordingSelectors";
import { sourceMetadata } from "../../../../configs/sourceConfig";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React, { useEffect, useState } from "react";
import { Formik, Field } from "formik";
import { Formik } from "formik";
import { Field } from "../../../shared/Field";
import { useTranslation } from "react-i18next";
import { getSelectedRows } from "../../../../selectors/tableSelectors";
import { connect } from "react-redux";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from "react";
import { v4 as uuidv4 } from "uuid";
import { Field, FormikProps } from "formik";
import { FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import {
getWorkflowDefById,
} from "../../../../selectors/workflowSelectors";
Expand Down
19 changes: 19 additions & 0 deletions src/components/shared/Field.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { Field as FormikField } from "formik";
import { FieldAttributes } from "formik/dist/Field";

/**
* Wrapper for the Formik Fields
*/
export const Field = (props: FieldAttributes<any>) => {
return (
<FormikField
{...props}
onKeyDown={(event: KeyboardEvent) => {
// Handler for basic html inputs to remove focus, if no custom component is passed
if (event.key === "Enter" || event.key === "Escape") {
(event.currentTarget as HTMLInputElement).blur();
}
}}
/>
);
};
3 changes: 2 additions & 1 deletion src/components/shared/RegistrationModal.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React, { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import { Field, Formik } from "formik";
import { Formik } from "formik";
import { Field } from "./Field";
import TermsOfUsePage from "./modals/TermsOfUsePage";
import { countries, states } from "../../configs/adopterRegistrationConfig";
import cn from "classnames";
Expand Down
3 changes: 2 additions & 1 deletion src/components/shared/TimeSeriesStatistics.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import React from "react";
import moment from "moment";
import { getCurrentLanguageInformation } from "../../utils/utils";
import { DatePicker } from "@mui/x-date-pickers/DatePicker";
import { Field, Formik } from "formik";
import { Formik } from "formik";
import { Field } from "./Field";
import BarChart from "./BarChart";
import {
availableCustomStatisticDataResolutions,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ import {
fetchRolesWithTarget,
} from "../../../slices/aclSlice";
import Notifications from "../Notifications";
import { Formik, Field, FieldArray, FormikErrors } from "formik";
import { Formik, FieldArray, FormikErrors } from "formik";
import { Field } from "../Field";
import { NOTIFICATION_CONTEXT } from "../../../configs/modalConfig";
import {
createPolicy,
Expand Down
3 changes: 2 additions & 1 deletion src/components/users/partials/wizard/AclAccessPage.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import React, { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import cn from "classnames";
import { Field, FieldArray, FormikProps } from "formik";
import { FieldArray, FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import Notifications from "../../../shared/Notifications";
import RenderMultiField from "../../../shared/wizard/RenderMultiField";
import {
Expand Down
3 changes: 2 additions & 1 deletion src/components/users/partials/wizard/AclMetadataPage.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from "react";
import { useTranslation } from "react-i18next";
import { Field, FormikProps } from "formik";
import { FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import WizardNavigationButtons from "../../../shared/wizard/WizardNavigationButtons";

/**
Expand Down
3 changes: 2 additions & 1 deletion src/components/users/partials/wizard/EditUserGeneralTab.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import React from "react";
import { useTranslation } from "react-i18next";
import cn from "classnames";
import { Field, FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import { FormikProps } from "formik";

/**
* This component renders the general user information tab in the users details modal.
Expand Down
3 changes: 2 additions & 1 deletion src/components/users/partials/wizard/GroupMetadataPage.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import React from "react";
import WizardNavigationButtons from "../../../shared/wizard/WizardNavigationButtons";
import { useTranslation } from "react-i18next";
import { Field, FormikProps } from "formik";
import { FormikProps } from "formik";
import { Field } from "../../../shared/Field";

/**
* This component renders the metadata page for groups in the new groups wizard and group details modal
Expand Down
3 changes: 2 additions & 1 deletion src/components/users/partials/wizard/NewUserGeneralTab.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from "react";
import { Field, FormikProps } from "formik";
import { Field } from "../../../shared/Field";
import { FormikProps } from "formik";
import Notifications from "../../../shared/Notifications";
import { useTranslation } from "react-i18next";
import cn from "classnames";
Expand Down

0 comments on commit 401825b

Please sign in to comment.