diff --git a/frontend/src/component/addons/CreateAddon/CreateAddon.tsx b/frontend/src/component/integrations/CreateIntegration/CreateIntegration.tsx similarity index 87% rename from frontend/src/component/addons/CreateAddon/CreateAddon.tsx rename to frontend/src/component/integrations/CreateIntegration/CreateIntegration.tsx index 30548882f1..0158ab9957 100644 --- a/frontend/src/component/addons/CreateAddon/CreateAddon.tsx +++ b/frontend/src/component/integrations/CreateIntegration/CreateIntegration.tsx @@ -1,5 +1,5 @@ import useAddons from 'hooks/api/getters/useAddons/useAddons'; -import { AddonForm } from '../AddonForm/AddonForm'; +import { IntegrationForm } from '../IntegrationForm/IntegrationForm'; import cloneDeep from 'lodash.clonedeep'; import { IAddon } from 'interfaces/addons'; import { useRequiredPathParam } from 'hooks/useRequiredPathParam'; @@ -14,7 +14,7 @@ export const DEFAULT_DATA = { environments: [], } as unknown as IAddon; // TODO: improve type -export const CreateAddon = () => { +export const CreateIntegration = () => { const providerId = useRequiredPathParam('providerId'); const { providers, refetchAddons } = useAddons(); @@ -29,7 +29,7 @@ export const CreateAddon = () => { }; return ( - { +export const EditIntegration = () => { const addonId = useRequiredPathParam('addonId'); const { providers, addons, refetchAddons } = useAddons(); @@ -18,7 +18,7 @@ export const EditAddon = () => { : undefined; return ( - = ({ +export const IntegrationForm: VFC = ({ editMode, provider, addon: initialValues, @@ -272,7 +272,7 @@ export const AddonForm: VFC = ({ ( - = ({ - = ({ /> - = ({ /> - = ({ /> - { }); it('renders with default state', () => { - render(); + render(); const checkbox = screen.getByLabelText( /all current and future projects/i @@ -49,7 +49,7 @@ describe('AddonMultiSelector', () => { it('can toggle "ALL" checkbox', async () => { const user = userEvent.setup(); - render(); + render(); await user.click(screen.getByTestId('select-all-projects')); @@ -70,7 +70,7 @@ describe('AddonMultiSelector', () => { it('renders with autocomplete enabled if default value is not a wildcard', () => { render( - + ); const checkbox = screen.getByLabelText( @@ -87,7 +87,7 @@ describe('AddonMultiSelector', () => { it("doesn't show up for less than 3 options", async () => { const user = userEvent.setup(); render( - { it('can filter options', async () => { const user = userEvent.setup(); render( - void; @@ -44,7 +44,7 @@ const StyledCheckbox = styled(Checkbox)(() => ({ const CustomPaper = ({ ...props }) => ; -export const AddonMultiSelector: VFC = ({ +export const IntegrationMultiSelector: VFC = ({ options, selectedItems, onChange, @@ -138,7 +138,7 @@ export const AddonMultiSelector: VFC = ({ const DefaultHelpText = () => ( - Selecting {entityName}(s) here will filter events so that your addon + Selecting {entityName}(s) here will filter events so that your integration will only receive events that are tagged with one of your{' '} {entityName}s. diff --git a/frontend/src/component/addons/AddonForm/AddonParameters/AddonParameter/AddonParameter.tsx b/frontend/src/component/integrations/IntegrationForm/IntegrationParameters/IntegrationParameter/IntegrationParameter.tsx similarity index 90% rename from frontend/src/component/addons/AddonForm/AddonParameters/AddonParameter/AddonParameter.tsx rename to frontend/src/component/integrations/IntegrationForm/IntegrationParameters/IntegrationParameter/IntegrationParameter.tsx index d4f15ec80b..8983a5b9e5 100644 --- a/frontend/src/component/addons/AddonForm/AddonParameters/AddonParameter/AddonParameter.tsx +++ b/frontend/src/component/integrations/IntegrationForm/IntegrationParameters/IntegrationParameter/IntegrationParameter.tsx @@ -1,7 +1,7 @@ import { TextField, Typography } from '@mui/material'; import { IAddonConfig, IAddonProviderParams } from 'interfaces/addons'; import { ChangeEventHandler } from 'react'; -import { StyledAddonParameterContainer } from '../../AddonForm.styles'; +import { StyledAddonParameterContainer } from '../../IntegrationForm.styles'; const resolveType = ({ type = 'text', sensitive = false }, value: string) => { if (sensitive && value === MASKED_VALUE) { @@ -15,19 +15,19 @@ const resolveType = ({ type = 'text', sensitive = false }, value: string) => { const MASKED_VALUE = '*****'; -export interface IAddonParameterProps { +export interface IIntegrationParameterProps { parametersErrors: Record; definition: IAddonProviderParams; setParameterValue: (param: string) => ChangeEventHandler; config: IAddonConfig; } -export const AddonParameter = ({ +export const IntegrationParameter = ({ definition, config, parametersErrors, setParameterValue, -}: IAddonParameterProps) => { +}: IIntegrationParameterProps) => { const value = config.parameters[definition.name] || ''; const type = resolveType(definition, value); const error = parametersErrors[definition.name]; diff --git a/frontend/src/component/addons/AddonForm/AddonParameters/AddonParameters.tsx b/frontend/src/component/integrations/IntegrationForm/IntegrationParameters/IntegrationParameters.tsx similarity index 65% rename from frontend/src/component/addons/AddonForm/AddonParameters/AddonParameters.tsx rename to frontend/src/component/integrations/IntegrationForm/IntegrationParameters/IntegrationParameters.tsx index fb62c6894f..646b45ab84 100644 --- a/frontend/src/component/addons/AddonForm/AddonParameters/AddonParameters.tsx +++ b/frontend/src/component/integrations/IntegrationForm/IntegrationParameters/IntegrationParameters.tsx @@ -1,26 +1,26 @@ import React from 'react'; import { IAddonProvider } from 'interfaces/addons'; import { - AddonParameter, - IAddonParameterProps, -} from './AddonParameter/AddonParameter'; -import { StyledTitle } from '../AddonForm.styles'; + IntegrationParameter, + IIntegrationParameterProps, +} from './IntegrationParameter/IntegrationParameter'; +import { StyledTitle } from '../IntegrationForm.styles'; -interface IAddonParametersProps { +interface IIntegrationParametersProps { provider?: IAddonProvider; - parametersErrors: IAddonParameterProps['parametersErrors']; + parametersErrors: IIntegrationParameterProps['parametersErrors']; editMode: boolean; - setParameterValue: IAddonParameterProps['setParameterValue']; - config: IAddonParameterProps['config']; + setParameterValue: IIntegrationParameterProps['setParameterValue']; + config: IIntegrationParameterProps['config']; } -export const AddonParameters = ({ +export const IntegrationParameters = ({ provider, config, parametersErrors, setParameterValue, editMode, -}: IAddonParametersProps) => { +}: IIntegrationParametersProps) => { if (!provider) return null; return ( @@ -33,7 +33,7 @@ export const AddonParameters = ({

) : null} {provider.parameters.map(parameter => ( - { +}: IAvailableIntegrationsProps) => { const data = useMemo(() => { if (loading) { return Array(5).fill({ @@ -70,7 +70,7 @@ export const AvailableAddons = ({ }, }: any) => { return ( - } /> + } /> ); }, }, @@ -79,7 +79,7 @@ export const AvailableAddons = ({ accessor: 'name', width: '90%', Cell: ({ row: { original } }: any) => ( - + ), sortType: 'alphanumeric', }, @@ -88,7 +88,7 @@ export const AvailableAddons = ({ align: 'center', Cell: ({ row: { original } }: any) => ( - + ), width: 150, diff --git a/frontend/src/component/addons/AddonList/AvailableAddons/ConfigureAddonButton/ConfigureAddonButton.tsx b/frontend/src/component/integrations/IntegrationList/AvailableIntegrations/ConfigureIntegrationButton/ConfigureIntegrationButton.tsx similarity index 82% rename from frontend/src/component/addons/AddonList/AvailableAddons/ConfigureAddonButton/ConfigureAddonButton.tsx rename to frontend/src/component/integrations/IntegrationList/AvailableIntegrations/ConfigureIntegrationButton/ConfigureIntegrationButton.tsx index dfe10193c3..7c7c250955 100644 --- a/frontend/src/component/addons/AddonList/AvailableAddons/ConfigureAddonButton/ConfigureAddonButton.tsx +++ b/frontend/src/component/integrations/IntegrationList/AvailableIntegrations/ConfigureIntegrationButton/ConfigureIntegrationButton.tsx @@ -3,13 +3,13 @@ import { CREATE_ADDON } from 'component/providers/AccessProvider/permissions'; import { IAddonProvider } from 'interfaces/addons'; import { useNavigate } from 'react-router-dom'; -interface IConfigureAddonButtonProps { +interface IConfigureIntegrationButtonProps { provider: IAddonProvider; } -export const ConfigureAddonButton = ({ +export const ConfigureIntegrationButton = ({ provider, -}: IConfigureAddonButtonProps) => { +}: IConfigureIntegrationButtonProps) => { const navigate = useNavigate(); return ( diff --git a/frontend/src/component/addons/AddonList/ConfiguredAddons/ConfiguredAddons.tsx b/frontend/src/component/integrations/IntegrationList/ConfiguredIntegrations/ConfiguredIntegrations.tsx similarity index 94% rename from frontend/src/component/addons/AddonList/ConfiguredAddons/ConfiguredAddons.tsx rename to frontend/src/component/integrations/IntegrationList/ConfiguredIntegrations/ConfiguredIntegrations.tsx index edfff5c0d9..8e4051d0e2 100644 --- a/frontend/src/component/addons/AddonList/ConfiguredAddons/ConfiguredAddons.tsx +++ b/frontend/src/component/integrations/IntegrationList/ConfiguredIntegrations/ConfiguredIntegrations.tsx @@ -13,11 +13,11 @@ import { useTable, useSortBy } from 'react-table'; import { PageHeader } from 'component/common/PageHeader/PageHeader'; import { SortableTableHeader, TablePlaceholder } from 'component/common/Table'; import { IconCell } from 'component/common/Table/cells/IconCell/IconCell'; -import { AddonIcon } from '../AddonIcon/AddonIcon'; -import { ConfiguredAddonsActionsCell } from './ConfiguredAddonsActionCell/ConfiguredAddonsActionsCell'; -import { AddonNameCell } from '../AddonNameCell/AddonNameCell'; +import { IntegrationIcon } from '../IntegrationIcon/IntegrationIcon'; +import { ConfiguredAddonsActionsCell } from './ConfiguredIntegrationsActionCell/ConfiguredIntegrationActionsCell'; +import { IntegrationNameCell } from '../IntegrationNameCell/IntegrationNameCell'; -export const ConfiguredAddons = () => { +export const ConfiguredIntegrations = () => { const { refetchAddons, addons, providers, loading } = useAddons(); const { updateAddon, removeAddon } = useAddonsApi(); const { setToastData, setToastApiError } = useToast(); @@ -73,7 +73,7 @@ export const ConfiguredAddons = () => { original: { provider }, }, }: any) => ( - } /> + } /> ), disableSortBy: true, }, @@ -86,7 +86,7 @@ export const ConfiguredAddons = () => { original: { provider, description }, }, }: any) => ( - name === provider diff --git a/frontend/src/component/addons/AddonList/ConfiguredAddons/ConfiguredAddonsActionCell/ConfiguredAddonsActionsCell.tsx b/frontend/src/component/integrations/IntegrationList/ConfiguredIntegrations/ConfiguredIntegrationsActionCell/ConfiguredIntegrationActionsCell.tsx similarity index 100% rename from frontend/src/component/addons/AddonList/ConfiguredAddons/ConfiguredAddonsActionCell/ConfiguredAddonsActionsCell.tsx rename to frontend/src/component/integrations/IntegrationList/ConfiguredIntegrations/ConfiguredIntegrationsActionCell/ConfiguredIntegrationActionsCell.tsx diff --git a/frontend/src/component/addons/AddonList/AddonIcon/AddonIcon.tsx b/frontend/src/component/integrations/IntegrationList/IntegrationIcon/IntegrationIcon.tsx similarity index 94% rename from frontend/src/component/addons/AddonList/AddonIcon/AddonIcon.tsx rename to frontend/src/component/integrations/IntegrationList/IntegrationIcon/IntegrationIcon.tsx index 427a6ca7ba..ee2e6f1e2c 100644 --- a/frontend/src/component/addons/AddonList/AddonIcon/AddonIcon.tsx +++ b/frontend/src/component/integrations/IntegrationList/IntegrationIcon/IntegrationIcon.tsx @@ -14,11 +14,11 @@ const style: React.CSSProperties = { marginRight: '16px', }; -interface IAddonIconProps { +interface IIntegrationIconProps { name: string; } -export const AddonIcon = ({ name }: IAddonIconProps) => { +export const IntegrationIcon = ({ name }: IIntegrationIconProps) => { switch (name) { case 'slack': case 'slack-app': diff --git a/frontend/src/component/addons/AddonList/AddonList.tsx b/frontend/src/component/integrations/IntegrationList/IntegrationList.tsx similarity index 52% rename from frontend/src/component/addons/AddonList/AddonList.tsx rename to frontend/src/component/integrations/IntegrationList/IntegrationList.tsx index 5d4de0e8c8..53d94b4797 100644 --- a/frontend/src/component/addons/AddonList/AddonList.tsx +++ b/frontend/src/component/integrations/IntegrationList/IntegrationList.tsx @@ -1,19 +1,19 @@ import React from 'react'; -import { ConfiguredAddons } from './ConfiguredAddons/ConfiguredAddons'; -import { AvailableAddons } from './AvailableAddons/AvailableAddons'; +import { ConfiguredIntegrations } from './ConfiguredIntegrations/ConfiguredIntegrations'; +import { AvailableIntegrations } from './AvailableIntegrations/AvailableIntegrations'; import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; import useAddons from 'hooks/api/getters/useAddons/useAddons'; -export const AddonList = () => { +export const IntegrationList = () => { const { providers, addons, loading } = useAddons(); return ( <> 0} - show={} + show={} /> - + ); }; diff --git a/frontend/src/component/addons/AddonList/AddonNameCell/AddonNameCell.tsx b/frontend/src/component/integrations/IntegrationList/IntegrationNameCell/IntegrationNameCell.tsx similarity index 90% rename from frontend/src/component/addons/AddonList/AddonNameCell/AddonNameCell.tsx rename to frontend/src/component/integrations/IntegrationList/IntegrationNameCell/IntegrationNameCell.tsx index 74ab375c0f..f91c69afb4 100644 --- a/frontend/src/component/addons/AddonList/AddonNameCell/AddonNameCell.tsx +++ b/frontend/src/component/integrations/IntegrationList/IntegrationNameCell/IntegrationNameCell.tsx @@ -10,14 +10,14 @@ const StyledBadge = styled(Badge)(({ theme }) => ({ marginLeft: theme.spacing(1), })); -interface IAddonNameCellProps { +interface IIntegrationNameCellProps { provider: Pick< IAddonProvider, 'displayName' | 'description' | 'deprecated' >; } -export const AddonNameCell = ({ provider }: IAddonNameCellProps) => ( +export const IntegrationNameCell = ({ provider }: IIntegrationNameCellProps) => (