From 8076b56f3718d6fe054b660a838f2c1c6890ffc2 Mon Sep 17 00:00:00 2001 From: Tim Roes Date: Fri, 3 Jun 2022 19:22:49 +0200 Subject: [PATCH] ESLint rule for interface over type (#13451) --- airbyte-webapp/.eslintrc | 1 + airbyte-webapp/src/components/BarChart/BarChart.tsx | 4 ++-- .../src/components/Breadcrumbs/Breadcrumbs.tsx | 4 ++-- .../components/ConnectionBlock/ConnectionBlock.tsx | 4 ++-- .../components/ConnectionBlockItem.tsx | 4 ++-- .../components/ConnectorBlocks/TableItemTitle.tsx | 4 ++-- .../src/components/ConnectorCard/ConnectorCard.tsx | 4 ++-- .../src/components/ContentCard/ContentCard.tsx | 4 ++-- .../CreateConnectionContent.tsx | 4 ++-- .../components/TryAfterErrorBlock.tsx | 4 ++-- .../src/components/DeleteBlock/DeleteBlock.tsx | 4 ++-- .../EmptyResourceBlock/EmptyResourceBlock.tsx | 4 ++-- .../src/components/EntityTable/ConnectionTable.tsx | 4 ++-- .../components/EntityTable/ImplementationTable.tsx | 4 ++-- .../EntityTable/components/ConnectEntitiesCell.tsx | 4 ++-- .../components/ConnectionSettingsCell.tsx | 4 ++-- .../EntityTable/components/ConnectorCell.tsx | 4 ++-- .../EntityTable/components/FrequencyCell.tsx | 4 ++-- .../EntityTable/components/LastSyncCell.tsx | 4 ++-- .../EntityTable/components/SortButton.tsx | 4 ++-- .../EntityTable/components/StatusCell.tsx | 4 ++-- airbyte-webapp/src/components/EntityTable/types.ts | 8 ++++---- .../src/components/FileDropZone/FileDropZone.tsx | 4 ++-- .../src/components/GroupControls/GroupControls.tsx | 4 ++-- .../src/components/HeadTitle/HeadTitle.tsx | 12 ++++++------ .../src/components/ImageBlock/ImageBlock.tsx | 4 ++-- airbyte-webapp/src/components/JobItem/JobItem.tsx | 4 ++-- .../JobItem/components/AttemptDetails.tsx | 4 ++-- .../JobItem/components/ContentWrapper.tsx | 4 ++-- .../JobItem/components/DebugInfoButton.tsx | 4 ++-- .../JobItem/components/DebugInfoDetailsModal.tsx | 4 ++-- .../components/JobItem/components/ErrorDetails.tsx | 4 ++-- .../src/components/JobItem/components/JobLogs.tsx | 4 ++-- .../src/components/JobItem/components/Logs.tsx | 4 ++-- .../src/components/JobItem/components/MainInfo.tsx | 4 ++-- airbyte-webapp/src/components/Label/Label.tsx | 4 ++-- .../src/components/LabeledControl/ControlLabels.tsx | 4 ++-- airbyte-webapp/src/components/Link/Link.tsx | 4 ++-- .../src/components/LoadingPage/LoadingPage.tsx | 4 ++-- .../MainPageWithScroll/MainPageWithScroll.tsx | 4 ++-- airbyte-webapp/src/components/Markdown/Markdown.tsx | 4 ++-- airbyte-webapp/src/components/Modal/Modal.tsx | 4 ++-- .../src/components/Placeholder/Placeholder.tsx | 4 ++-- .../src/components/ProgressBar/ProgressBar.tsx | 4 ++-- airbyte-webapp/src/components/SideMenu/SideMenu.tsx | 12 ++++++------ .../src/components/SideMenu/components/MenuItem.tsx | 4 ++-- airbyte-webapp/src/components/SideView/SideView.tsx | 4 ++-- .../src/components/SingletonCard/SingletonCard.tsx | 4 ++-- airbyte-webapp/src/components/Spinner/Spinner.tsx | 4 ++-- .../src/components/StepsMenu/StepsMenu.tsx | 8 ++++---- .../src/components/StepsMenu/components/Step.tsx | 4 ++-- airbyte-webapp/src/components/Table/Table.tsx | 8 ++++---- .../src/components/TextWithHTML/TextWithHTML.tsx | 4 ++-- airbyte-webapp/src/components/ToolTip/ToolTip.tsx | 4 ++-- airbyte-webapp/src/components/Version/Version.tsx | 4 ++-- .../components/base/DropDown/components/Option.tsx | 4 ++-- .../components/base/DropDown/components/Text.tsx | 4 ++-- .../src/components/base/TagInput/TagItem.tsx | 8 ++++---- .../src/components/base/Titles/Titles.tsx | 4 ++-- airbyte-webapp/src/config/ConfigServiceProvider.tsx | 4 ++-- airbyte-webapp/src/config/configProviders.test.ts | 4 ++-- airbyte-webapp/src/config/types.ts | 4 ++-- airbyte-webapp/src/core/domain/catalog/fieldUtil.ts | 8 ++++---- airbyte-webapp/src/core/domain/catalog/models.ts | 4 ++-- airbyte-webapp/src/core/domain/logs/LogsService.tsx | 4 +++- airbyte-webapp/src/core/form/types.ts | 12 ++++++++---- airbyte-webapp/src/core/servicesProvider.tsx | 8 ++++---- .../services/Analytics/useAnalyticsService.tsx | 4 ++-- airbyte-webapp/src/hooks/services/Feature/types.tsx | 8 ++++---- .../src/hooks/services/Notification/types.ts | 12 ++++++------ .../hooks/services/Onboarding/OnboardingService.tsx | 4 ++-- .../src/hooks/services/useConnectionHook.tsx | 12 +++++++----- airbyte-webapp/src/hooks/services/useConnector.tsx | 4 ++-- .../src/hooks/services/useDestinationHook.tsx | 13 +++++++++---- .../src/hooks/services/useRequestConnector.tsx | 4 ++-- airbyte-webapp/src/hooks/services/useSourceHook.tsx | 13 +++++++++---- airbyte-webapp/src/hooks/services/useWorkspace.tsx | 4 ++-- .../src/packages/cloud/services/auth/reducer.ts | 4 ++-- .../src/packages/cloud/services/config/types.ts | 4 ++-- .../cloud/views/auth/SignupPage/SignupPage.tsx | 4 ++-- .../packages/cloud/views/auth/components/Header.tsx | 4 ++-- .../CreditsPage/components/ConnectionCell.tsx | 4 ++-- .../credits/CreditsPage/components/UsageCell.tsx | 4 ++-- .../components/UsagePerConnectionTable.tsx | 4 ++-- .../InsufficientPermissionsErrorBoundary.tsx | 5 ++++- .../components/EmailSection/typings.d.ts | 4 ++-- .../components/PasswordSection/typings.d.ts | 4 ++-- .../cloud/views/users/InviteUsersModal/types.ts | 4 ++-- .../components/CreateWorkspaceForm.tsx | 4 ++-- .../components/ConnectionsTable.tsx | 4 ++-- .../components/ConnectionName.tsx | 4 ++-- .../ConnectionItemPage/components/JobsList.tsx | 4 ++-- .../ConnectionItemPage/components/SettingsView.tsx | 4 ++-- .../CreationFormPage/components/CheckConnection.tsx | 4 ++-- .../components/ExistingEntityForm.tsx | 4 ++-- .../components/DestinationsTable.tsx | 4 ++-- .../components/DestinationConnectionTable.tsx | 4 ++-- .../components/DestinationSettings.tsx | 4 ++-- .../OnboardingPage/components/ConnectionStep.tsx | 4 ++-- .../OnboardingPage/components/DestinationStep.tsx | 4 ++-- .../pages/OnboardingPage/components/LetterLine.tsx | 4 ++-- .../OnboardingPage/components/ProgressBlock.tsx | 4 ++-- .../components/SkipOnboardingButton.tsx | 4 ++-- .../components/StepsCounter/StepsCounter.tsx | 4 ++-- .../components/StepsCounter/components/StepItem.tsx | 4 ++-- .../pages/OnboardingPage/components/TitlesBlock.tsx | 4 ++-- .../OnboardingPage/components/UseCaseBlock.tsx | 4 ++-- .../components/VideoItem/VideoItem.tsx | 4 ++-- .../components/VideoItem/components/PlayButton.tsx | 4 ++-- .../components/VideoItem/components/ShowVideo.tsx | 4 ++-- .../pages/OnboardingPage/components/WelcomeStep.tsx | 4 ++-- .../src/pages/SettingsPage/SettingsPage.tsx | 8 ++++---- .../pages/SettingsPage/components/FeedbackBlock.tsx | 4 ++-- .../pages/AccountPage/components/AccountForm.tsx | 4 ++-- .../components/ImportConfigurationModal.tsx | 4 ++-- .../ConnectorsPage/components/ConnectorCell.tsx | 4 ++-- .../ConnectorsPage/components/ConnectorsView.tsx | 4 ++-- .../ConnectorsPage/components/CreateConnector.tsx | 8 ++++---- .../components/CreateConnectorModal.tsx | 4 ++-- .../pages/ConnectorsPage/components/ImageCell.tsx | 4 ++-- .../ConnectorsPage/components/UpgradeAllButton.tsx | 4 ++-- .../pages/ConnectorsPage/components/VersionCell.tsx | 4 ++-- .../pages/MetricsPage/components/MetricsForm.tsx | 4 ++-- .../components/NotificationsForm.tsx | 4 ++-- .../NotificationPage/components/WebHookForm.tsx | 4 ++-- .../AllSourcesPage/components/SourcesTable.tsx | 4 ++-- .../components/SourceConnectionTable.tsx | 4 ++-- .../src/services/connector/useSuspenseQuery.ts | 4 +++- .../src/services/workspaces/WorkspacesService.tsx | 4 ++-- airbyte-webapp/src/utils/testutils.tsx | 4 ++-- .../Connection/CatalogTree/StreamFieldTable.tsx | 4 ++-- .../views/Connection/CatalogTree/StreamHeader.tsx | 4 ++-- .../Connection/CatalogTree/components/Arrow.tsx | 4 ++-- .../CatalogTree/components/BulkHeader.tsx | 4 ++-- .../CatalogTree/components/DataTypeCell.tsx | 4 ++-- .../CatalogTree/components/PathPopout.tsx | 8 ++++---- .../Connection/CatalogTree/components/Tooltip.tsx | 4 ++-- .../ConnectionForm/components/CreateControls.tsx | 4 ++-- .../ConnectionForm/components/EditControls.tsx | 4 ++-- .../Connection/ConnectionForm/components/Search.tsx | 4 ++-- .../views/Connection/ConnectionForm/formConfig.tsx | 4 ++-- .../views/Connector/ConnectorCard/ConnectorCard.tsx | 4 ++-- .../RequestConnectorModal/RequestConnectorModal.tsx | 4 ++-- .../components/ConnectorForm.tsx | 4 ++-- .../views/Connector/RequestConnectorModal/types.ts | 4 ++-- .../src/views/Connector/ServiceForm/FormRoot.tsx | 4 ++-- .../src/views/Connector/ServiceForm/ServiceForm.tsx | 4 ++-- .../ServiceForm/components/CreateControls.tsx | 4 ++-- .../ServiceForm/components/EditControls.tsx | 4 ++-- .../ServiceForm/components/Property/Label.tsx | 4 ++-- .../components/Property/LabelMessage.tsx | 4 ++-- .../ServiceForm/components/ShowLoadingMessage.tsx | 4 ++-- .../components/TestingConnectionSpinner.tsx | 4 ++-- .../ServiceForm/components/WarningMessage.tsx | 4 ++-- .../Connector/ServiceForm/serviceFormContext.tsx | 4 ++-- .../src/views/Connector/ServiceForm/types.ts | 2 ++ .../src/views/Connector/ServiceForm/utils.ts | 4 ++-- .../SyncCompletedModal/SyncCompletedModal.tsx | 4 ++-- .../components/FeedbackButton.tsx | 4 ++-- .../SyncCompletedModal/components/ModalBody.tsx | 4 ++-- .../Settings/PreferencesForm/PreferencesForm.tsx | 4 ++-- .../PreferencesForm/components/EditControls.tsx | 4 ++-- .../PreferencesForm/components/Feedback.tsx | 4 ++-- .../views/common/ResorceNotFoundErrorBoundary.tsx | 5 ++++- 164 files changed, 390 insertions(+), 361 deletions(-) diff --git a/airbyte-webapp/.eslintrc b/airbyte-webapp/.eslintrc index 16931adccbcc..f132a520cbe5 100644 --- a/airbyte-webapp/.eslintrc +++ b/airbyte-webapp/.eslintrc @@ -48,6 +48,7 @@ "ts-expect-error": "allow-with-description" } ], + "@typescript-eslint/consistent-type-definitions": ["error", "interface"], "@typescript-eslint/ban-types": ["warn"] }, "parser": "@typescript-eslint/parser", diff --git a/airbyte-webapp/src/components/BarChart/BarChart.tsx b/airbyte-webapp/src/components/BarChart/BarChart.tsx index 4c9a9a2fbbd5..41561da351ab 100644 --- a/airbyte-webapp/src/components/BarChart/BarChart.tsx +++ b/airbyte-webapp/src/components/BarChart/BarChart.tsx @@ -2,7 +2,7 @@ import React, { useMemo } from "react"; import { Bar, BarChart as BasicBarChart, CartesianGrid, Label, ResponsiveContainer, XAxis, YAxis } from "recharts"; import { barChartColors, theme } from "theme"; -type BarChartProps = { +interface BarChartProps { data: { name: string; value: number; @@ -10,7 +10,7 @@ type BarChartProps = { legendLabels: string[]; xLabel?: string; yLabel?: string; -}; +} const BarChart: React.FC = ({ data, legendLabels, xLabel, yLabel }) => { const chartLinesColor = theme.greyColor20; diff --git a/airbyte-webapp/src/components/Breadcrumbs/Breadcrumbs.tsx b/airbyte-webapp/src/components/Breadcrumbs/Breadcrumbs.tsx index ca4f62044a1f..6649c479993d 100644 --- a/airbyte-webapp/src/components/Breadcrumbs/Breadcrumbs.tsx +++ b/airbyte-webapp/src/components/Breadcrumbs/Breadcrumbs.tsx @@ -20,9 +20,9 @@ const BreadcrumbsItem = styled.div` } `; -type IProps = { +interface IProps { data: Array<{ name: string | React.ReactNode; onClick?: () => void }>; -}; +} const Breadcrumbs: React.FC = ({ data }) => { const lastIndex = data.length - 1; diff --git a/airbyte-webapp/src/components/ConnectionBlock/ConnectionBlock.tsx b/airbyte-webapp/src/components/ConnectionBlock/ConnectionBlock.tsx index 9f3440e3d92d..600324d4a029 100644 --- a/airbyte-webapp/src/components/ConnectionBlock/ConnectionBlock.tsx +++ b/airbyte-webapp/src/components/ConnectionBlock/ConnectionBlock.tsx @@ -6,11 +6,11 @@ import styled from "styled-components"; import ContentCard from "../ContentCard"; import { ConnectionBlockItem, Content } from "./components/ConnectionBlockItem"; -type IProps = { +interface IProps { className?: string; itemFrom?: { name: string; icon?: string }; itemTo?: { name: string; icon?: string }; -}; +} const LightContentCard = styled(ContentCard)` display: flex; diff --git a/airbyte-webapp/src/components/ConnectionBlock/components/ConnectionBlockItem.tsx b/airbyte-webapp/src/components/ConnectionBlock/components/ConnectionBlockItem.tsx index 443b1c60e544..c9dbacd9ac2e 100644 --- a/airbyte-webapp/src/components/ConnectionBlock/components/ConnectionBlockItem.tsx +++ b/airbyte-webapp/src/components/ConnectionBlock/components/ConnectionBlockItem.tsx @@ -3,10 +3,10 @@ import styled from "styled-components"; import { ConnectorIcon } from "components/ConnectorIcon"; -type IProps = { +interface IProps { name: string; icon?: string; -}; +} export const Content = styled.div` background: ${({ theme }) => theme.lightPrimaryColor}; diff --git a/airbyte-webapp/src/components/ConnectorBlocks/TableItemTitle.tsx b/airbyte-webapp/src/components/ConnectorBlocks/TableItemTitle.tsx index 8d6d0882f117..86ce6e73dca1 100644 --- a/airbyte-webapp/src/components/ConnectorBlocks/TableItemTitle.tsx +++ b/airbyte-webapp/src/components/ConnectorBlocks/TableItemTitle.tsx @@ -9,7 +9,7 @@ import { ReleaseStageBadge } from "components/ReleaseStageBadge"; import { ReleaseStage } from "core/request/AirbyteClient"; import { FeatureItem, useFeatureService } from "hooks/services/Feature"; -type TableItemTitleProps = { +interface TableItemTitleProps { type: "source" | "destination"; dropDownData: DropDownRow.IDataItem[]; onSelect: (item: DropDownRow.IDataItem) => void; @@ -17,7 +17,7 @@ type TableItemTitleProps = { entityName: string; entityIcon?: React.ReactNode; releaseStage?: ReleaseStage; -}; +} const Content = styled.div` display: flex; diff --git a/airbyte-webapp/src/components/ConnectorCard/ConnectorCard.tsx b/airbyte-webapp/src/components/ConnectorCard/ConnectorCard.tsx index 56685c8f7858..29ba103d073e 100644 --- a/airbyte-webapp/src/components/ConnectorCard/ConnectorCard.tsx +++ b/airbyte-webapp/src/components/ConnectorCard/ConnectorCard.tsx @@ -5,12 +5,12 @@ import { ReleaseStageBadge } from "components/ReleaseStageBadge"; import { ReleaseStage } from "core/request/AirbyteClient"; import { getIcon } from "utils/imageUtils"; -type Props = { +interface Props { connectionName: string; icon?: string; connectorName: string; releaseStage?: ReleaseStage; -}; +} const MainComponent = styled.div` display: flex; diff --git a/airbyte-webapp/src/components/ContentCard/ContentCard.tsx b/airbyte-webapp/src/components/ContentCard/ContentCard.tsx index 51ad1c6a6a15..f05cd1d4ba81 100644 --- a/airbyte-webapp/src/components/ContentCard/ContentCard.tsx +++ b/airbyte-webapp/src/components/ContentCard/ContentCard.tsx @@ -3,13 +3,13 @@ import styled from "styled-components"; import { H5, Card } from "components"; -type IProps = { +interface IProps { title?: string | React.ReactNode; className?: string; onClick?: () => void; full?: boolean; light?: boolean; -}; +} const Title = styled(H5)<{ light?: boolean }>` padding: ${({ light }) => (light ? "19px 20px 20px" : "25px 25px 22px")}; diff --git a/airbyte-webapp/src/components/CreateConnectionContent/CreateConnectionContent.tsx b/airbyte-webapp/src/components/CreateConnectionContent/CreateConnectionContent.tsx index 93d6b00a6cf2..8f6ba0328170 100644 --- a/airbyte-webapp/src/components/CreateConnectionContent/CreateConnectionContent.tsx +++ b/airbyte-webapp/src/components/CreateConnectionContent/CreateConnectionContent.tsx @@ -32,13 +32,13 @@ const TryArrow = styled(FontAwesomeIcon)` font-size: 14px; `; -type CreateConnectionContentProps = { +interface CreateConnectionContentProps { additionBottomControls?: React.ReactNode; source: SourceRead; destination: DestinationRead; afterSubmitConnection?: (connection: WebBackendConnectionRead) => void; noTitles?: boolean; -}; +} const CreateConnectionContent: React.FC = ({ source, diff --git a/airbyte-webapp/src/components/CreateConnectionContent/components/TryAfterErrorBlock.tsx b/airbyte-webapp/src/components/CreateConnectionContent/components/TryAfterErrorBlock.tsx index fc321361544f..25fb55108899 100644 --- a/airbyte-webapp/src/components/CreateConnectionContent/components/TryAfterErrorBlock.tsx +++ b/airbyte-webapp/src/components/CreateConnectionContent/components/TryAfterErrorBlock.tsx @@ -16,11 +16,11 @@ const AgainButton = styled(Button)` min-width: 239px; `; -type TryAfterErrorBlockProps = { +interface TryAfterErrorBlockProps { message?: React.ReactNode; onClick: () => void; additionControl?: React.ReactNode; -}; +} const TryAfterErrorBlock: React.FC = ({ message, onClick }) => ( diff --git a/airbyte-webapp/src/components/DeleteBlock/DeleteBlock.tsx b/airbyte-webapp/src/components/DeleteBlock/DeleteBlock.tsx index 680cac1f929e..5c3fe2dab6e6 100644 --- a/airbyte-webapp/src/components/DeleteBlock/DeleteBlock.tsx +++ b/airbyte-webapp/src/components/DeleteBlock/DeleteBlock.tsx @@ -8,10 +8,10 @@ import ContentCard from "components/ContentCard"; import { useConfirmationModalService } from "hooks/services/ConfirmationModal"; import useRouter from "hooks/useRouter"; -type IProps = { +interface IProps { type: "source" | "destination" | "connection"; onDelete: () => Promise; -}; +} const DeleteBlockComponent = styled(ContentCard)` margin-top: 12px; diff --git a/airbyte-webapp/src/components/EmptyResourceBlock/EmptyResourceBlock.tsx b/airbyte-webapp/src/components/EmptyResourceBlock/EmptyResourceBlock.tsx index 09de7539cd82..110cd48e3723 100644 --- a/airbyte-webapp/src/components/EmptyResourceBlock/EmptyResourceBlock.tsx +++ b/airbyte-webapp/src/components/EmptyResourceBlock/EmptyResourceBlock.tsx @@ -1,10 +1,10 @@ import React from "react"; import styled from "styled-components"; -type IProps = { +interface IProps { text: React.ReactNode; description?: React.ReactNode; -}; +} const Content = styled.div` padding: 74px 0 111px; diff --git a/airbyte-webapp/src/components/EntityTable/ConnectionTable.tsx b/airbyte-webapp/src/components/EntityTable/ConnectionTable.tsx index cd9ff5ddf17f..82afc70c1a84 100644 --- a/airbyte-webapp/src/components/EntityTable/ConnectionTable.tsx +++ b/airbyte-webapp/src/components/EntityTable/ConnectionTable.tsx @@ -22,13 +22,13 @@ const Content = styled.div` margin: 0 32px 0 27px; `; -type IProps = { +interface IProps { data: ITableDataItem[]; entity: "source" | "destination" | "connection"; onClickRow?: (data: ITableDataItem) => void; onChangeStatus: (id: string) => void; onSync: (id: string) => void; -}; +} const ConnectionTable: React.FC = ({ data, entity, onClickRow, onChangeStatus, onSync }) => { const { query, push } = useRouter(); diff --git a/airbyte-webapp/src/components/EntityTable/ImplementationTable.tsx b/airbyte-webapp/src/components/EntityTable/ImplementationTable.tsx index 1011a33fa328..f2b0e3177ab2 100644 --- a/airbyte-webapp/src/components/EntityTable/ImplementationTable.tsx +++ b/airbyte-webapp/src/components/EntityTable/ImplementationTable.tsx @@ -20,11 +20,11 @@ const Content = styled.div` margin: 0 32px 0 27px; `; -type IProps = { +interface IProps { data: EntityTableDataItem[]; entity: "source" | "destination"; onClickRow?: (data: EntityTableDataItem) => void; -}; +} const ImplementationTable: React.FC = ({ data, entity, onClickRow }) => { const { query, push } = useRouter(); diff --git a/airbyte-webapp/src/components/EntityTable/components/ConnectEntitiesCell.tsx b/airbyte-webapp/src/components/EntityTable/components/ConnectEntitiesCell.tsx index 137449425d59..f1e8109ca7d5 100644 --- a/airbyte-webapp/src/components/EntityTable/components/ConnectEntitiesCell.tsx +++ b/airbyte-webapp/src/components/EntityTable/components/ConnectEntitiesCell.tsx @@ -4,14 +4,14 @@ import styled from "styled-components"; import ImageBlock from "components/ImageBlock"; -type IProps = { +interface IProps { values: { name: string; connector: string; }[]; enabled?: boolean; entity: "source" | "destination"; -}; +} const Content = styled.div<{ enabled?: boolean }>` display: flex; diff --git a/airbyte-webapp/src/components/EntityTable/components/ConnectionSettingsCell.tsx b/airbyte-webapp/src/components/EntityTable/components/ConnectionSettingsCell.tsx index ca6fe6e55c1f..922df7372306 100644 --- a/airbyte-webapp/src/components/EntityTable/components/ConnectionSettingsCell.tsx +++ b/airbyte-webapp/src/components/EntityTable/components/ConnectionSettingsCell.tsx @@ -10,9 +10,9 @@ import { ConnectionSettingsRoutes } from "pages/ConnectionPage/pages/ConnectionI import { RoutePaths } from "../../../pages/routePaths"; -type IProps = { +interface IProps { id: string; -}; +} const Content = styled.div` color: ${({ theme }) => theme.greyColor60}; diff --git a/airbyte-webapp/src/components/EntityTable/components/ConnectorCell.tsx b/airbyte-webapp/src/components/EntityTable/components/ConnectorCell.tsx index 2f7f727cbe6c..d3f6ad2f3d20 100644 --- a/airbyte-webapp/src/components/EntityTable/components/ConnectorCell.tsx +++ b/airbyte-webapp/src/components/EntityTable/components/ConnectorCell.tsx @@ -3,11 +3,11 @@ import styled from "styled-components"; import { ConnectorIcon } from "components/ConnectorIcon"; -type IProps = { +interface IProps { value: string; enabled?: boolean; img?: string; -}; +} const Content = styled.div<{ enabled?: boolean }>` display: flex; diff --git a/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx b/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx index 77010c7a51b8..c08ca846438b 100644 --- a/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx +++ b/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx @@ -6,10 +6,10 @@ import { equal } from "utils/objects"; import { ConnectionSchedule } from "../../../core/request/AirbyteClient"; -type IProps = { +interface IProps { value: ConnectionSchedule; enabled?: boolean; -}; +} const Content = styled.div<{ enabled?: boolean }>` color: ${({ theme, enabled }) => (!enabled ? theme.greyColor40 : "inherit")}; diff --git a/airbyte-webapp/src/components/EntityTable/components/LastSyncCell.tsx b/airbyte-webapp/src/components/EntityTable/components/LastSyncCell.tsx index 574ae0c754bb..09ca9b5aa497 100644 --- a/airbyte-webapp/src/components/EntityTable/components/LastSyncCell.tsx +++ b/airbyte-webapp/src/components/EntityTable/components/LastSyncCell.tsx @@ -15,10 +15,10 @@ const Content = styled.div<{ enabled?: boolean }>` color: ${({ theme, enabled }) => (!enabled ? theme.greyColor40 : "inheret")}; `; -type IProps = { +interface IProps { timeInSecond: number; enabled?: boolean; -}; +} const LastSyncCell: React.FC = ({ timeInSecond, enabled }) => { if (!timeInSecond) { diff --git a/airbyte-webapp/src/components/EntityTable/components/SortButton.tsx b/airbyte-webapp/src/components/EntityTable/components/SortButton.tsx index b5ace9104c0b..5ea7f7cc7dc0 100644 --- a/airbyte-webapp/src/components/EntityTable/components/SortButton.tsx +++ b/airbyte-webapp/src/components/EntityTable/components/SortButton.tsx @@ -21,11 +21,11 @@ const SortButtonView = styled(Button)<{ wasActive?: boolean }>` } `; -type IProps = { +interface IProps { lowToLarge?: boolean; wasActive?: boolean; onClick: () => void; -}; +} const SortButton: React.FC = ({ wasActive, onClick, lowToLarge }) => { return ( diff --git a/airbyte-webapp/src/components/EntityTable/components/StatusCell.tsx b/airbyte-webapp/src/components/EntityTable/components/StatusCell.tsx index d67c42903635..a3c8a1be59cc 100644 --- a/airbyte-webapp/src/components/EntityTable/components/StatusCell.tsx +++ b/airbyte-webapp/src/components/EntityTable/components/StatusCell.tsx @@ -5,7 +5,7 @@ import styled from "styled-components"; import { LoadingButton, Switch } from "components"; -type IProps = { +interface IProps { allowSync?: boolean; enabled?: boolean; isSyncing?: boolean; @@ -13,7 +13,7 @@ type IProps = { id: string; onChangeStatus: (id: string) => void; onSync: (id: string) => void; -}; +} const SmallButton = styled(LoadingButton)` padding: 6px 8px 7px; diff --git a/airbyte-webapp/src/components/EntityTable/types.ts b/airbyte-webapp/src/components/EntityTable/types.ts index a32faa143d4b..97d22273f254 100644 --- a/airbyte-webapp/src/components/EntityTable/types.ts +++ b/airbyte-webapp/src/components/EntityTable/types.ts @@ -1,6 +1,6 @@ import { ConnectionSchedule } from "../../core/request/AirbyteClient"; -type EntityTableDataItem = { +interface EntityTableDataItem { entityId: string; entityName: string; connectorName: string; @@ -13,9 +13,9 @@ type EntityTableDataItem = { enabled: boolean; lastSync?: number | null; connectorIcon?: string; -}; +} -type ITableDataItem = { +interface ITableDataItem { connectionId: string; name: string; entityName: string; @@ -28,7 +28,7 @@ type ITableDataItem = { lastSyncStatus: string | null; connectorIcon?: string; entityIcon?: string; -}; +} enum Status { ACTIVE = "active", diff --git a/airbyte-webapp/src/components/FileDropZone/FileDropZone.tsx b/airbyte-webapp/src/components/FileDropZone/FileDropZone.tsx index 0a6c613627fe..4fa1296c95c5 100644 --- a/airbyte-webapp/src/components/FileDropZone/FileDropZone.tsx +++ b/airbyte-webapp/src/components/FileDropZone/FileDropZone.tsx @@ -51,11 +51,11 @@ const FileIcon = styled(FontAwesomeIcon)` margin-right: 8px; `; -type IProps = { +interface IProps { className?: string; mainText?: React.ReactNode; options?: DropzoneOptions; -}; +} const FileDropZone: React.FC = ({ className, mainText, options }) => { const { acceptedFiles, getRootProps, getInputProps } = useDropzone(options); diff --git a/airbyte-webapp/src/components/GroupControls/GroupControls.tsx b/airbyte-webapp/src/components/GroupControls/GroupControls.tsx index 9deb9485826b..ccf6d7714c14 100644 --- a/airbyte-webapp/src/components/GroupControls/GroupControls.tsx +++ b/airbyte-webapp/src/components/GroupControls/GroupControls.tsx @@ -24,11 +24,11 @@ const FormGroup = styled.div` padding: 0 20px; `; -type GroupControlsProps = { +interface GroupControlsProps { title: React.ReactNode; description?: string; name?: string; -}; +} const GroupControls: React.FC = ({ title, description, children, name }) => { return ( diff --git a/airbyte-webapp/src/components/HeadTitle/HeadTitle.tsx b/airbyte-webapp/src/components/HeadTitle/HeadTitle.tsx index 1415ed5c7904..df383f99940c 100644 --- a/airbyte-webapp/src/components/HeadTitle/HeadTitle.tsx +++ b/airbyte-webapp/src/components/HeadTitle/HeadTitle.tsx @@ -5,14 +5,14 @@ import { useIntl } from "react-intl"; const AIRBYTE = "Airbyte"; const SEPARATOR = "|"; -type FormattedHeadTitle = { +interface FormattedHeadTitle { id: string; values?: Record; -}; +} -type StringHeadTitle = { +interface StringHeadTitle { title: string; -}; +} type HeadTitleDefinition = FormattedHeadTitle | StringHeadTitle; @@ -20,9 +20,9 @@ const isStringTitle = (v: HeadTitleDefinition): v is StringHeadTitle => { return "title" in v; }; -type IProps = { +interface IProps { titles: HeadTitleDefinition[]; -}; +} /** * Titles defined by {@link HeadTitleDefinition} will be diff --git a/airbyte-webapp/src/components/ImageBlock/ImageBlock.tsx b/airbyte-webapp/src/components/ImageBlock/ImageBlock.tsx index b0f25dcdcae9..533e065471a4 100644 --- a/airbyte-webapp/src/components/ImageBlock/ImageBlock.tsx +++ b/airbyte-webapp/src/components/ImageBlock/ImageBlock.tsx @@ -3,12 +3,12 @@ import styled from "styled-components"; import { getIcon } from "utils/imageUtils"; -type IProps = { +interface IProps { img?: string; className?: string; num?: number; small?: boolean; -}; +} export const Content = styled.div<{ small?: boolean }>` height: 25px; diff --git a/airbyte-webapp/src/components/JobItem/JobItem.tsx b/airbyte-webapp/src/components/JobItem/JobItem.tsx index 11543de2a0b5..27ae560a247f 100644 --- a/airbyte-webapp/src/components/JobItem/JobItem.tsx +++ b/airbyte-webapp/src/components/JobItem/JobItem.tsx @@ -31,10 +31,10 @@ const LoadLogs = styled.div` min-height: 58px; `; -type JobItemProps = { +interface JobItemProps { shortInfo?: boolean; job: SynchronousJobReadWithStatus | JobsWithJobs; -}; +} const didJobSucceed = (job: SynchronousJobReadWithStatus | JobsWithJobs) => { return getJobStatus(job) !== "failed"; diff --git a/airbyte-webapp/src/components/JobItem/components/AttemptDetails.tsx b/airbyte-webapp/src/components/JobItem/components/AttemptDetails.tsx index e77adf1a8669..5cc88e6eee10 100644 --- a/airbyte-webapp/src/components/JobItem/components/AttemptDetails.tsx +++ b/airbyte-webapp/src/components/JobItem/components/AttemptDetails.tsx @@ -7,11 +7,11 @@ import Status from "core/statuses"; import { AttemptRead, JobConfigType } from "../../../core/request/AirbyteClient"; -type IProps = { +interface IProps { className?: string; attempt: AttemptRead; configType?: JobConfigType; -}; +} const Details = styled.div` font-size: 12px; diff --git a/airbyte-webapp/src/components/JobItem/components/ContentWrapper.tsx b/airbyte-webapp/src/components/JobItem/components/ContentWrapper.tsx index cd4260b0c4a7..e0ac36663b83 100644 --- a/airbyte-webapp/src/components/JobItem/components/ContentWrapper.tsx +++ b/airbyte-webapp/src/components/JobItem/components/ContentWrapper.tsx @@ -1,10 +1,10 @@ import React from "react"; import pose from "react-pose"; -type IProps = { +interface IProps { children?: React.ReactNode; isOpen?: boolean; -}; +} const itemConfig = { open: { diff --git a/airbyte-webapp/src/components/JobItem/components/DebugInfoButton.tsx b/airbyte-webapp/src/components/JobItem/components/DebugInfoButton.tsx index 897310ac16c2..c676ae39d718 100644 --- a/airbyte-webapp/src/components/JobItem/components/DebugInfoButton.tsx +++ b/airbyte-webapp/src/components/JobItem/components/DebugInfoButton.tsx @@ -8,9 +8,9 @@ import { Button } from "components"; import { JobDebugInfoRead } from "../../../core/request/AirbyteClient"; import DebugInfoDetailsModal from "./DebugInfoDetailsModal"; -type IProps = { +interface IProps { jobDebugInfo: JobDebugInfoRead; -}; +} const DebugInfoButton: React.FC = ({ jobDebugInfo }) => { const { formatMessage } = useIntl(); diff --git a/airbyte-webapp/src/components/JobItem/components/DebugInfoDetailsModal.tsx b/airbyte-webapp/src/components/JobItem/components/DebugInfoDetailsModal.tsx index c9a8991b93c4..a45da35f630e 100644 --- a/airbyte-webapp/src/components/JobItem/components/DebugInfoDetailsModal.tsx +++ b/airbyte-webapp/src/components/JobItem/components/DebugInfoDetailsModal.tsx @@ -7,10 +7,10 @@ import Modal from "components/Modal"; import { JobDebugInfoRead } from "../../../core/request/AirbyteClient"; -export type IProps = { +export interface IProps { onClose: () => void; jobDebugInfo: JobDebugInfoRead; -}; +} const Content = styled.div` padding: 18px 37px 28px; diff --git a/airbyte-webapp/src/components/JobItem/components/ErrorDetails.tsx b/airbyte-webapp/src/components/JobItem/components/ErrorDetails.tsx index ab6387df98b5..7b2de1dd712d 100644 --- a/airbyte-webapp/src/components/JobItem/components/ErrorDetails.tsx +++ b/airbyte-webapp/src/components/JobItem/components/ErrorDetails.tsx @@ -4,9 +4,9 @@ import styled from "styled-components"; import { AttemptRead } from "core/request/AirbyteClient"; -type IProps = { +interface IProps { attempts?: AttemptRead[]; -}; +} const ExpandedFailureContainer = styled.div` font-size: 12px; diff --git a/airbyte-webapp/src/components/JobItem/components/JobLogs.tsx b/airbyte-webapp/src/components/JobItem/components/JobLogs.tsx index 4bdc9b1e0dd3..50ac71c6516b 100644 --- a/airbyte-webapp/src/components/JobItem/components/JobLogs.tsx +++ b/airbyte-webapp/src/components/JobItem/components/JobLogs.tsx @@ -13,10 +13,10 @@ import Logs from "./Logs"; import { LogsDetails } from "./LogsDetails"; import Tabs, { TabsData } from "./Tabs"; -type JobLogsProps = { +interface JobLogsProps { jobIsFailed?: boolean; job: SynchronousJobReadWithStatus | JobsWithJobs; -}; +} const isPartialSuccess = (attempt: AttemptRead) => { return !!attempt.failureSummary?.partialSuccess; diff --git a/airbyte-webapp/src/components/JobItem/components/Logs.tsx b/airbyte-webapp/src/components/JobItem/components/Logs.tsx index 3a9f4f6eb04d..b88d505bae0d 100644 --- a/airbyte-webapp/src/components/JobItem/components/Logs.tsx +++ b/airbyte-webapp/src/components/JobItem/components/Logs.tsx @@ -31,9 +31,9 @@ const LogsView = styled.div<{ isEmpty?: boolean }>` } `; -type LogsProps = { +interface LogsProps { logsArray?: string[]; -}; +} const Logs: React.FC = ({ logsArray }) => { const logsJoin = logsArray?.length ? logsArray.join("\n") : "No logs available"; diff --git a/airbyte-webapp/src/components/JobItem/components/MainInfo.tsx b/airbyte-webapp/src/components/JobItem/components/MainInfo.tsx index 9516c1246d4f..eb2146832919 100644 --- a/airbyte-webapp/src/components/JobItem/components/MainInfo.tsx +++ b/airbyte-webapp/src/components/JobItem/components/MainInfo.tsx @@ -87,7 +87,7 @@ const getJobConfig = (job: SynchronousJobReadWithStatus | JobsWithJobs) => const getJobCreatedAt = (job: SynchronousJobReadWithStatus | JobsWithJobs) => (job as SynchronousJobReadWithStatus).createdAt ?? (job as JobsWithJobs).job.createdAt; -type MainInfoProps = { +interface MainInfoProps { job: SynchronousJobReadWithStatus | JobsWithJobs; attempts?: AttemptRead[]; isOpen?: boolean; @@ -95,7 +95,7 @@ type MainInfoProps = { isFailed?: boolean; isPartialSuccess?: boolean; shortInfo?: boolean; -}; +} const MainInfo: React.FC = ({ job, diff --git a/airbyte-webapp/src/components/Label/Label.tsx b/airbyte-webapp/src/components/Label/Label.tsx index 91c38c282c5a..c6d6b8382d10 100644 --- a/airbyte-webapp/src/components/Label/Label.tsx +++ b/airbyte-webapp/src/components/Label/Label.tsx @@ -1,7 +1,7 @@ import React from "react"; import styled from "styled-components"; -type IProps = { +interface IProps { error?: boolean; nextLine?: boolean; success?: boolean; @@ -9,7 +9,7 @@ type IProps = { additionLength?: number; className?: string; onClick?: (data: unknown) => void; -}; +} const Content = styled.label<{ additionLength?: number | string }>` display: block; diff --git a/airbyte-webapp/src/components/LabeledControl/ControlLabels.tsx b/airbyte-webapp/src/components/LabeledControl/ControlLabels.tsx index 2c8336db1638..5c162321ca16 100644 --- a/airbyte-webapp/src/components/LabeledControl/ControlLabels.tsx +++ b/airbyte-webapp/src/components/LabeledControl/ControlLabels.tsx @@ -3,7 +3,7 @@ import styled from "styled-components"; import Label from "components/Label"; -export type ControlLabelsProps = { +export interface ControlLabelsProps { className?: string; error?: boolean; success?: boolean; @@ -12,7 +12,7 @@ export type ControlLabelsProps = { errorMessage?: React.ReactNode; labelAdditionLength?: number; label?: React.ReactNode; -}; +} const ControlContainer = styled.div` width: 100%; diff --git a/airbyte-webapp/src/components/Link/Link.tsx b/airbyte-webapp/src/components/Link/Link.tsx index e43f1c7b38c5..477b4afc61f1 100644 --- a/airbyte-webapp/src/components/Link/Link.tsx +++ b/airbyte-webapp/src/components/Link/Link.tsx @@ -4,11 +4,11 @@ import { } from "react-router-dom"; import styled from "styled-components"; -export type ILinkProps = { +export interface ILinkProps { bold?: boolean; $clear?: boolean; $light?: boolean; -}; +} // TODO: fix typings const Link = styled(ReactLink)` diff --git a/airbyte-webapp/src/components/LoadingPage/LoadingPage.tsx b/airbyte-webapp/src/components/LoadingPage/LoadingPage.tsx index 30e656a03c36..321243972dfc 100644 --- a/airbyte-webapp/src/components/LoadingPage/LoadingPage.tsx +++ b/airbyte-webapp/src/components/LoadingPage/LoadingPage.tsx @@ -4,9 +4,9 @@ import { Theme } from "theme"; import Spinner from "components/Spinner"; -type IProps = { +interface IProps { full?: boolean; -}; +} const Container = styled.div` width: 100%; diff --git a/airbyte-webapp/src/components/MainPageWithScroll/MainPageWithScroll.tsx b/airbyte-webapp/src/components/MainPageWithScroll/MainPageWithScroll.tsx index eab38e763cb4..64e0e51a8208 100644 --- a/airbyte-webapp/src/components/MainPageWithScroll/MainPageWithScroll.tsx +++ b/airbyte-webapp/src/components/MainPageWithScroll/MainPageWithScroll.tsx @@ -22,12 +22,12 @@ const Page = styled.div` * @param headTitle the title shown in the browser toolbar * @param pageTitle the title shown on the page */ -type IProps = { +interface IProps { error?: React.ReactNode; headTitle?: React.ReactNode; pageTitle?: React.ReactNode; children?: React.ReactNode; -}; +} const MainPageWithScroll: React.FC = ({ error, headTitle, pageTitle, children }) => { return ( diff --git a/airbyte-webapp/src/components/Markdown/Markdown.tsx b/airbyte-webapp/src/components/Markdown/Markdown.tsx index 24ec175e71e8..492e4e26bece 100644 --- a/airbyte-webapp/src/components/Markdown/Markdown.tsx +++ b/airbyte-webapp/src/components/Markdown/Markdown.tsx @@ -6,11 +6,11 @@ import remarkFrontmatter from "remark-frontmatter"; import remarkGfm from "remark-gfm"; import styled from "styled-components"; -type Props = { +interface Props { content?: string; className?: string; rehypePlugins?: PluggableList; -}; +} const Markdown: React.FC = ({ content, className, rehypePlugins }) => { return ( diff --git a/airbyte-webapp/src/components/Modal/Modal.tsx b/airbyte-webapp/src/components/Modal/Modal.tsx index a28168b9fd0c..a3bca9d1190f 100644 --- a/airbyte-webapp/src/components/Modal/Modal.tsx +++ b/airbyte-webapp/src/components/Modal/Modal.tsx @@ -4,12 +4,12 @@ import styled, { keyframes } from "styled-components"; import ContentCard from "components/ContentCard"; -export type IProps = { +export interface IProps { title?: string | React.ReactNode; onClose?: () => void; clear?: boolean; closeOnBackground?: boolean; -}; +} const fadeIn = keyframes` from { opacity: 0; } diff --git a/airbyte-webapp/src/components/Placeholder/Placeholder.tsx b/airbyte-webapp/src/components/Placeholder/Placeholder.tsx index 78ce13277cc4..49a9bfc07533 100644 --- a/airbyte-webapp/src/components/Placeholder/Placeholder.tsx +++ b/airbyte-webapp/src/components/Placeholder/Placeholder.tsx @@ -3,9 +3,9 @@ import styled from "styled-components"; import { ResourceTypes } from "./types"; -type PlaceholderProps = { +interface PlaceholderProps { resource: ResourceTypes; -}; +} const Img = styled.img` max-height: ${({ resource }) => diff --git a/airbyte-webapp/src/components/ProgressBar/ProgressBar.tsx b/airbyte-webapp/src/components/ProgressBar/ProgressBar.tsx index 7062f9bdc697..b6fc378abe78 100644 --- a/airbyte-webapp/src/components/ProgressBar/ProgressBar.tsx +++ b/airbyte-webapp/src/components/ProgressBar/ProgressBar.tsx @@ -2,10 +2,10 @@ import React from "react"; import { FormattedMessage } from "react-intl"; import styled, { keyframes } from "styled-components"; -type ProgressBarProps = { +interface ProgressBarProps { runTime?: number; text?: React.ReactNode; -}; +} export const GrowAnimation = keyframes` 0% { diff --git a/airbyte-webapp/src/components/SideMenu/SideMenu.tsx b/airbyte-webapp/src/components/SideMenu/SideMenu.tsx index 8628d6b3f300..bcbdffae2c00 100644 --- a/airbyte-webapp/src/components/SideMenu/SideMenu.tsx +++ b/airbyte-webapp/src/components/SideMenu/SideMenu.tsx @@ -3,24 +3,24 @@ import styled from "styled-components"; import MenuItem from "./components/MenuItem"; -export type SideMenuItem = { +export interface SideMenuItem { path: string; name: string | React.ReactNode; indicatorCount?: number; component: React.ComponentType; id?: string; -}; +} -export type CategoryItem = { +export interface CategoryItem { category?: string | React.ReactNode; routes: SideMenuItem[]; -}; +} -type SideMenuProps = { +interface SideMenuProps { data: CategoryItem[]; activeItem?: string; onSelect: (id: string) => void; -}; +} const Content = styled.nav` min-width: 147px; diff --git a/airbyte-webapp/src/components/SideMenu/components/MenuItem.tsx b/airbyte-webapp/src/components/SideMenu/components/MenuItem.tsx index 5faee4700f47..bcc3088dfe8f 100644 --- a/airbyte-webapp/src/components/SideMenu/components/MenuItem.tsx +++ b/airbyte-webapp/src/components/SideMenu/components/MenuItem.tsx @@ -1,13 +1,13 @@ import React from "react"; import styled from "styled-components"; -type IProps = { +interface IProps { name: string | React.ReactNode; isActive?: boolean; count?: number; id?: string; onClick: () => void; -}; +} const Item = styled.div<{ isActive?: boolean; diff --git a/airbyte-webapp/src/components/SideView/SideView.tsx b/airbyte-webapp/src/components/SideView/SideView.tsx index abd4337daeb6..3aeca9785bb9 100644 --- a/airbyte-webapp/src/components/SideView/SideView.tsx +++ b/airbyte-webapp/src/components/SideView/SideView.tsx @@ -6,10 +6,10 @@ import { useClickAway, useKey } from "react-use"; import { Actions, Body, Close, Container, Content, Header } from "./styled"; -type Props = { +interface Props { headerLink?: React.ReactNode | string; onClose: () => void; -}; +} const EXIT_KEY = "Escape"; diff --git a/airbyte-webapp/src/components/SingletonCard/SingletonCard.tsx b/airbyte-webapp/src/components/SingletonCard/SingletonCard.tsx index 3fd312ce99a1..822f98d69c32 100644 --- a/airbyte-webapp/src/components/SingletonCard/SingletonCard.tsx +++ b/airbyte-webapp/src/components/SingletonCard/SingletonCard.tsx @@ -7,12 +7,12 @@ import { Button, H5 } from "components"; import ErrorSign from "./components/ErrorSign"; -type SingletonCardProps = { +interface SingletonCardProps { title: string | React.ReactNode; text?: string | React.ReactNode; hasError?: boolean; onClose?: () => void; -}; +} export const SlideUpAnimation = keyframes` 0% { diff --git a/airbyte-webapp/src/components/Spinner/Spinner.tsx b/airbyte-webapp/src/components/Spinner/Spinner.tsx index 1354956a0d88..87774bc9c7ac 100644 --- a/airbyte-webapp/src/components/Spinner/Spinner.tsx +++ b/airbyte-webapp/src/components/Spinner/Spinner.tsx @@ -1,10 +1,10 @@ import React from "react"; import styled, { keyframes } from "styled-components"; -type IProps = { +interface IProps { backgroundColor?: string; small?: boolean; -}; +} export const SpinAnimation = keyframes` 0% { diff --git a/airbyte-webapp/src/components/StepsMenu/StepsMenu.tsx b/airbyte-webapp/src/components/StepsMenu/StepsMenu.tsx index 129514f5e24a..4d803f1797d0 100644 --- a/airbyte-webapp/src/components/StepsMenu/StepsMenu.tsx +++ b/airbyte-webapp/src/components/StepsMenu/StepsMenu.tsx @@ -3,20 +3,20 @@ import styled from "styled-components"; import Step from "./components/Step"; -export type StepMenuItem = { +export interface StepMenuItem { id: string; name: string | React.ReactNode; status?: string; isPartialSuccess?: boolean; onSelect?: () => void; -}; +} -type IProps = { +interface IProps { lightMode?: boolean; data: StepMenuItem[]; activeStep?: string; onSelect?: (id: string) => void; -}; +} const Content = styled.div` display: flex; diff --git a/airbyte-webapp/src/components/StepsMenu/components/Step.tsx b/airbyte-webapp/src/components/StepsMenu/components/Step.tsx index 5ffb42fbaca8..1c7db0e75406 100644 --- a/airbyte-webapp/src/components/StepsMenu/components/Step.tsx +++ b/airbyte-webapp/src/components/StepsMenu/components/Step.tsx @@ -6,7 +6,7 @@ import { StatusIconStatus } from "components/StatusIcon/StatusIcon"; import Status from "core/statuses"; -type IProps = { +interface IProps { id: string; lightMode?: boolean; name: string | React.ReactNode; @@ -15,7 +15,7 @@ type IProps = { isPartialSuccess?: boolean; num: number; status?: string; -}; +} const StepView = styled.div<{ isActive?: boolean; diff --git a/airbyte-webapp/src/components/Table/Table.tsx b/airbyte-webapp/src/components/Table/Table.tsx index 0f171883303e..ab6da681f5ec 100644 --- a/airbyte-webapp/src/components/Table/Table.tsx +++ b/airbyte-webapp/src/components/Table/Table.tsx @@ -4,10 +4,10 @@ import styled from "styled-components"; import { Card } from "components"; -type PaddingProps = { +interface PaddingProps { left?: number; right?: number; -}; +} type IHeaderProps = { headerHighlighted?: boolean; @@ -97,7 +97,7 @@ const Th = styled.th` } `; -type IProps = { +interface IProps { light?: boolean; columns: Array>>; erroredRows?: boolean; @@ -107,7 +107,7 @@ type IProps = { onClickRow?: (data: any) => void; // eslint-disable-next-line @typescript-eslint/no-explicit-any sortBy?: Array>; -}; +} const Table: React.FC = ({ columns, data, onClickRow, erroredRows, sortBy, light }) => { const [plugins, config] = useMemo(() => { diff --git a/airbyte-webapp/src/components/TextWithHTML/TextWithHTML.tsx b/airbyte-webapp/src/components/TextWithHTML/TextWithHTML.tsx index ba04323c4efd..ab9b26aaa824 100644 --- a/airbyte-webapp/src/components/TextWithHTML/TextWithHTML.tsx +++ b/airbyte-webapp/src/components/TextWithHTML/TextWithHTML.tsx @@ -1,9 +1,9 @@ import React from "react"; import sanitizeHtml from "sanitize-html"; -type IProps = { +interface IProps { text?: string; -}; +} const allowedAttributes = { ...sanitizeHtml.defaults.allowedAttributes, diff --git a/airbyte-webapp/src/components/ToolTip/ToolTip.tsx b/airbyte-webapp/src/components/ToolTip/ToolTip.tsx index 98ba67b9a2ec..00ddafa62787 100644 --- a/airbyte-webapp/src/components/ToolTip/ToolTip.tsx +++ b/airbyte-webapp/src/components/ToolTip/ToolTip.tsx @@ -1,12 +1,12 @@ import React from "react"; import styled from "styled-components"; -type ToolTipProps = { +interface ToolTipProps { control: React.ReactNode; className?: string; disabled?: boolean; cursor?: "pointer" | "help" | "not-allowed"; -}; +} const Control = styled.div<{ $cursor?: "pointer" | "help" | "not-allowed"; $showCursor?: boolean }>` display: inline-block; diff --git a/airbyte-webapp/src/components/Version/Version.tsx b/airbyte-webapp/src/components/Version/Version.tsx index b5e479d28cfd..8d79ca41a643 100644 --- a/airbyte-webapp/src/components/Version/Version.tsx +++ b/airbyte-webapp/src/components/Version/Version.tsx @@ -13,10 +13,10 @@ const Content = styled.div<{ primary?: boolean }>` margin-top: 10px; `; -type IProps = { +interface IProps { className?: string; primary?: boolean; -}; +} const Version: React.FC = ({ className, primary }) => { const config = useConfig(); diff --git a/airbyte-webapp/src/components/base/DropDown/components/Option.tsx b/airbyte-webapp/src/components/base/DropDown/components/Option.tsx index 6ab2f022ed23..8e49cc49db64 100644 --- a/airbyte-webapp/src/components/base/DropDown/components/Option.tsx +++ b/airbyte-webapp/src/components/base/DropDown/components/Option.tsx @@ -10,7 +10,7 @@ export type IProps = { data: { disabled: boolean; index: number; fullText?: boolean } & IDataItem; } & OptionProps; -export type IDataItem = { +export interface IDataItem { label?: string; // eslint-disable-next-line @typescript-eslint/no-explicit-any value?: any; @@ -21,7 +21,7 @@ export type IDataItem = { secondary?: boolean; // eslint-disable-next-line @typescript-eslint/no-explicit-any config?: any; -}; +} export const OptionView = styled.div<{ isSelected?: boolean; diff --git a/airbyte-webapp/src/components/base/DropDown/components/Text.tsx b/airbyte-webapp/src/components/base/DropDown/components/Text.tsx index d97364bf37b0..467fa9dd5d4a 100644 --- a/airbyte-webapp/src/components/base/DropDown/components/Text.tsx +++ b/airbyte-webapp/src/components/base/DropDown/components/Text.tsx @@ -1,11 +1,11 @@ import styled from "styled-components"; import { Theme } from "theme"; -type IProps = { +interface IProps { primary?: boolean; secondary?: boolean; fullText?: boolean; -}; +} const setColor = (props: IProps & { theme: Theme }) => { if (props.primary) { diff --git a/airbyte-webapp/src/components/base/TagInput/TagItem.tsx b/airbyte-webapp/src/components/base/TagInput/TagItem.tsx index e3696444a39b..f655fc00670f 100644 --- a/airbyte-webapp/src/components/base/TagInput/TagItem.tsx +++ b/airbyte-webapp/src/components/base/TagInput/TagItem.tsx @@ -38,17 +38,17 @@ const Delete = styled.button` } `; -type IProps = { +interface IProps { item: IItemProps; isSelected?: boolean; disabled?: boolean; onDeleteTag: (id: string) => void; -}; +} -export type IItemProps = { +export interface IItemProps { value: string; id: string; -}; +} const TagItem: React.FC = ({ item, onDeleteTag, isSelected, disabled }) => { const clickOnDeleteButton = () => onDeleteTag(item.id); diff --git a/airbyte-webapp/src/components/base/Titles/Titles.tsx b/airbyte-webapp/src/components/base/Titles/Titles.tsx index 6251ed170fdd..f3648a31f60e 100644 --- a/airbyte-webapp/src/components/base/Titles/Titles.tsx +++ b/airbyte-webapp/src/components/base/Titles/Titles.tsx @@ -1,11 +1,11 @@ import styled from "styled-components"; -type IProps = { +interface IProps { center?: boolean; bold?: boolean; parentColor?: boolean; highlighted?: boolean; -}; +} export const H1 = styled.h1` font-size: ${({ theme }) => theme.h1?.fontSize || "28px"}; diff --git a/airbyte-webapp/src/config/ConfigServiceProvider.tsx b/airbyte-webapp/src/config/ConfigServiceProvider.tsx index 639b6e21c018..f1bb41d97462 100644 --- a/airbyte-webapp/src/config/ConfigServiceProvider.tsx +++ b/airbyte-webapp/src/config/ConfigServiceProvider.tsx @@ -6,9 +6,9 @@ import { LoadingPage } from "components"; import { applyProviders } from "./configProviders"; import { Config, ValueProvider } from "./types"; -export type ConfigContextData = { +export interface ConfigContextData { config: T; -}; +} export const ConfigContext = React.createContext(null); diff --git a/airbyte-webapp/src/config/configProviders.test.ts b/airbyte-webapp/src/config/configProviders.test.ts index 585e02fae242..da9b7e1da9b8 100644 --- a/airbyte-webapp/src/config/configProviders.test.ts +++ b/airbyte-webapp/src/config/configProviders.test.ts @@ -1,7 +1,7 @@ import { applyProviders } from "./configProviders"; import { DeepPartial, ProviderAsync } from "./types"; -type Value = { +interface Value { prop1: { innerProp: string; innerProp2: string; @@ -13,7 +13,7 @@ type Value = { prop3: { innerProp: string; }; -}; +} describe("applyProviders", function () { test("should deepMerge config returned from providers", async () => { const defaultValue: Value = { diff --git a/airbyte-webapp/src/config/types.ts b/airbyte-webapp/src/config/types.ts index 0c93b5cc4421..9bed77aa96bd 100644 --- a/airbyte-webapp/src/config/types.ts +++ b/airbyte-webapp/src/config/types.ts @@ -20,7 +20,7 @@ declare global { } } -export type Config = { +export interface Config { ui: UiConfig; features: Feature[]; segment: { token: string; enabled: boolean }; @@ -31,7 +31,7 @@ export type Config = { version?: string; integrationUrl: string; launchDarkly?: string; -}; +} export type DeepPartial = { [P in keyof T]+?: DeepPartial; diff --git a/airbyte-webapp/src/core/domain/catalog/fieldUtil.ts b/airbyte-webapp/src/core/domain/catalog/fieldUtil.ts index ad4984c7d78d..1cc35828884a 100644 --- a/airbyte-webapp/src/core/domain/catalog/fieldUtil.ts +++ b/airbyte-webapp/src/core/domain/catalog/fieldUtil.ts @@ -42,15 +42,15 @@ const traverseJsonSchemaProperties = ( ]; }; -type NamespaceOptions = { +interface NamespaceOptions { namespaceDefinition: typeof NamespaceDefinitionType.source | typeof NamespaceDefinitionType.destination; sourceNamespace?: string; -}; -type NamespaceOptionsCustomFormat = { +} +interface NamespaceOptionsCustomFormat { namespaceDefinition: typeof NamespaceDefinitionType.customformat; namespaceFormat: string; sourceNamespace?: string; -}; +} function getDestinationNamespace(opt: NamespaceOptions | NamespaceOptionsCustomFormat) { const destinationSetting = ""; diff --git a/airbyte-webapp/src/core/domain/catalog/models.ts b/airbyte-webapp/src/core/domain/catalog/models.ts index 965b4f3bccc2..a17828cf8012 100644 --- a/airbyte-webapp/src/core/domain/catalog/models.ts +++ b/airbyte-webapp/src/core/domain/catalog/models.ts @@ -1,11 +1,11 @@ -export type SyncSchemaField = { +export interface SyncSchemaField { cleanedName: string; type: string; key: string; path: string[]; fields?: SyncSchemaField[]; -}; +} export class SyncSchemaFieldObject { static isPrimitive(field: SyncSchemaField): boolean { diff --git a/airbyte-webapp/src/core/domain/logs/LogsService.tsx b/airbyte-webapp/src/core/domain/logs/LogsService.tsx index b1a74798fc0f..fcfe8443d453 100644 --- a/airbyte-webapp/src/core/domain/logs/LogsService.tsx +++ b/airbyte-webapp/src/core/domain/logs/LogsService.tsx @@ -2,7 +2,9 @@ import { getLogs, LogsRequestBody } from "../../request/AirbyteClient"; import { AirbyteRequestService } from "../../request/AirbyteRequestService"; import { LogType } from "./types"; -export type GetLogsPayload = { logType: LogType }; +export interface GetLogsPayload { + logType: LogType; +} export class LogsService extends AirbyteRequestService { public get(payload: LogsRequestBody) { diff --git a/airbyte-webapp/src/core/form/types.ts b/airbyte-webapp/src/core/form/types.ts index dbe04d63e652..79de48cbfa3b 100644 --- a/airbyte-webapp/src/core/form/types.ts +++ b/airbyte-webapp/src/core/form/types.ts @@ -2,7 +2,7 @@ import { JSONSchema7Type, JSONSchema7TypeName } from "json-schema"; import { AirbyteJSONSchema } from "core/jsonSchema"; -type FormItem = { +interface FormItem { fieldKey: string; path: string; isRequired: boolean; @@ -11,7 +11,7 @@ type FormItem = { description?: string; airbyte_hidden?: boolean; -}; +} export type FormBaseItem = { _type: "formItem"; @@ -46,8 +46,12 @@ type FormBlock = FormGroupItem | FormBaseItem | FormConditionItem | FormObjectAr export type { FormBlock, FormConditionItem, FormGroupItem, FormObjectArrayItem }; // eslint-disable-next-line @typescript-eslint/no-explicit-any -export type WidgetConfig = { [key: string]: any }; -export type WidgetConfigMap = { [key: string]: WidgetConfig }; +export interface WidgetConfig { + [key: string]: any; +} +export interface WidgetConfigMap { + [key: string]: WidgetConfig; +} // eslint-disable-next-line @typescript-eslint/no-explicit-any export type FormComponentOverrideProps = Record; diff --git a/airbyte-webapp/src/core/servicesProvider.tsx b/airbyte-webapp/src/core/servicesProvider.tsx index ab8c766a12ec..f244ea255b28 100644 --- a/airbyte-webapp/src/core/servicesProvider.tsx +++ b/airbyte-webapp/src/core/servicesProvider.tsx @@ -1,19 +1,19 @@ import React, { useContext, useEffect, useMemo } from "react"; import { useMap } from "react-use"; -type ServiceContainer = { +interface ServiceContainer { [key: string]: Service; -}; +} // eslint-disable-next-line @typescript-eslint/no-explicit-any type Service = any; -type ServicesProviderApi = { +interface ServicesProviderApi { register(name: string, service: Service): void; getService(serviceType: string): T; unregister(name: string): void; registeredServices: ServiceContainer; -}; +} const ServicesProviderContext = React.createContext(null); diff --git a/airbyte-webapp/src/hooks/services/Analytics/useAnalyticsService.tsx b/airbyte-webapp/src/hooks/services/Analytics/useAnalyticsService.tsx index ee17b32be01a..6729f4df0107 100644 --- a/airbyte-webapp/src/hooks/services/Analytics/useAnalyticsService.tsx +++ b/airbyte-webapp/src/hooks/services/Analytics/useAnalyticsService.tsx @@ -5,13 +5,13 @@ import { AnalyticsService } from "core/analytics/AnalyticsService"; type AnalyticsContext = Record; -export type AnalyticsServiceProviderValue = { +export interface AnalyticsServiceProviderValue { analyticsContext: AnalyticsContext; setContext: (ctx: AnalyticsContext) => void; addContextProps: (props: AnalyticsContext) => void; removeContextProps: (props: string[]) => void; service: AnalyticsService; -}; +} export const analyticsServiceContext = React.createContext(null); diff --git a/airbyte-webapp/src/hooks/services/Feature/types.tsx b/airbyte-webapp/src/hooks/services/Feature/types.tsx index 26be96a7be85..00043aec6263 100644 --- a/airbyte-webapp/src/hooks/services/Feature/types.tsx +++ b/airbyte-webapp/src/hooks/services/Feature/types.tsx @@ -7,15 +7,15 @@ export enum FeatureItem { AllowSync = "ALLOW_SYNC", } -type Feature = { +interface Feature { id: FeatureItem; -}; +} -type FeatureServiceApi = { +interface FeatureServiceApi { features: Feature[]; registerFeature: (props: Feature[]) => void; unregisterFeature: (props: FeatureItem[]) => void; hasFeature: (featureId: FeatureItem) => boolean; -}; +} export type { Feature, FeatureServiceApi }; diff --git a/airbyte-webapp/src/hooks/services/Notification/types.ts b/airbyte-webapp/src/hooks/services/Notification/types.ts index aa7c0cee11fd..23419bef17c0 100644 --- a/airbyte-webapp/src/hooks/services/Notification/types.ts +++ b/airbyte-webapp/src/hooks/services/Notification/types.ts @@ -1,18 +1,18 @@ -export type Notification = { +export interface Notification { id: string | number; title: string; text?: string; isError?: boolean; nonClosable?: boolean; onClose?: () => void; -}; +} -export type NotificationServiceApi = { +export interface NotificationServiceApi { addNotification: (notification: Notification) => void; deleteNotificationById: (notificationId: string | number) => void; clearAll: () => void; -}; +} -export type NotificationServiceState = { +export interface NotificationServiceState { notifications: Notification[]; -}; +} diff --git a/airbyte-webapp/src/hooks/services/Onboarding/OnboardingService.tsx b/airbyte-webapp/src/hooks/services/Onboarding/OnboardingService.tsx index b10f111102b6..54ca702319ea 100644 --- a/airbyte-webapp/src/hooks/services/Onboarding/OnboardingService.tsx +++ b/airbyte-webapp/src/hooks/services/Onboarding/OnboardingService.tsx @@ -4,13 +4,13 @@ import { useLocalStorage } from "react-use"; import casesConfig from "config/casesConfig.json"; import { useCurrentWorkspace } from "hooks/services/useWorkspace"; -type Context = { +interface Context { feedbackPassed?: boolean; passFeedback: () => void; visibleUseCases?: string[]; useCaseLinks: Record; skipCase: (skipId: string) => void; -}; +} export const OnboardingServiceContext = React.createContext(null); diff --git a/airbyte-webapp/src/hooks/services/useConnectionHook.tsx b/airbyte-webapp/src/hooks/services/useConnectionHook.tsx index 6211a02a2afa..877fea0ac1d3 100644 --- a/airbyte-webapp/src/hooks/services/useConnectionHook.tsx +++ b/airbyte-webapp/src/hooks/services/useConnectionHook.tsx @@ -31,7 +31,7 @@ export const connectionsKeys = { detail: (connectionId: string) => [...connectionsKeys.all, "details", connectionId] as const, }; -export type ValuesProps = { +export interface ValuesProps { name?: string; schedule: ConnectionSchedule | null; prefix: string; @@ -39,18 +39,20 @@ export type ValuesProps = { namespaceDefinition: NamespaceDefinitionType; namespaceFormat?: string; operations?: OperationCreate[]; -}; +} -type CreateConnectionProps = { +interface CreateConnectionProps { values: ValuesProps; source: SourceRead; destination: DestinationRead; sourceDefinition?: Pick; destinationDefinition?: { name: string; destinationDefinitionId: string }; sourceCatalogId: string | undefined; -}; +} -export type ListConnection = { connections: WebBackendConnectionRead[] }; +export interface ListConnection { + connections: WebBackendConnectionRead[]; +} function useWebConnectionService() { const config = useConfig(); diff --git a/airbyte-webapp/src/hooks/services/useConnector.tsx b/airbyte-webapp/src/hooks/services/useConnector.tsx index a1d4832fba0a..2f67754028d7 100644 --- a/airbyte-webapp/src/hooks/services/useConnector.tsx +++ b/airbyte-webapp/src/hooks/services/useConnector.tsx @@ -16,7 +16,7 @@ import { useInitService } from "services/useInitService"; import { CheckConnectionRead } from "../../core/request/AirbyteClient"; -type ConnectorService = { +interface ConnectorService { hasNewVersions: boolean; hasNewSourceVersion: boolean; hasNewDestinationVersion: boolean; @@ -24,7 +24,7 @@ type ConnectorService = { countNewDestinationVersion: number; updateAllSourceVersions: () => Promise; updateAllDestinationVersions: () => Promise; -}; +} const useConnector = (): ConnectorService => { const { sourceDefinitions } = useSourceDefinitionList(); diff --git a/airbyte-webapp/src/hooks/services/useDestinationHook.tsx b/airbyte-webapp/src/hooks/services/useDestinationHook.tsx index cf8cd314f45f..e23129db52ea 100644 --- a/airbyte-webapp/src/hooks/services/useDestinationHook.tsx +++ b/airbyte-webapp/src/hooks/services/useDestinationHook.tsx @@ -21,13 +21,16 @@ export const destinationsKeys = { detail: (destinationId: string) => [...destinationsKeys.all, "details", destinationId] as const, }; -type ValuesProps = { +interface ValuesProps { name: string; serviceType?: string; connectionConfiguration?: ConnectionConfiguration; -}; +} -type ConnectorProps = { name: string; destinationDefinitionId: string }; +interface ConnectorProps { + name: string; + destinationDefinitionId: string; +} function useDestinationService() { const { apiUrl } = useConfig(); @@ -35,7 +38,9 @@ function useDestinationService() { return useInitService(() => new DestinationService(apiUrl, requestAuthMiddleware), [apiUrl, requestAuthMiddleware]); } -type DestinationList = { destinations: DestinationRead[] }; +interface DestinationList { + destinations: DestinationRead[]; +} const useDestinationList = (): DestinationList => { const workspace = useCurrentWorkspace(); diff --git a/airbyte-webapp/src/hooks/services/useRequestConnector.tsx b/airbyte-webapp/src/hooks/services/useRequestConnector.tsx index 01b0d2064b9e..c0f5cc5954a8 100644 --- a/airbyte-webapp/src/hooks/services/useRequestConnector.tsx +++ b/airbyte-webapp/src/hooks/services/useRequestConnector.tsx @@ -1,11 +1,11 @@ import { useAnalyticsService } from "hooks/services/Analytics/useAnalyticsService"; -type Values = { +interface Values { connectorType: string; name: string; additionalInfo?: string; email?: string; -}; +} const useRequestConnector = (): { requestConnector: (conn: Values) => void; diff --git a/airbyte-webapp/src/hooks/services/useSourceHook.tsx b/airbyte-webapp/src/hooks/services/useSourceHook.tsx index 30c1ca42e57e..0ea4588b56c9 100644 --- a/airbyte-webapp/src/hooks/services/useSourceHook.tsx +++ b/airbyte-webapp/src/hooks/services/useSourceHook.tsx @@ -24,14 +24,17 @@ export const sourcesKeys = { detail: (sourceId: string) => [...sourcesKeys.all, "details", sourceId] as const, }; -type ValuesProps = { +interface ValuesProps { name: string; serviceType?: string; connectionConfiguration?: ConnectionConfiguration; frequency?: string; -}; +} -type ConnectorProps = { name: string; sourceDefinitionId: string }; +interface ConnectorProps { + name: string; + sourceDefinitionId: string; +} function useSourceService() { const { apiUrl } = useConfig(); @@ -39,7 +42,9 @@ function useSourceService() { return useInitService(() => new SourceService(apiUrl, requestAuthMiddleware), [apiUrl, requestAuthMiddleware]); } -type SourceList = { sources: SourceRead[] }; +interface SourceList { + sources: SourceRead[]; +} const useSourceList = (): SourceList => { const workspace = useCurrentWorkspace(); diff --git a/airbyte-webapp/src/hooks/services/useWorkspace.tsx b/airbyte-webapp/src/hooks/services/useWorkspace.tsx index b4c0ab35d4b6..752503745f4b 100644 --- a/airbyte-webapp/src/hooks/services/useWorkspace.tsx +++ b/airbyte-webapp/src/hooks/services/useWorkspace.tsx @@ -9,11 +9,11 @@ import { useCurrentWorkspace, useUpdateWorkspace } from "services/workspaces/Wor import { useConfig } from "../../config"; import { useDefaultRequestMiddlewares } from "../../services/useDefaultRequestMiddlewares"; -export type WebhookPayload = { +export interface WebhookPayload { webhook?: string; sendOnSuccess?: boolean; sendOnFailure?: boolean; -}; +} function useGetNotificationService() { const config = useConfig(); diff --git a/airbyte-webapp/src/packages/cloud/services/auth/reducer.ts b/airbyte-webapp/src/packages/cloud/services/auth/reducer.ts index 74eac730c805..aa94e9990e89 100644 --- a/airbyte-webapp/src/packages/cloud/services/auth/reducer.ts +++ b/airbyte-webapp/src/packages/cloud/services/auth/reducer.ts @@ -11,13 +11,13 @@ export const actions = { type Actions = ActionType; -export type AuthServiceState = { +export interface AuthServiceState { inited: boolean; currentUser: User | null; emailVerified: boolean; loading: boolean; loggedOut: boolean; -}; +} export const initialState: AuthServiceState = { inited: false, diff --git a/airbyte-webapp/src/packages/cloud/services/config/types.ts b/airbyte-webapp/src/packages/cloud/services/config/types.ts index 7edb3e66f679..cd5a92b06278 100644 --- a/airbyte-webapp/src/packages/cloud/services/config/types.ts +++ b/airbyte-webapp/src/packages/cloud/services/config/types.ts @@ -13,7 +13,7 @@ declare global { } } -export type CloudConfigExtension = { +export interface CloudConfigExtension { cloudApiUrl: string; fullstory: Fullstory.SnippetOptions & { enabled: boolean }; firebase: { @@ -24,6 +24,6 @@ export type CloudConfigExtension = { intercom: { appId: string; }; -}; +} export type CloudConfig = Config & CloudConfigExtension; diff --git a/airbyte-webapp/src/packages/cloud/views/auth/SignupPage/SignupPage.tsx b/airbyte-webapp/src/packages/cloud/views/auth/SignupPage/SignupPage.tsx index b6823f3b1189..df2b5e9e00bb 100644 --- a/airbyte-webapp/src/packages/cloud/views/auth/SignupPage/SignupPage.tsx +++ b/airbyte-webapp/src/packages/cloud/views/auth/SignupPage/SignupPage.tsx @@ -15,14 +15,14 @@ import CheckBoxControl from "../components/CheckBoxControl"; import { BottomBlock, FieldItem, Form, RowFieldItem } from "../components/FormComponents"; import SpecialBlock from "./components/SpecialBlock"; -type FormValues = { +interface FormValues { name: string; companyName: string; email: string; password: string; news: boolean; security: boolean; -}; +} const MarginBlock = styled.div` margin-bottom: 15px; diff --git a/airbyte-webapp/src/packages/cloud/views/auth/components/Header.tsx b/airbyte-webapp/src/packages/cloud/views/auth/components/Header.tsx index ffe39e446ad9..00333a4c9f69 100644 --- a/airbyte-webapp/src/packages/cloud/views/auth/components/Header.tsx +++ b/airbyte-webapp/src/packages/cloud/views/auth/components/Header.tsx @@ -40,9 +40,9 @@ const TextBlock = styled.div` display: inline-block; `; -type HeaderProps = { +interface HeaderProps { toLogin?: boolean; -}; +} const Header: React.FC = ({ toLogin }) => { const { ui } = useConfig(); diff --git a/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/ConnectionCell.tsx b/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/ConnectionCell.tsx index c48995dc335c..71b53aea435a 100644 --- a/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/ConnectionCell.tsx +++ b/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/ConnectionCell.tsx @@ -5,12 +5,12 @@ import styled from "styled-components"; import { ConnectorIcon } from "components/ConnectorIcon"; -type ConnectionCellProps = { +interface ConnectionCellProps { sourceDefinitionName: string; destinationDefinitionName: string; sourceIcon?: string; destinationIcon?: string; -}; +} const Icon = styled(ConnectorIcon)` margin-right: 12px; diff --git a/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/UsageCell.tsx b/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/UsageCell.tsx index 65a463ad1778..a5b54ad70e1e 100644 --- a/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/UsageCell.tsx +++ b/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/UsageCell.tsx @@ -1,9 +1,9 @@ import React from "react"; import styled from "styled-components"; -type ConnectionCellProps = { +interface ConnectionCellProps { percent: number; -}; +} const Bar = styled.div` height: 10px; diff --git a/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/UsagePerConnectionTable.tsx b/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/UsagePerConnectionTable.tsx index 3ae58cf896b4..df4c3a7ddc04 100644 --- a/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/UsagePerConnectionTable.tsx +++ b/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/UsagePerConnectionTable.tsx @@ -28,9 +28,9 @@ const UsageValue = styled.div` min-width: 53px; `; -type UsagePerConnectionTableProps = { +interface UsagePerConnectionTableProps { creditConsumption: CreditConsumptionByConnector[]; -}; +} type FullTableProps = CreditConsumptionByConnector & { creditsConsumedPercent: number; diff --git a/airbyte-webapp/src/packages/cloud/views/layout/MainView/InsufficientPermissionsErrorBoundary.tsx b/airbyte-webapp/src/packages/cloud/views/layout/MainView/InsufficientPermissionsErrorBoundary.tsx index d47fd641e9f0..e6a1b27270dc 100644 --- a/airbyte-webapp/src/packages/cloud/views/layout/MainView/InsufficientPermissionsErrorBoundary.tsx +++ b/airbyte-webapp/src/packages/cloud/views/layout/MainView/InsufficientPermissionsErrorBoundary.tsx @@ -2,7 +2,10 @@ import React from "react"; import { CommonRequestError } from "core/request/CommonRequestError"; -type BoundaryState = { hasError: boolean; message?: React.ReactNode | null }; +interface BoundaryState { + hasError: boolean; + message?: React.ReactNode | null; +} const initialState: BoundaryState = { hasError: false, diff --git a/airbyte-webapp/src/packages/cloud/views/users/AccountSettingsView/components/EmailSection/typings.d.ts b/airbyte-webapp/src/packages/cloud/views/users/AccountSettingsView/components/EmailSection/typings.d.ts index b69aedd98426..6b880a540791 100644 --- a/airbyte-webapp/src/packages/cloud/views/users/AccountSettingsView/components/EmailSection/typings.d.ts +++ b/airbyte-webapp/src/packages/cloud/views/users/AccountSettingsView/components/EmailSection/typings.d.ts @@ -1,4 +1,4 @@ -export type FormValues = { +export interface FormValues { email: string; password: string; -}; +} diff --git a/airbyte-webapp/src/packages/cloud/views/users/AccountSettingsView/components/PasswordSection/typings.d.ts b/airbyte-webapp/src/packages/cloud/views/users/AccountSettingsView/components/PasswordSection/typings.d.ts index 5d9f004a9057..03b283a14b04 100644 --- a/airbyte-webapp/src/packages/cloud/views/users/AccountSettingsView/components/PasswordSection/typings.d.ts +++ b/airbyte-webapp/src/packages/cloud/views/users/AccountSettingsView/components/PasswordSection/typings.d.ts @@ -1,5 +1,5 @@ -export type FormValues = { +export interface FormValues { currentPassword: string; newPassword: string; passwordConfirmation: string; -}; +} diff --git a/airbyte-webapp/src/packages/cloud/views/users/InviteUsersModal/types.ts b/airbyte-webapp/src/packages/cloud/views/users/InviteUsersModal/types.ts index 351083bf4418..73138ceaf780 100644 --- a/airbyte-webapp/src/packages/cloud/views/users/InviteUsersModal/types.ts +++ b/airbyte-webapp/src/packages/cloud/views/users/InviteUsersModal/types.ts @@ -1,6 +1,6 @@ -export type Values = { +export interface Values { connectorType: string; name: string; website: string; email?: string; -}; +} diff --git a/airbyte-webapp/src/packages/cloud/views/workspaces/WorkspacesPage/components/CreateWorkspaceForm.tsx b/airbyte-webapp/src/packages/cloud/views/workspaces/WorkspacesPage/components/CreateWorkspaceForm.tsx index b812d423951c..fb94d8cfb27f 100644 --- a/airbyte-webapp/src/packages/cloud/views/workspaces/WorkspacesPage/components/CreateWorkspaceForm.tsx +++ b/airbyte-webapp/src/packages/cloud/views/workspaces/WorkspacesPage/components/CreateWorkspaceForm.tsx @@ -6,9 +6,9 @@ import * as yup from "yup"; import { LoadingButton, Input } from "components"; -type CreateWorkspaceFormProps = { +interface CreateWorkspaceFormProps { onSubmit: (values: { name: string }) => Promise; -}; +} const CreateWorkspaceFormValidationSchema = yup.object().shape({ name: yup.string().required("form.empty.error"), diff --git a/airbyte-webapp/src/pages/ConnectionPage/pages/AllConnectionsPage/components/ConnectionsTable.tsx b/airbyte-webapp/src/pages/ConnectionPage/pages/AllConnectionsPage/components/ConnectionsTable.tsx index f45968438a82..006bd8b9768e 100644 --- a/airbyte-webapp/src/pages/ConnectionPage/pages/AllConnectionsPage/components/ConnectionsTable.tsx +++ b/airbyte-webapp/src/pages/ConnectionPage/pages/AllConnectionsPage/components/ConnectionsTable.tsx @@ -13,9 +13,9 @@ import { useSourceDefinitionList } from "services/connector/SourceDefinitionServ import { WebBackendConnectionRead } from "../../../../../core/request/AirbyteClient"; -type IProps = { +interface IProps { connections: WebBackendConnectionRead[]; -}; +} const ConnectionsTable: React.FC = ({ connections }) => { const { push } = useRouter(); diff --git a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/ConnectionName.tsx b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/ConnectionName.tsx index e77c9fe2a449..e47d2104b9b1 100644 --- a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/ConnectionName.tsx +++ b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/ConnectionName.tsx @@ -9,9 +9,9 @@ import { WebBackendConnectionRead } from "core/request/AirbyteClient"; import { useUpdateConnection } from "hooks/services/useConnectionHook"; import addEnterEscFuncForInput from "utils/addEnterEscFuncForInput"; -type Props = { +interface Props { connection: WebBackendConnectionRead; -}; +} const MainContainer = styled.div` margin-top: 10px; diff --git a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/JobsList.tsx b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/JobsList.tsx index c811b79ffbe3..2e9de41d68ef 100644 --- a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/JobsList.tsx +++ b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/JobsList.tsx @@ -4,9 +4,9 @@ import { JobItem } from "components/JobItem/JobItem"; import { JobWithAttemptsRead } from "../../../../../core/request/AirbyteClient"; -type JobsListProps = { +interface JobsListProps { jobs: JobWithAttemptsRead[]; -}; +} export type JobsWithJobs = JobWithAttemptsRead & { job: Exclude }; diff --git a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/SettingsView.tsx b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/SettingsView.tsx index 5aff8813fc55..48a9a168ece6 100644 --- a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/SettingsView.tsx +++ b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/SettingsView.tsx @@ -5,9 +5,9 @@ import DeleteBlock from "components/DeleteBlock"; import { useDeleteConnection } from "hooks/services/useConnectionHook"; -type IProps = { +interface IProps { connectionId: string; -}; +} const Content = styled.div` max-width: 647px; diff --git a/airbyte-webapp/src/pages/ConnectionPage/pages/CreationFormPage/components/CheckConnection.tsx b/airbyte-webapp/src/pages/ConnectionPage/pages/CreationFormPage/components/CheckConnection.tsx index fec57afa5ae7..5b5543dc3faf 100644 --- a/airbyte-webapp/src/pages/ConnectionPage/pages/CreationFormPage/components/CheckConnection.tsx +++ b/airbyte-webapp/src/pages/ConnectionPage/pages/CreationFormPage/components/CheckConnection.tsx @@ -7,14 +7,14 @@ import StatusIcon from "components/StatusIcon"; import { createFormErrorMessage } from "utils/errorStatusMessage"; -type IProps = { +interface IProps { isLoading?: boolean; success?: boolean; type: "source" | "destination"; error?: number; retry?: () => void; linkToSettings?: string; -}; +} const Content = styled.div` min-height: 320px; diff --git a/airbyte-webapp/src/pages/ConnectionPage/pages/CreationFormPage/components/ExistingEntityForm.tsx b/airbyte-webapp/src/pages/ConnectionPage/pages/CreationFormPage/components/ExistingEntityForm.tsx index 55a92e64329e..f4f98d207ce6 100644 --- a/airbyte-webapp/src/pages/ConnectionPage/pages/CreationFormPage/components/ExistingEntityForm.tsx +++ b/airbyte-webapp/src/pages/ConnectionPage/pages/CreationFormPage/components/ExistingEntityForm.tsx @@ -14,10 +14,10 @@ import { useSourceDefinitionList } from "services/connector/SourceDefinitionServ import { useDestinationList } from "../../../../../hooks/services/useDestinationHook"; import { useSourceList } from "../../../../../hooks/services/useSourceHook"; -type IProps = { +interface IProps { type: "source" | "destination"; onSubmit: (id: string) => void; -}; +} const FormContent = styled(Form)` padding: 22px 27px 23px 24px; diff --git a/airbyte-webapp/src/pages/DestinationPage/pages/AllDestinationsPage/components/DestinationsTable.tsx b/airbyte-webapp/src/pages/DestinationPage/pages/AllDestinationsPage/components/DestinationsTable.tsx index 832635722cf1..6f54858580c4 100644 --- a/airbyte-webapp/src/pages/DestinationPage/pages/AllDestinationsPage/components/DestinationsTable.tsx +++ b/airbyte-webapp/src/pages/DestinationPage/pages/AllDestinationsPage/components/DestinationsTable.tsx @@ -9,9 +9,9 @@ import { useConnectionList } from "hooks/services/useConnectionHook"; import useRouter from "hooks/useRouter"; import { useDestinationDefinitionList } from "services/connector/DestinationDefinitionService"; -type DestinationsTableProps = { +interface DestinationsTableProps { destinations: DestinationRead[]; -}; +} const DestinationsTable: React.FC = ({ destinations }) => { const { push } = useRouter(); diff --git a/airbyte-webapp/src/pages/DestinationPage/pages/DestinationItemPage/components/DestinationConnectionTable.tsx b/airbyte-webapp/src/pages/DestinationPage/pages/DestinationItemPage/components/DestinationConnectionTable.tsx index 573b2ec384ad..b8b2a5973eb1 100644 --- a/airbyte-webapp/src/pages/DestinationPage/pages/DestinationItemPage/components/DestinationConnectionTable.tsx +++ b/airbyte-webapp/src/pages/DestinationPage/pages/DestinationItemPage/components/DestinationConnectionTable.tsx @@ -14,9 +14,9 @@ import { useSourceDefinitionList } from "services/connector/SourceDefinitionServ import { WebBackendConnectionRead } from "../../../../../core/request/AirbyteClient"; -type IProps = { +interface IProps { connections: WebBackendConnectionRead[]; -}; +} const DestinationConnectionTable: React.FC = ({ connections }) => { const { push } = useRouter(); diff --git a/airbyte-webapp/src/pages/DestinationPage/pages/DestinationItemPage/components/DestinationSettings.tsx b/airbyte-webapp/src/pages/DestinationPage/pages/DestinationItemPage/components/DestinationSettings.tsx index e2da1553b6b2..05ffcb126792 100644 --- a/airbyte-webapp/src/pages/DestinationPage/pages/DestinationItemPage/components/DestinationSettings.tsx +++ b/airbyte-webapp/src/pages/DestinationPage/pages/DestinationItemPage/components/DestinationSettings.tsx @@ -18,10 +18,10 @@ const Content = styled.div` margin: 19px auto; `; -type DestinationsSettingsProps = { +interface DestinationsSettingsProps { currentDestination: DestinationRead; connectionsWithDestination: WebBackendConnectionRead[]; -}; +} const DestinationsSettings: React.FC = ({ currentDestination, diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/ConnectionStep.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/ConnectionStep.tsx index 7fb80cc08c5a..67a7bf3e000e 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/ConnectionStep.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/ConnectionStep.tsx @@ -5,9 +5,9 @@ import CreateConnectionContent from "components/CreateConnectionContent"; import { useDestinationList } from "hooks/services/useDestinationHook"; import { useSourceList } from "hooks/services/useSourceHook"; -type IProps = { +interface IProps { onNextStep: () => void; -}; +} const ConnectionStep: React.FC = ({ onNextStep: afterSubmitConnection }) => { const { sources } = useSourceList(); diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/DestinationStep.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/DestinationStep.tsx index fda39be22e74..c20f3c29160f 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/DestinationStep.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/DestinationStep.tsx @@ -10,10 +10,10 @@ import { createFormErrorMessage } from "utils/errorStatusMessage"; import { ConnectorCard } from "views/Connector/ConnectorCard"; import { useDocumentationPanelContext } from "views/Connector/ConnectorDocumentationLayout/DocumentationPanelContext"; -type Props = { +interface Props { onNextStep: () => void; onSuccess: () => void; -}; +} const DestinationStep: React.FC = ({ onNextStep, onSuccess }) => { const [destinationDefinitionId, setDestinationDefinitionId] = useState(null); diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/LetterLine.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/LetterLine.tsx index 218f90451b01..637c076d98ce 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/LetterLine.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/LetterLine.tsx @@ -61,10 +61,10 @@ const Img = styled.img<{ exit?: boolean }>` animation-fill-mode: both; `; -type LetterLineProps = { +interface LetterLineProps { onRight?: boolean; exit?: boolean; -}; +} const LetterLine: React.FC = ({ onRight, exit }) => { return ( diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/ProgressBlock.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/ProgressBlock.tsx index 09028ddde6bc..6bafe48355d4 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/ProgressBlock.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/ProgressBlock.tsx @@ -57,10 +57,10 @@ const PaddedButton = styled(Button)` margin-left: 10px; `; -type ProgressBlockProps = { +interface ProgressBlockProps { connection: WebBackendConnectionRead; onSync: () => void; -}; +} const ProgressBlock: React.FC = ({ connection, onSync }) => { const showMessage = (status: JobStatus | undefined) => { diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/SkipOnboardingButton.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/SkipOnboardingButton.tsx index e8d21cfe2516..b6df07ae5dd2 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/SkipOnboardingButton.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/SkipOnboardingButton.tsx @@ -10,9 +10,9 @@ const ButtonWithMargin = styled(Button)` margin-right: 9px; `; -type IProps = { +interface IProps { step: string; -}; +} const SkipOnboardingButton: React.FC = ({ step }) => { const { finishOnboarding } = useWorkspace(); diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/StepsCounter/StepsCounter.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/StepsCounter/StepsCounter.tsx index 93a73d1e443f..bf7092e61836 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/StepsCounter/StepsCounter.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/StepsCounter/StepsCounter.tsx @@ -5,10 +5,10 @@ import { StepType } from "../../types"; import StarsIcon from "./components/StarsIcon"; import StepItem from "./components/StepItem"; -type StepsCounterProps = { +interface StepsCounterProps { steps: { id: StepType; name?: React.ReactNode }[]; currentStep: StepType; -}; +} const Steps = styled.div` display: flex; diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/StepsCounter/components/StepItem.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/StepsCounter/components/StepItem.tsx index 61c0ed19f6a6..f1cec434f2d4 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/StepsCounter/components/StepItem.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/StepsCounter/components/StepItem.tsx @@ -1,11 +1,11 @@ import React from "react"; import styled from "styled-components"; -type StepItemProps = { +interface StepItemProps { active?: boolean; current?: boolean; children?: React.ReactNode; -}; +} const Content = styled.div<{ active?: boolean }>` display: flex; diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/TitlesBlock.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/TitlesBlock.tsx index c14444a4e664..308607005f2a 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/TitlesBlock.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/TitlesBlock.tsx @@ -3,11 +3,11 @@ import styled from "styled-components"; import { H1 } from "components/base"; -type TitlesBlockProps = { +interface TitlesBlockProps { title: React.ReactNode; children?: React.ReactNode; testId?: string; -}; +} const TitlesContent = styled.div` padding: 42px 0 33px; diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/UseCaseBlock.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/UseCaseBlock.tsx index 6fd7785a5f11..5b9cdf1bf395 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/UseCaseBlock.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/UseCaseBlock.tsx @@ -4,12 +4,12 @@ import styled from "styled-components"; import ContentCard from "components/ContentCard"; -type UseCaseBlockProps = { +interface UseCaseBlockProps { count: number; id: string; href: string; onSkip: (id: string) => void; -}; +} const Block = styled(ContentCard)` margin-bottom: 10px; diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/VideoItem.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/VideoItem.tsx index 0bf7dec97b7e..70289743f3df 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/VideoItem.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/VideoItem.tsx @@ -4,13 +4,13 @@ import styled from "styled-components"; import PlayButton from "./components/PlayButton"; import ShowVideo from "./components/ShowVideo"; -type VideoItemProps = { +interface VideoItemProps { small?: boolean; videoId?: string; link?: string; img?: string; description?: React.ReactNode; -}; +} const Content = styled.div<{ small?: boolean }>` width: ${({ small }) => (small ? 158 : 317)}px; diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/components/PlayButton.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/components/PlayButton.tsx index f444d06fea95..d02f16e2d09a 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/components/PlayButton.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/components/PlayButton.tsx @@ -1,11 +1,11 @@ import React from "react"; import styled, { keyframes } from "styled-components"; -type PlayButtonProps = { +interface PlayButtonProps { small?: boolean; onClick: () => void; isLink?: boolean; -}; +} export const BigCircleAnimation = keyframes` 0% { diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/components/ShowVideo.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/components/ShowVideo.tsx index 6641a4301f6e..edd39454b057 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/components/ShowVideo.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/VideoItem/components/ShowVideo.tsx @@ -6,10 +6,10 @@ import styled from "styled-components"; import { Button } from "components/base"; import Modal from "components/Modal"; -type ShowVideoProps = { +interface ShowVideoProps { videoId?: string; onClose: () => void; -}; +} const CloseButton = styled(Button)` position: absolute; diff --git a/airbyte-webapp/src/pages/OnboardingPage/components/WelcomeStep.tsx b/airbyte-webapp/src/pages/OnboardingPage/components/WelcomeStep.tsx index 51b3ff3e6746..f04c31a7d91c 100644 --- a/airbyte-webapp/src/pages/OnboardingPage/components/WelcomeStep.tsx +++ b/airbyte-webapp/src/pages/OnboardingPage/components/WelcomeStep.tsx @@ -10,10 +10,10 @@ import HighlightedText from "./HighlightedText"; import TitlesBlock from "./TitlesBlock"; import VideoItem from "./VideoItem"; -type WelcomeStepProps = { +interface WelcomeStepProps { onNextStep: () => void; userName?: string; -}; +} const Videos = styled.div` width: 100%; diff --git a/airbyte-webapp/src/pages/SettingsPage/SettingsPage.tsx b/airbyte-webapp/src/pages/SettingsPage/SettingsPage.tsx index 6c79c490a9cd..9a310ee1d231 100644 --- a/airbyte-webapp/src/pages/SettingsPage/SettingsPage.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/SettingsPage.tsx @@ -30,13 +30,13 @@ const MainView = styled.div` margin-left: 47px; `; -export type PageConfig = { +export interface PageConfig { menuConfig: CategoryItem[]; -}; +} -type SettingsPageProps = { +interface SettingsPageProps { pageConfig?: PageConfig; -}; +} export const SettingsRoute = { Account: "account", diff --git a/airbyte-webapp/src/pages/SettingsPage/components/FeedbackBlock.tsx b/airbyte-webapp/src/pages/SettingsPage/components/FeedbackBlock.tsx index 52063a0e3223..1ec6c086e8db 100644 --- a/airbyte-webapp/src/pages/SettingsPage/components/FeedbackBlock.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/components/FeedbackBlock.tsx @@ -3,11 +3,11 @@ import styled from "styled-components"; import Spinner from "components/Spinner"; -export type FeedbackBlockProps = { +export interface FeedbackBlockProps { isLoading?: boolean; successMessage?: React.ReactNode; errorMessage?: React.ReactNode; -}; +} const SuccessBlock = styled.div` margin: -10px 10px; diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/AccountPage/components/AccountForm.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/AccountPage/components/AccountForm.tsx index 2c525ba3e382..8780621d4d4f 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/AccountPage/components/AccountForm.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/AccountPage/components/AccountForm.tsx @@ -44,12 +44,12 @@ const accountValidationSchema = yup.object().shape({ email: yup.string().email("form.email.error").required("form.empty.error"), }); -type AccountFormProps = { +interface AccountFormProps { email: string; successMessage?: React.ReactNode; errorMessage?: React.ReactNode; onSubmit: (data: { email: string }) => void; -}; +} const AccountForm: React.FC = ({ email, onSubmit, successMessage, errorMessage }) => { const formatMessage = useIntl().formatMessage; diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConfigurationsPage/components/ImportConfigurationModal.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/ConfigurationsPage/components/ImportConfigurationModal.tsx index fdac1a0d7103..2b25004ce84e 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConfigurationsPage/components/ImportConfigurationModal.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/ConfigurationsPage/components/ImportConfigurationModal.tsx @@ -6,7 +6,7 @@ import { Button } from "components"; import FileDropZone from "components/FileDropZone"; import Modal from "components/Modal"; -export type IProps = { +export interface IProps { onClose: () => void; // eslint-disable-next-line @typescript-eslint/no-explicit-any onSubmit: (data: any) => void; @@ -14,7 +14,7 @@ export type IProps = { isLoading?: boolean; error?: Error | null | boolean; cleanError?: () => void; -}; +} const Content = styled.div` padding: 18px 37px 28px; diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorCell.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorCell.tsx index 615d2c26b343..6af1fe4551fc 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorCell.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorCell.tsx @@ -8,13 +8,13 @@ import { ReleaseStageBadge } from "components/ReleaseStageBadge"; import { ReleaseStage } from "core/request/AirbyteClient"; import { getIcon } from "utils/imageUtils"; -type ConnectorCellProps = { +interface ConnectorCellProps { connectorName: string; img?: string; hasUpdate?: boolean; isDeprecated?: boolean; releaseStage?: ReleaseStage; -}; +} const Content = styled.div<{ enabled?: boolean }>` display: flex; diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.tsx index 141495a500e4..055082a788e6 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.tsx @@ -18,7 +18,7 @@ import { Block, FormContentTitle, Title } from "./PageComponents"; import UpgradeAllButton from "./UpgradeAllButton"; import VersionCell from "./VersionCell"; -type ConnectorsViewProps = { +interface ConnectorsViewProps { type: "sources" | "destinations"; isUpdateSuccess: boolean; hasNewConnectorVersion?: boolean; @@ -29,7 +29,7 @@ type ConnectorsViewProps = { onUpdate: () => void; onUpdateVersion: ({ id, version }: { id: string; version: string }) => void; feedbackList: Record; -}; +} const defaultSorting = [{ id: "name" }]; diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/CreateConnector.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/CreateConnector.tsx index 55ff16e2b6cd..e912eea39a01 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/CreateConnector.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/CreateConnector.tsx @@ -10,16 +10,16 @@ import { useCreateSourceDefinition } from "services/connector/SourceDefinitionSe import CreateConnectorModal from "./CreateConnectorModal"; -type IProps = { +interface IProps { type: string; -}; +} -type ICreateProps = { +interface ICreateProps { name: string; documentationUrl: string; dockerImageTag: string; dockerRepository: string; -}; +} const CreateConnector: React.FC = ({ type }) => { const { push } = useRouter(); diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/CreateConnectorModal.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/CreateConnectorModal.tsx index b221f4e00b30..bffc74b5dfaf 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/CreateConnectorModal.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/CreateConnectorModal.tsx @@ -8,7 +8,7 @@ import { Button, LabeledInput, Link, Modal, StatusIcon } from "components"; import { useConfig } from "config"; -export type IProps = { +export interface IProps { errorMessage?: string; onClose: () => void; onSubmit: (sourceDefinition: { @@ -17,7 +17,7 @@ export type IProps = { dockerImageTag: string; dockerRepository: string; }) => void; -}; +} const Content = styled.div` width: 585px; diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ImageCell.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ImageCell.tsx index 8ee7b41772bd..c2a7fbcaaff5 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ImageCell.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ImageCell.tsx @@ -1,10 +1,10 @@ import React from "react"; import styled from "styled-components"; -type ImageCellProps = { +interface ImageCellProps { imageName: string; link: string | undefined; -}; +} const Link = styled.a` height: 17px; diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/UpgradeAllButton.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/UpgradeAllButton.tsx index 058a5a9c8321..b666f8f6d1fc 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/UpgradeAllButton.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/UpgradeAllButton.tsx @@ -33,12 +33,12 @@ const ErrorBlock = styled.div` left: -46px; `; -type UpdateAllButtonProps = { +interface UpdateAllButtonProps { onUpdate: () => void; isLoading: boolean; hasError: boolean; hasSuccess: boolean; -}; +} const UpgradeAllButton: React.FC = ({ onUpdate, isLoading, hasError, hasSuccess }) => { return ( diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/VersionCell.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/VersionCell.tsx index 86c2189d6d47..702ecece29dc 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/VersionCell.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/VersionCell.tsx @@ -9,13 +9,13 @@ import { DEV_IMAGE_TAG } from "core/domain/connector/constants"; import { FormContent } from "./PageComponents"; -type IProps = { +interface IProps { version: string; currentVersion: string; id: string; onChange: ({ version, id }: { version: string; id: string }) => void; feedback?: "success" | string; -}; +} const VersionInput = styled(Input)` max-width: 145px; diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/MetricsPage/components/MetricsForm.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/MetricsPage/components/MetricsForm.tsx index e2159338975d..e17e28897770 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/MetricsPage/components/MetricsForm.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/MetricsPage/components/MetricsForm.tsx @@ -9,13 +9,13 @@ import { useConfig } from "config"; import FeedbackBlock from "../../../components/FeedbackBlock"; -export type MetricsFormProps = { +export interface MetricsFormProps { onChange: (data: { anonymousDataCollection: boolean }) => void; anonymousDataCollection?: boolean; successMessage?: React.ReactNode; errorMessage?: React.ReactNode; isLoading?: boolean; -}; +} const FormItem = styled.div` display: flex; diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/NotificationPage/components/NotificationsForm.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/NotificationPage/components/NotificationsForm.tsx index aa46bfb30f7f..89ec7605c23e 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/NotificationPage/components/NotificationsForm.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/NotificationPage/components/NotificationsForm.tsx @@ -7,7 +7,7 @@ import { LabeledSwitch } from "components/LabeledSwitch"; import FeedbackBlock from "../../../components/FeedbackBlock"; -export type NotificationsFormProps = { +export interface NotificationsFormProps { onChange: (data: { news: boolean; securityUpdates: boolean }) => void; preferencesValues: { news: boolean; @@ -16,7 +16,7 @@ export type NotificationsFormProps = { successMessage?: React.ReactNode; errorMessage?: React.ReactNode; isLoading?: boolean; -}; +} const FormItem = styled.div` margin-bottom: 10px; diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/NotificationPage/components/WebHookForm.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/NotificationPage/components/WebHookForm.tsx index 299f2b2f0d99..c72d4547bead 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/NotificationPage/components/WebHookForm.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/NotificationPage/components/WebHookForm.tsx @@ -51,13 +51,13 @@ const webhookValidationSchema = yup.object().shape({ sendOnFailure: yup.boolean(), }); -type WebHookFormProps = { +interface WebHookFormProps { webhook: WebhookPayload; successMessage?: React.ReactNode; errorMessage?: React.ReactNode; onSubmit: (data: WebhookPayload) => void; onTest: (data: WebhookPayload) => void; -}; +} const WebHookForm: React.FC = ({ webhook, onSubmit, successMessage, errorMessage, onTest }) => { const formatMessage = useIntl().formatMessage; diff --git a/airbyte-webapp/src/pages/SourcesPage/pages/AllSourcesPage/components/SourcesTable.tsx b/airbyte-webapp/src/pages/SourcesPage/pages/AllSourcesPage/components/SourcesTable.tsx index 1d662d7c16eb..1f5ab7d38edb 100644 --- a/airbyte-webapp/src/pages/SourcesPage/pages/AllSourcesPage/components/SourcesTable.tsx +++ b/airbyte-webapp/src/pages/SourcesPage/pages/AllSourcesPage/components/SourcesTable.tsx @@ -10,9 +10,9 @@ import useRouter from "hooks/useRouter"; import { useSourceDefinitionList } from "../../../../../services/connector/SourceDefinitionService"; -type SourcesTableProps = { +interface SourcesTableProps { sources: SourceRead[]; -}; +} const SourcesTable: React.FC = ({ sources }) => { const { push } = useRouter(); diff --git a/airbyte-webapp/src/pages/SourcesPage/pages/SourceItemPage/components/SourceConnectionTable.tsx b/airbyte-webapp/src/pages/SourcesPage/pages/SourceItemPage/components/SourceConnectionTable.tsx index 3badeda1ca1b..cb8a15fe48a7 100644 --- a/airbyte-webapp/src/pages/SourcesPage/pages/SourceItemPage/components/SourceConnectionTable.tsx +++ b/airbyte-webapp/src/pages/SourcesPage/pages/SourceItemPage/components/SourceConnectionTable.tsx @@ -14,9 +14,9 @@ import { useSourceDefinitionList } from "services/connector/SourceDefinitionServ import { WebBackendConnectionRead } from "../../../../../core/request/AirbyteClient"; -type IProps = { +interface IProps { connections: WebBackendConnectionRead[]; -}; +} const SourceConnectionTable: React.FC = ({ connections }) => { const { push } = useRouter(); diff --git a/airbyte-webapp/src/services/connector/useSuspenseQuery.ts b/airbyte-webapp/src/services/connector/useSuspenseQuery.ts index 05991d30fd7f..06ae7087ce81 100644 --- a/airbyte-webapp/src/services/connector/useSuspenseQuery.ts +++ b/airbyte-webapp/src/services/connector/useSuspenseQuery.ts @@ -1,6 +1,8 @@ import { QueryFunction, QueryKey, useQuery, UseQueryOptions } from "react-query"; -type Disabled = { enabled: false }; +interface Disabled { + enabled: false; +} export function useSuspenseQuery< TQueryFnData = unknown, diff --git a/airbyte-webapp/src/services/workspaces/WorkspacesService.tsx b/airbyte-webapp/src/services/workspaces/WorkspacesService.tsx index 584bbc0bdd49..ed799d341181 100644 --- a/airbyte-webapp/src/services/workspaces/WorkspacesService.tsx +++ b/airbyte-webapp/src/services/workspaces/WorkspacesService.tsx @@ -20,10 +20,10 @@ export const workspaceKeys = { state: (workspaceId: string) => [...workspaceKeys.all, "state", workspaceId] as const, }; -type Context = { +interface Context { selectWorkspace: (workspaceId?: string | null | Workspace) => void; exitWorkspace: () => void; -}; +} export const WorkspaceServiceContext = React.createContext(null); diff --git a/airbyte-webapp/src/utils/testutils.tsx b/airbyte-webapp/src/utils/testutils.tsx index 9961a98d6718..8d825120b48f 100644 --- a/airbyte-webapp/src/utils/testutils.tsx +++ b/airbyte-webapp/src/utils/testutils.tsx @@ -10,9 +10,9 @@ import { ServicesProvider } from "core/servicesProvider"; import { FeatureService } from "hooks/services/Feature"; import en from "locales/en.json"; -type WrapperProps = { +interface WrapperProps { children?: React.ReactElement; -}; +} export async function render< Q extends Queries = typeof queries, diff --git a/airbyte-webapp/src/views/Connection/CatalogTree/StreamFieldTable.tsx b/airbyte-webapp/src/views/Connection/CatalogTree/StreamFieldTable.tsx index ed04071a5032..92d702229933 100644 --- a/airbyte-webapp/src/views/Connection/CatalogTree/StreamFieldTable.tsx +++ b/airbyte-webapp/src/views/Connection/CatalogTree/StreamFieldTable.tsx @@ -16,14 +16,14 @@ const RowsContainer = styled.div` margin: 0 10px 5px 10px; `; -type StreamFieldTableProps = { +interface StreamFieldTableProps { syncSchemaFields: SyncSchemaField[]; config: AirbyteStreamConfiguration | undefined; shouldDefinePk: boolean; shouldDefineCursor: boolean; onCursorSelect: (cursorPath: string[]) => void; onPkSelect: (pkPath: string[]) => void; -}; +} export const StreamFieldTable: React.FC = (props) => { const { config } = props; diff --git a/airbyte-webapp/src/views/Connection/CatalogTree/StreamHeader.tsx b/airbyte-webapp/src/views/Connection/CatalogTree/StreamHeader.tsx index c36f1793bba4..0921ea7e8a4c 100644 --- a/airbyte-webapp/src/views/Connection/CatalogTree/StreamHeader.tsx +++ b/airbyte-webapp/src/views/Connection/CatalogTree/StreamHeader.tsx @@ -22,10 +22,10 @@ const EmptyField = styled.span` color: ${({ theme }) => theme.greyColor40}; `; -type SyncSchema = { +interface SyncSchema { syncMode: SyncMode; destinationSyncMode: DestinationSyncMode; -}; +} interface StreamHeaderProps { stream: SyncSchemaStream; diff --git a/airbyte-webapp/src/views/Connection/CatalogTree/components/Arrow.tsx b/airbyte-webapp/src/views/Connection/CatalogTree/components/Arrow.tsx index 533b4a322fa4..779961a793d5 100644 --- a/airbyte-webapp/src/views/Connection/CatalogTree/components/Arrow.tsx +++ b/airbyte-webapp/src/views/Connection/CatalogTree/components/Arrow.tsx @@ -3,12 +3,12 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import React from "react"; import styled from "styled-components"; -type ArrowProps = { +interface ArrowProps { isItemHasChildren?: boolean; depth?: number; isItemOpen?: boolean; onExpand?: () => void; -}; +} const ArrowContainer = styled.span` padding: 0 12px; diff --git a/airbyte-webapp/src/views/Connection/CatalogTree/components/BulkHeader.tsx b/airbyte-webapp/src/views/Connection/CatalogTree/components/BulkHeader.tsx index 001d146d072f..82259d649114 100644 --- a/airbyte-webapp/src/views/Connection/CatalogTree/components/BulkHeader.tsx +++ b/airbyte-webapp/src/views/Connection/CatalogTree/components/BulkHeader.tsx @@ -32,9 +32,9 @@ const ActionButton = styled(Button).attrs({ white-space: nowrap; `; -type BulkHeaderProps = { +interface BulkHeaderProps { destinationSupportedSyncModes: DestinationSyncMode[]; -}; +} function calculateSharedFields(selectedBatchNodes: SyncSchemaStream[]) { const primitiveFieldsByStream = selectedBatchNodes.map(({ stream }) => { diff --git a/airbyte-webapp/src/views/Connection/CatalogTree/components/DataTypeCell.tsx b/airbyte-webapp/src/views/Connection/CatalogTree/components/DataTypeCell.tsx index 31e43800c323..39edf770046b 100644 --- a/airbyte-webapp/src/views/Connection/CatalogTree/components/DataTypeCell.tsx +++ b/airbyte-webapp/src/views/Connection/CatalogTree/components/DataTypeCell.tsx @@ -4,9 +4,9 @@ import styled from "styled-components"; import { Cell } from "components/SimpleTableComponents"; -type DataTypeCellProps = { +interface DataTypeCellProps { nullable?: boolean; -}; +} const Description = styled.div` color: ${({ theme }) => theme.greyColor40}; diff --git a/airbyte-webapp/src/views/Connection/CatalogTree/components/PathPopout.tsx b/airbyte-webapp/src/views/Connection/CatalogTree/components/PathPopout.tsx index 05a6200df76b..f0e98810ba06 100644 --- a/airbyte-webapp/src/views/Connection/CatalogTree/components/PathPopout.tsx +++ b/airbyte-webapp/src/views/Connection/CatalogTree/components/PathPopout.tsx @@ -29,17 +29,17 @@ type PathPopoutProps = { placeholder?: React.ReactNode; } & (PathMultiProps | PathProps); -type PathMultiProps = { +interface PathMultiProps { path?: Path[]; onPathChange: (pkPath: Path[]) => void; isMulti: true; -}; +} -type PathProps = { +interface PathProps { path?: Path; onPathChange: (pkPath: Path) => void; isMulti?: false; -}; +} export const PathPopout: React.FC = (props) => { if (props.pathType === "sourceDefined") { diff --git a/airbyte-webapp/src/views/Connection/CatalogTree/components/Tooltip.tsx b/airbyte-webapp/src/views/Connection/CatalogTree/components/Tooltip.tsx index e56cb7e77315..81f686e62aa1 100644 --- a/airbyte-webapp/src/views/Connection/CatalogTree/components/Tooltip.tsx +++ b/airbyte-webapp/src/views/Connection/CatalogTree/components/Tooltip.tsx @@ -21,10 +21,10 @@ const TooltipContainer = styled.div` } `; -type TooltipProps = { +interface TooltipProps { items?: string[]; className?: string; -}; +} const Tooltip: React.FC = ({ items = [], className }) => { if (items.length === 0) { diff --git a/airbyte-webapp/src/views/Connection/ConnectionForm/components/CreateControls.tsx b/airbyte-webapp/src/views/Connection/ConnectionForm/components/CreateControls.tsx index 3fa96beb9666..dab88e8f6a1b 100644 --- a/airbyte-webapp/src/views/Connection/ConnectionForm/components/CreateControls.tsx +++ b/airbyte-webapp/src/views/Connection/ConnectionForm/components/CreateControls.tsx @@ -4,12 +4,12 @@ import styled from "styled-components"; import { Button, Spinner, StatusIcon } from "components"; -type IProps = { +interface IProps { isSubmitting: boolean; isValid: boolean; errorMessage?: React.ReactNode; additionBottomControls?: React.ReactNode; -}; +} const ButtonContainer = styled.div` margin-top: 34px; diff --git a/airbyte-webapp/src/views/Connection/ConnectionForm/components/EditControls.tsx b/airbyte-webapp/src/views/Connection/ConnectionForm/components/EditControls.tsx index 0ff9e6545f5d..a75012708327 100644 --- a/airbyte-webapp/src/views/Connection/ConnectionForm/components/EditControls.tsx +++ b/airbyte-webapp/src/views/Connection/ConnectionForm/components/EditControls.tsx @@ -4,7 +4,7 @@ import styled from "styled-components"; import { Button, LoadingButton } from "components"; -type IProps = { +interface IProps { isSubmitting: boolean; dirty: boolean; resetForm: () => void; @@ -12,7 +12,7 @@ type IProps = { errorMessage?: React.ReactNode; editSchemeMode?: boolean; withLine?: boolean; -}; +} const Warning = styled.div` margin-bottom: 10px; diff --git a/airbyte-webapp/src/views/Connection/ConnectionForm/components/Search.tsx b/airbyte-webapp/src/views/Connection/ConnectionForm/components/Search.tsx index 4ef85ba723d3..0ccda61dae1a 100644 --- a/airbyte-webapp/src/views/Connection/ConnectionForm/components/Search.tsx +++ b/airbyte-webapp/src/views/Connection/ConnectionForm/components/Search.tsx @@ -4,9 +4,9 @@ import styled from "styled-components"; import { Input } from "components"; -type SearchProps = { +interface SearchProps { onSearch: (value: string) => void; -}; +} const SearchInput = styled(Input)` padding: 10px 8px 9px; diff --git a/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx b/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx index 3f30bc0c3686..368b51a53c30 100644 --- a/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx +++ b/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx @@ -28,7 +28,7 @@ import { useCurrentWorkspace } from "services/workspaces/WorkspacesService"; import calculateInitialCatalog from "./calculateInitialCatalog"; -type FormikConnectionFormValues = { +interface FormikConnectionFormValues { name?: string; schedule?: ConnectionSchedule | null; prefix: string; @@ -37,7 +37,7 @@ type FormikConnectionFormValues = { namespaceFormat: string; transformations?: OperationRead[]; normalization?: NormalizationType; -}; +} type ConnectionFormValues = ValuesProps; diff --git a/airbyte-webapp/src/views/Connector/ConnectorCard/ConnectorCard.tsx b/airbyte-webapp/src/views/Connector/ConnectorCard/ConnectorCard.tsx index e70ba383567b..fb1fa6aaabb2 100644 --- a/airbyte-webapp/src/views/Connector/ConnectorCard/ConnectorCard.tsx +++ b/airbyte-webapp/src/views/Connector/ConnectorCard/ConnectorCard.tsx @@ -13,12 +13,12 @@ import { ServiceForm, ServiceFormProps, ServiceFormValues } from "views/Connecto import { useTestConnector } from "./useTestConnector"; -export type ConnectorCardProvidedProps = { +export interface ConnectorCardProvidedProps { isTestConnectionInProgress: boolean; isSuccess: boolean; onStopTesting: () => void; testConnector: (v?: ServiceFormValues) => Promise; -}; +} export const ConnectorCard: React.FC< { diff --git a/airbyte-webapp/src/views/Connector/RequestConnectorModal/RequestConnectorModal.tsx b/airbyte-webapp/src/views/Connector/RequestConnectorModal/RequestConnectorModal.tsx index 5d42a8d7a036..1970ca531c61 100644 --- a/airbyte-webapp/src/views/Connector/RequestConnectorModal/RequestConnectorModal.tsx +++ b/airbyte-webapp/src/views/Connector/RequestConnectorModal/RequestConnectorModal.tsx @@ -10,11 +10,11 @@ import { useCurrentWorkspace } from "services/workspaces/WorkspacesService"; import ConnectorForm from "./components/ConnectorForm"; import { Values } from "./types"; -type RequestConnectorModalProps = { +interface RequestConnectorModalProps { onClose: () => void; connectorType: "source" | "destination"; initialName?: string; -}; +} const Content = styled.div` width: 492px; padding: 22px 34px 36px 32px; diff --git a/airbyte-webapp/src/views/Connector/RequestConnectorModal/components/ConnectorForm.tsx b/airbyte-webapp/src/views/Connector/RequestConnectorModal/components/ConnectorForm.tsx index c3e469e04a14..a4798ab734bd 100644 --- a/airbyte-webapp/src/views/Connector/RequestConnectorModal/components/ConnectorForm.tsx +++ b/airbyte-webapp/src/views/Connector/RequestConnectorModal/components/ConnectorForm.tsx @@ -28,12 +28,12 @@ const RequestButton = styled(Button)` min-width: 105px; `; -type ConnectorFormProps = { +interface ConnectorFormProps { onSubmit: (values: Values) => void; onCancel: () => void; currentValues?: Values; hasFeedback?: boolean; -}; +} const requestConnectorValidationSchema = yup.object().shape({ connectorType: yup.string().required("form.empty.error"), diff --git a/airbyte-webapp/src/views/Connector/RequestConnectorModal/types.ts b/airbyte-webapp/src/views/Connector/RequestConnectorModal/types.ts index 240dd43e5c0b..ffefb9688495 100644 --- a/airbyte-webapp/src/views/Connector/RequestConnectorModal/types.ts +++ b/airbyte-webapp/src/views/Connector/RequestConnectorModal/types.ts @@ -1,6 +1,6 @@ -export type Values = { +export interface Values { connectorType: string; name: string; additionalInfo?: string; email?: string; -}; +} diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/FormRoot.tsx b/airbyte-webapp/src/views/Connector/ServiceForm/FormRoot.tsx index a7c1389d58dc..4da0ad1161f0 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/FormRoot.tsx +++ b/airbyte-webapp/src/views/Connector/ServiceForm/FormRoot.tsx @@ -26,7 +26,7 @@ const LoadingMessage = styled.div` margin-top: 10px; `; -type FormRootProps = { +interface FormRootProps { formFields: FormBlock; hasSuccess?: boolean; isTestConnectionInProgress?: boolean; @@ -35,7 +35,7 @@ type FormRootProps = { successMessage?: React.ReactNode; onRetest?: () => void; onStopTestingConnector?: () => void; -}; +} const FormRoot: React.FC = ({ isTestConnectionInProgress = false, diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/ServiceForm.tsx b/airbyte-webapp/src/views/Connector/ServiceForm/ServiceForm.tsx index 5e43ee3ce9a8..1d343b13407b 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/ServiceForm.tsx +++ b/airbyte-webapp/src/views/Connector/ServiceForm/ServiceForm.tsx @@ -97,7 +97,7 @@ const SetDefaultName: React.FC = () => { return null; }; -export type ServiceFormProps = { +export interface ServiceFormProps { formType: "source" | "destination"; availableServices: ConnectorDefinition[]; selectedConnectorDefinitionSpecification?: ConnectorDefinitionSpecification; @@ -114,7 +114,7 @@ export type ServiceFormProps = { isTestConnectionInProgress?: boolean; onStopTesting?: () => void; testConnector?: (v?: ServiceFormValues) => Promise; -}; +} const ServiceForm: React.FC = (props) => { const formId = useUniqueFormId(); diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/components/CreateControls.tsx b/airbyte-webapp/src/views/Connector/ServiceForm/components/CreateControls.tsx index db79d95949bb..d81bf306ff8a 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/components/CreateControls.tsx +++ b/airbyte-webapp/src/views/Connector/ServiceForm/components/CreateControls.tsx @@ -8,7 +8,7 @@ import { TestingConnectionError, FetchingConnectorError } from "./TestingConnect import TestingConnectionSpinner from "./TestingConnectionSpinner"; import TestingConnectionSuccess from "./TestingConnectionSuccess"; -type IProps = { +interface IProps { formType: "source" | "destination"; isSubmitting: boolean; errorMessage?: React.ReactNode; @@ -18,7 +18,7 @@ type IProps = { isTestConnectionInProgress: boolean; onCancelTesting?: () => void; -}; +} const ButtonContainer = styled.div` margin-top: 34px; diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/components/EditControls.tsx b/airbyte-webapp/src/views/Connector/ServiceForm/components/EditControls.tsx index d2d3aa19594f..70050bf5ad6c 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/components/EditControls.tsx +++ b/airbyte-webapp/src/views/Connector/ServiceForm/components/EditControls.tsx @@ -20,7 +20,7 @@ const ButtonContainer = styled.span` margin-left: 10px; `; -type IProps = { +interface IProps { formType: "source" | "destination"; isSubmitting: boolean; isValid: boolean; @@ -31,7 +31,7 @@ type IProps = { isTestConnectionInProgress?: boolean; successMessage?: React.ReactNode; errorMessage?: React.ReactNode; -}; +} const EditControls: React.FC = ({ isSubmitting, diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/components/Property/Label.tsx b/airbyte-webapp/src/views/Connector/ServiceForm/components/Property/Label.tsx index 313a788c6423..08504af08ca4 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/components/Property/Label.tsx +++ b/airbyte-webapp/src/views/Connector/ServiceForm/components/Property/Label.tsx @@ -6,11 +6,11 @@ import { FormBaseItem } from "core/form/types"; import { LabelMessage } from "./LabelMessage"; -type LabelMessageProps = { +interface LabelMessageProps { property: FormBaseItem; error: string | undefined; touched: boolean; -}; +} const Label: React.FC = ({ property, error, touched, children }) => { const labelText = property.title || property.fieldKey; diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/components/Property/LabelMessage.tsx b/airbyte-webapp/src/views/Connector/ServiceForm/components/Property/LabelMessage.tsx index ea7d6c80a0c6..b3e79dc89fbd 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/components/Property/LabelMessage.tsx +++ b/airbyte-webapp/src/views/Connector/ServiceForm/components/Property/LabelMessage.tsx @@ -5,11 +5,11 @@ import { TextWithHTML } from "components"; import { FormBaseItem } from "core/form/types"; -type IProps = { +interface IProps { property: FormBaseItem; error: string | undefined; touched: boolean; -}; +} const LabelMessage: React.FC = ({ property, error, touched }) => { const constructExamples = () => { diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/components/ShowLoadingMessage.tsx b/airbyte-webapp/src/views/Connector/ServiceForm/components/ShowLoadingMessage.tsx index aae3da52f53a..5097a54074de 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/components/ShowLoadingMessage.tsx +++ b/airbyte-webapp/src/views/Connector/ServiceForm/components/ShowLoadingMessage.tsx @@ -5,9 +5,9 @@ import { Link } from "components"; import { useConfig } from "config"; -type ShowLoadingMessageProps = { +interface ShowLoadingMessageProps { connector?: string; -}; +} const TIMEOUT_MS = 10000; diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/components/TestingConnectionSpinner.tsx b/airbyte-webapp/src/views/Connector/ServiceForm/components/TestingConnectionSpinner.tsx index c2cf87af44ef..35c1762b4946 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/components/TestingConnectionSpinner.tsx +++ b/airbyte-webapp/src/views/Connector/ServiceForm/components/TestingConnectionSpinner.tsx @@ -18,10 +18,10 @@ const StyledButton = styled(Button)` // Progress Bar runs 2min for checking connections const PROGRESS_BAR_TIME = 60 * 2; -type TestingConnectionSpinnerProps = { +interface TestingConnectionSpinnerProps { isCancellable?: boolean; onCancelTesting?: () => void; -}; +} const TestingConnectionSpinner: React.FC = (props) => { return ( diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/components/WarningMessage.tsx b/airbyte-webapp/src/views/Connector/ServiceForm/components/WarningMessage.tsx index 8f334edffe4e..d342419d30f0 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/components/WarningMessage.tsx +++ b/airbyte-webapp/src/views/Connector/ServiceForm/components/WarningMessage.tsx @@ -23,9 +23,9 @@ const Link = styled.a` } `; -type WarningMessageProps = { +interface WarningMessageProps { stage: typeof ReleaseStage.alpha | typeof ReleaseStage.beta; -}; +} const WarningMessage: React.FC = ({ stage }) => { const config = useConfig(); diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/serviceFormContext.tsx b/airbyte-webapp/src/views/Connector/ServiceForm/serviceFormContext.tsx index c591bdb24571..42912d2969dc 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/serviceFormContext.tsx +++ b/airbyte-webapp/src/views/Connector/ServiceForm/serviceFormContext.tsx @@ -8,7 +8,7 @@ import { FeatureItem, useFeatureService } from "hooks/services/Feature"; import { ServiceFormValues } from "./types"; import { makeConnectionConfigurationPath, serverProvidedOauthPaths } from "./utils"; -type Context = { +interface Context { formType: "source" | "destination"; getValues: (values: ServiceFormValues) => ServiceFormValues; widgetsInfo: WidgetConfigMap; @@ -23,7 +23,7 @@ type Context = { isEditMode?: boolean; isAuthFlowSelected?: boolean; authFieldsToHide: string[]; -}; +} const FormWidgetContext = React.createContext(null); diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/types.ts b/airbyte-webapp/src/views/Connector/ServiceForm/types.ts index c0c344f3ffe8..01b8c28591b0 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/types.ts +++ b/airbyte-webapp/src/views/Connector/ServiceForm/types.ts @@ -1,3 +1,5 @@ +// TODO: This needs to be converted to interface, but has int he current state a problem with index signatures +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions export type ServiceFormValues = { name: string; serviceType: string; diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/utils.ts b/airbyte-webapp/src/views/Connector/ServiceForm/utils.ts index 453892083b99..d5369f620507 100644 --- a/airbyte-webapp/src/views/Connector/ServiceForm/utils.ts +++ b/airbyte-webapp/src/views/Connector/ServiceForm/utils.ts @@ -7,7 +7,7 @@ export function makeConnectionConfigurationPath(path: string[]): string { return `connectionConfiguration.${path.join(".")}`; } -export type OauthOutputSpec = { +export interface OauthOutputSpec { client_id: { type: string; path_in_connector_config: ["credentials", "client_id"]; @@ -16,7 +16,7 @@ export type OauthOutputSpec = { type: string; path_in_connector_config: ["credentials", "client_secret"]; }; -}; +} type OAuthOutputSpec = { properties: Record } | undefined; diff --git a/airbyte-webapp/src/views/Feedback/SyncCompletedModal/SyncCompletedModal.tsx b/airbyte-webapp/src/views/Feedback/SyncCompletedModal/SyncCompletedModal.tsx index 931de9b30ae7..b232732873a0 100644 --- a/airbyte-webapp/src/views/Feedback/SyncCompletedModal/SyncCompletedModal.tsx +++ b/airbyte-webapp/src/views/Feedback/SyncCompletedModal/SyncCompletedModal.tsx @@ -5,10 +5,10 @@ import Modal from "components/Modal"; import ModalBody from "./components/ModalBody"; import ModalHeader from "./components/ModalHeader"; -type SyncCompletedModalProps = { +interface SyncCompletedModalProps { onClose: () => void; onPassFeedback: (feedback: string) => void; -}; +} const SyncCompletedModal: React.FC = ({ onClose, onPassFeedback }) => { return ( diff --git a/airbyte-webapp/src/views/Feedback/SyncCompletedModal/components/FeedbackButton.tsx b/airbyte-webapp/src/views/Feedback/SyncCompletedModal/components/FeedbackButton.tsx index be41467755b2..ac5e8e4b3d82 100644 --- a/airbyte-webapp/src/views/Feedback/SyncCompletedModal/components/FeedbackButton.tsx +++ b/airbyte-webapp/src/views/Feedback/SyncCompletedModal/components/FeedbackButton.tsx @@ -4,10 +4,10 @@ import styled from "styled-components"; import BadIcon from "./BadIcon"; import GoodIcon from "./GoodIcon"; -type FeedbackButtonProps = { +interface FeedbackButtonProps { isBad?: boolean; onClick: () => void; -}; +} const ButtonView = styled.div` color: ${({ theme, isBad }) => (isBad ? theme.redColor : theme.primaryColor)}; diff --git a/airbyte-webapp/src/views/Feedback/SyncCompletedModal/components/ModalBody.tsx b/airbyte-webapp/src/views/Feedback/SyncCompletedModal/components/ModalBody.tsx index c11964ac71e2..af3802c51c97 100644 --- a/airbyte-webapp/src/views/Feedback/SyncCompletedModal/components/ModalBody.tsx +++ b/airbyte-webapp/src/views/Feedback/SyncCompletedModal/components/ModalBody.tsx @@ -23,10 +23,10 @@ const FeedbackButtons = styled.div` align-items: center; `; -type ModalBodyProps = { +interface ModalBodyProps { onClose: () => void; onPassFeedback: (feedback: string) => void; -}; +} const ModalBody: React.FC = ({ onClose, onPassFeedback }) => { return ( diff --git a/airbyte-webapp/src/views/Settings/PreferencesForm/PreferencesForm.tsx b/airbyte-webapp/src/views/Settings/PreferencesForm/PreferencesForm.tsx index f43edaf2d933..f2b9af489478 100644 --- a/airbyte-webapp/src/views/Settings/PreferencesForm/PreferencesForm.tsx +++ b/airbyte-webapp/src/views/Settings/PreferencesForm/PreferencesForm.tsx @@ -13,7 +13,7 @@ import { useConfig } from "config"; import EditControls from "./components/EditControls"; -export type PreferencesFormProps = { +export interface PreferencesFormProps { onSubmit: (data: { email: string; anonymousDataCollection: boolean; @@ -29,7 +29,7 @@ export type PreferencesFormProps = { }; successMessage?: React.ReactNode; errorMessage?: React.ReactNode; -}; +} const ButtonContainer = styled.div` text-align: center; diff --git a/airbyte-webapp/src/views/Settings/PreferencesForm/components/EditControls.tsx b/airbyte-webapp/src/views/Settings/PreferencesForm/components/EditControls.tsx index 72e09ece50e4..2136f76712c1 100644 --- a/airbyte-webapp/src/views/Settings/PreferencesForm/components/EditControls.tsx +++ b/airbyte-webapp/src/views/Settings/PreferencesForm/components/EditControls.tsx @@ -5,14 +5,14 @@ import styled from "styled-components"; import { Button } from "components"; import Spinner from "components/Spinner"; -type IProps = { +interface IProps { isSubmitting: boolean; isValid: boolean; dirty: boolean; resetForm: () => void; successMessage?: React.ReactNode; errorMessage?: React.ReactNode; -}; +} const Controls = styled.div` margin-top: 34px; diff --git a/airbyte-webapp/src/views/Settings/PreferencesForm/components/Feedback.tsx b/airbyte-webapp/src/views/Settings/PreferencesForm/components/Feedback.tsx index f8aaf3734236..95c6cccc21e2 100644 --- a/airbyte-webapp/src/views/Settings/PreferencesForm/components/Feedback.tsx +++ b/airbyte-webapp/src/views/Settings/PreferencesForm/components/Feedback.tsx @@ -4,9 +4,9 @@ import styled from "styled-components"; import Spinner from "components/Spinner"; -export type FeedbackProps = { +export interface FeedbackProps { feedback: string; -}; +} const Success = styled.div` display: inline-block; diff --git a/airbyte-webapp/src/views/common/ResorceNotFoundErrorBoundary.tsx b/airbyte-webapp/src/views/common/ResorceNotFoundErrorBoundary.tsx index afeb5b0b47a0..55d3699bf8b1 100644 --- a/airbyte-webapp/src/views/common/ResorceNotFoundErrorBoundary.tsx +++ b/airbyte-webapp/src/views/common/ResorceNotFoundErrorBoundary.tsx @@ -3,7 +3,10 @@ import { FormattedMessage } from "react-intl"; import { CommonRequestError } from "core/request/CommonRequestError"; -type BoundaryState = { hasError: boolean; message?: React.ReactNode | null }; +interface BoundaryState { + hasError: boolean; + message?: React.ReactNode | null; +} const initialState: BoundaryState = { hasError: false,