|
| 1 | +import { useEffect, useState } from 'react'; |
| 2 | +import { Button } from '../../../../new-components/Button'; |
1 | 3 | import { useConsoleForm } from '../../../../new-components/Form';
|
2 |
| -import { getDefaultValues, PostgresConnectionSchema, schema } from './schema'; |
3 |
| -import { useManageDatabaseConnection } from '../../hooks/useManageDatabaseConnection'; |
| 4 | +import { Tabs } from '../../../../new-components/Tabs'; |
4 | 5 | import { hasuraToast } from '../../../../new-components/Toasts';
|
5 | 6 | import { useMetadata } from '../../../hasura-metadata-api';
|
6 |
| -import { generatePostgresRequestPayload } from './utils/generateRequests'; |
7 |
| -import { useEffect, useState } from 'react'; |
8 |
| -import { LimitedFeatureWrapper } from '../LimitedFeatureWrapper/LimitedFeatureWrapper'; |
9 |
| -import { DynamicDBRouting } from './parts/DynamicDBRouting'; |
10 |
| -import { Tabs } from '../../../../new-components/Tabs'; |
| 7 | +import { Source } from '../../../hasura-metadata-types/source/source'; |
| 8 | +import { useManageDatabaseConnection } from '../../hooks/useManageDatabaseConnection'; |
11 | 9 | import { DisplayToastErrorMessage } from '../Common/DisplayToastErrorMessage';
|
| 10 | +import { LimitedFeatureWrapper } from '../LimitedFeatureWrapper/LimitedFeatureWrapper'; |
12 | 11 | import { ConnectPostgresForm } from './parts/ConnectPostgresForm';
|
13 |
| -import { Button } from '../../../../new-components/Button'; |
| 12 | +import { DynamicDBRouting } from './parts/DynamicDBRouting'; |
| 13 | +import { getDefaultValues, PostgresConnectionSchema, schema } from './schema'; |
| 14 | +import { generatePostgresRequestPayload } from './utils/generateRequests'; |
| 15 | + |
| 16 | +type PostgresLikeSource = Extract< |
| 17 | + Source, |
| 18 | + { |
| 19 | + kind: 'postgres' | 'citus' | 'cockroach'; |
| 20 | + } |
| 21 | +>; |
| 22 | + |
| 23 | +const isPostgresLikeSource = ( |
| 24 | + source: Source | undefined |
| 25 | +): source is PostgresLikeSource => { |
| 26 | + return ( |
| 27 | + source?.kind === 'postgres' || |
| 28 | + source?.kind === 'citus' || |
| 29 | + source?.kind === 'cockroach' |
| 30 | + ); |
| 31 | +}; |
14 | 32 |
|
15 | 33 | interface ConnectPostgresWidgetProps {
|
16 | 34 | dataSourceName?: string;
|
@@ -53,6 +71,12 @@ export const ConnectPostgresWidget = (props: ConnectPostgresWidgetProps) => {
|
53 | 71 | const payload = generatePostgresRequestPayload({
|
54 | 72 | driver: overrideDriver ?? 'postgres',
|
55 | 73 | values: formValues,
|
| 74 | + connectionTemplate: isPostgresLikeSource(metadataSource) |
| 75 | + ? metadataSource.configuration.connection_template |
| 76 | + : undefined, |
| 77 | + connectionSet: isPostgresLikeSource(metadataSource) |
| 78 | + ? metadataSource.configuration.connection_set |
| 79 | + : undefined, |
56 | 80 | });
|
57 | 81 |
|
58 | 82 | if (isEditMode) {
|
|
0 commit comments