diff --git a/frontend/src/lib/components/DatabaseTableTree/TreeRow.tsx b/frontend/src/lib/components/DatabaseTableTree/TreeRow.tsx index 21cce7c1c9974..a4320dd9842d1 100644 --- a/frontend/src/lib/components/DatabaseTableTree/TreeRow.tsx +++ b/frontend/src/lib/components/DatabaseTableTree/TreeRow.tsx @@ -19,7 +19,7 @@ export interface TreeRowProps { export function TreeRow({ item, onClick, selected }: TreeRowProps): JSX.Element { const _onClick = useCallback(() => { onClick && onClick(item.table) - }, []) + }, [onClick, item]) return (
  • diff --git a/frontend/src/scenes/data-warehouse/new/DataWarehouseTableForm.tsx b/frontend/src/scenes/data-warehouse/new/DataWarehouseTableForm.tsx index a6a3a2a40bcfc..faf94fc15df1b 100644 --- a/frontend/src/scenes/data-warehouse/new/DataWarehouseTableForm.tsx +++ b/frontend/src/scenes/data-warehouse/new/DataWarehouseTableForm.tsx @@ -6,13 +6,18 @@ import { dataWarehouseTableLogic } from './dataWarehouseTableLogic' export function DatawarehouseTableForm(): JSX.Element { return ( -
    +
    { if (currentStep === 1) { @@ -50,7 +52,7 @@ export function NewSourceWizard(): JSX.Element { )}
    ) - }, [currentStep, isLoading, canGoNext, canGoBack, nextButtonText, showSkipButton]) + }, [currentStep, isLoading, manualLinkIsLoading, canGoNext, canGoBack, nextButtonText, showSkipButton]) return ( <> diff --git a/frontend/src/scenes/data-warehouse/new/sourceWizardLogic.tsx b/frontend/src/scenes/data-warehouse/new/sourceWizardLogic.tsx index 7ff85f473dd8f..07646fbd77d22 100644 --- a/frontend/src/scenes/data-warehouse/new/sourceWizardLogic.tsx +++ b/frontend/src/scenes/data-warehouse/new/sourceWizardLogic.tsx @@ -249,6 +249,7 @@ export const sourceWizardLogic = kea([ ], }), selectors({ + isManualLinkingSelected: [(s) => [s.selectedConnector], (selectedConnector): boolean => !selectedConnector], canGoBack: [ (s) => [s.currentStep], (currentStep): boolean => { @@ -274,8 +275,12 @@ export const sourceWizardLogic = kea([ }, ], nextButtonText: [ - (s) => [s.currentStep], - (currentStep): string => { + (s) => [s.currentStep, s.isManualLinkingSelected], + (currentStep, isManualLinkingSelected): string => { + if (currentStep === 2 && isManualLinkingSelected) { + return 'Link' + } + if (currentStep === 3) { return 'Import' } diff --git a/posthog/warehouse/models/table.py b/posthog/warehouse/models/table.py index 229c81168a8d3..383c5c98399cf 100644 --- a/posthog/warehouse/models/table.py +++ b/posthog/warehouse/models/table.py @@ -69,6 +69,17 @@ ExtractErrors = { "The AWS Access Key Id you provided does not exist": "The Access Key you provided does not exist", + "Access Denied: while reading key:": "Access was denied when reading the provided file", + "Could not list objects in bucket": "Access was denied to the provided bucket", + "file is empty": "The provided file contains no data", + "The specified key does not exist": "The provided file doesn't exist in the bucket", + "Cannot extract table structure from CSV format file, because there are no files with provided path in S3 or all files are empty": "The provided file doesn't exist in the bucket", + "Cannot extract table structure from Parquet format file, because there are no files with provided path in S3 or all files are empty": "The provided file doesn't exist in the bucket", + "Cannot extract table structure from JSONEachRow format file, because there are no files with provided path in S3 or all files are empty": "The provided file doesn't exist in the bucket", + "Bucket or key name are invalid in S3 URI": "The provided file or bucket doesn't exist", + "S3 exception: `NoSuchBucket`, message: 'The specified bucket does not exist.'": "The provided bucket doesn't exist", + "Either the file is corrupted or this is not a parquet file": "The provided file is not in Parquet format", + "Rows have different amount of values": "The provided file has rows with different amount of values", }