From e57aac93f60c14e7f0906f864f2bf7e289e4cc2a Mon Sep 17 00:00:00 2001 From: Johannes Klein Date: Sat, 4 Feb 2023 15:18:42 +0100 Subject: [PATCH] 418 create an index.js file for importing shared components (#427) * Update .eslintrc.js * Create index.js * Change Button usage in GridItem * Replace imports * Add strings * Add hint prop to button * Add a11y hint prop to EvidenceButton * Add EvidenceButton to index * Add a11y props to EvidenceButton * Update UiLibrary.js * Add a11y props to CloseButton * Add CloseButton to index and UiLib * Rename function * Update string * Add a11y props to AddObsButton * Add Tabs to index * Linebreak * Add Typography to index * Remove unused text * Refactor UserIcon test coverage in it's own test * Add UserIcon to index * Add UserIcon to UiLib * Add InlineUser to index * Add Quality badge to index * Update UiLibrary.js * Remove unused component * Change AddObsButton a11y label * Change hint * Use consistent uri in snapshots * Add snapshot to InlineUser * Fix wrong user key * Update Tabs.test.js * Snapshot TODO * Update NavButton.js * Update snapshot * Add snapshot for active user icon * Remove snapshot result * Add ActivityCount to index * Update UiLibrary.js --- .eslintrc.js | 5 + src/components/About.js | 2 +- src/components/AddObsModal.js | 4 +- src/components/Camera/StandardCamera.js | 8 +- src/components/Identify/GridItem.js | 5 +- src/components/LoginSignUp/Login.js | 2 +- src/components/LoginSignUp/Logout.js | 2 +- src/components/Messages/Messages.js | 2 +- src/components/ObsDetails/ActivityItem.js | 2 +- src/components/ObsDetails/ActivityTab.js | 5 +- src/components/ObsDetails/ObsDetails.js | 8 +- src/components/ObsEdit/AddEvidenceModal.js | 11 +- .../ObsEdit/DeleteObservationDialog.js | 2 +- .../ObsEdit/IdentificationSection.js | 2 +- src/components/ObsEdit/LocationPicker.js | 2 +- src/components/ObsEdit/ObsEdit.js | 2 +- src/components/ObsEdit/SaveDialog.js | 2 +- src/components/Observations/LoginPrompt.js | 2 +- src/components/Observations/ObsCardStats.js | 3 +- .../PhotoImporter/GroupPhotosFooter.js | 2 +- src/components/PhotoImporter/PhotoGallery.js | 2 +- src/components/Projects/ProjectTabs.js | 2 +- .../{ => ActivityCount}/ActivityCount.js | 0 .../SharedComponents/Buttons/AddObsButton.js | 3 +- .../SharedComponents/Buttons/Button.js | 7 +- .../SharedComponents/Buttons/CloseButton.js | 4 +- .../Buttons/EvidenceButton.js | 8 +- .../{ => InlineUser}/InlineUser.js | 3 +- .../SharedComponents/NavBar/NavButton.js | 2 +- .../SharedComponents/QualityBadge.js | 19 --- .../QualityGradeStatus.js | 5 +- .../SharedComponents/{ => Tabs}/Tabs.js | 2 +- .../{ => UserIcon}/UserIcon.js | 0 src/components/SharedComponents/index.js | 19 +++ src/components/UiLibrary.js | 115 ++++++++++++++---- src/components/UserProfile/UserProfile.js | 3 +- src/components/styledComponents.js | 6 - src/i18n/l10n/en.ftl | 21 +++- src/i18n/l10n/en.ftl.json | 20 ++- src/i18n/strings.ftl | 21 +++- .../components/ObsDetails/ObsDetails.test.js | 1 - .../{ => InlineUser}/InlineUser.test.js | 35 +++++- .../UserIcon/UserIcon.test.js | 33 +++++ .../__snapshots__/UserIcon.test.js.snap | 107 ++++++++++++++++ tests/unit/components/Tabs.test.js | 2 +- 45 files changed, 390 insertions(+), 123 deletions(-) rename src/components/SharedComponents/{ => ActivityCount}/ActivityCount.js (100%) rename src/components/SharedComponents/{ => InlineUser}/InlineUser.js (96%) delete mode 100644 src/components/SharedComponents/QualityBadge.js rename src/components/SharedComponents/{ => QualityGradeStatus}/QualityGradeStatus.js (94%) rename src/components/SharedComponents/{ => Tabs}/Tabs.js (95%) rename src/components/SharedComponents/{ => UserIcon}/UserIcon.js (100%) create mode 100644 src/components/SharedComponents/index.js rename tests/unit/components/SharedComponents/{ => InlineUser}/InlineUser.test.js (71%) create mode 100644 tests/unit/components/SharedComponents/UserIcon/UserIcon.test.js create mode 100644 tests/unit/components/SharedComponents/UserIcon/__snapshots__/UserIcon.test.js.snap diff --git a/.eslintrc.js b/.eslintrc.js index 86c9c995f..f9d3f5b79 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -49,6 +49,11 @@ module.exports = { // raise alarms when you try to import things not declared in // package.json. "import/no-extraneous-dependencies": ["error", {}], + "import/extensions": [2, { + js: "never", + jsx: "never", + json: "always" + }], "max-len": [ "error", 100, diff --git a/src/components/About.js b/src/components/About.js index cf4d33b86..062ffca23 100644 --- a/src/components/About.js +++ b/src/components/About.js @@ -1,6 +1,6 @@ // @flow -import Button from "components/SharedComponents/Buttons/Button"; +import { Button } from "components/SharedComponents"; import { fontMonoClass, Text, View } from "components/styledComponents"; diff --git a/src/components/AddObsModal.js b/src/components/AddObsModal.js index 085170ba1..ca3a0ffdc 100644 --- a/src/components/AddObsModal.js +++ b/src/components/AddObsModal.js @@ -78,7 +78,7 @@ const AddObsModal = ( { closeModal }: Props ): React.Node => { "camera", "mx-5", navToStandardCamera, - t( "Navigate-to-camera" ), + t( "Navigates-to-camera" ), "camera-button" )} {renderIconButton( @@ -108,7 +108,7 @@ const AddObsModal = ( { closeModal }: Props ): React.Node => { "microphone", "mx-2", navToSoundRecorder, - t( "Navigate-to-sound-recorder" ), + t( "Navigates-to-sound-recorder" ), "record-sound-button" )} diff --git a/src/components/Camera/StandardCamera.js b/src/components/Camera/StandardCamera.js index 994666af7..bd756396e 100644 --- a/src/components/Camera/StandardCamera.js +++ b/src/components/Camera/StandardCamera.js @@ -1,7 +1,7 @@ // @flow import { useNavigation, useRoute } from "@react-navigation/native"; -import CloseButton from "components/SharedComponents/Buttons/CloseButton"; +import { CloseButton } from "components/SharedComponents"; import { Pressable, View } from "components/styledComponents"; @@ -138,7 +138,7 @@ const StandardCamera = ( ): Node => { navigation.navigate( "ObsEdit" ); }; - const renderAddObsButtons = icon => { + const renderFlashButton = icon => { let testID = ""; let accessibilityLabel = ""; switch ( icon ) { @@ -180,8 +180,8 @@ const StandardCamera = ( ): Node => { {hasFlash ? ( {takePhotoOptions.flash === "on" - ? renderAddObsButtons( "flash-on-circle" ) - : renderAddObsButtons( "camera" )} + ? renderFlashButton( "flash-on-circle" ) + : renderFlashButton( "camera" )} ) : ( diff --git a/src/components/Identify/GridItem.js b/src/components/Identify/GridItem.js index c75638b11..4d86b9cbe 100644 --- a/src/components/Identify/GridItem.js +++ b/src/components/Identify/GridItem.js @@ -1,7 +1,7 @@ // @flow import createIdentification from "api/identifications"; -import Button from "components/SharedComponents/Buttons/Button"; +import { Button } from "components/SharedComponents"; import { t } from "i18next"; import type { Node } from "react"; import React, { useState } from "react"; @@ -88,9 +88,10 @@ const GridItem = ( {