From c78142163a14ec10890370d020cae63b4c95e384 Mon Sep 17 00:00:00 2001
From: Nick Z <2420177+nickzelei@users.noreply.github.com>
Date: Tue, 19 Nov 2024 13:52:15 -0800
Subject: [PATCH] new job schema page compiling
---
.../components/DataSyncConnectionCard.tsx | 5 -
.../(mgmt)/[account]/new/job/schema/page.tsx | 135 +++++++++++++++++-
2 files changed, 134 insertions(+), 6 deletions(-)
diff --git a/frontend/apps/web/app/(mgmt)/[account]/jobs/[id]/source/components/DataSyncConnectionCard.tsx b/frontend/apps/web/app/(mgmt)/[account]/jobs/[id]/source/components/DataSyncConnectionCard.tsx
index 8b6cd95fb8..659a111dba 100644
--- a/frontend/apps/web/app/(mgmt)/[account]/jobs/[id]/source/components/DataSyncConnectionCard.tsx
+++ b/frontend/apps/web/app/(mgmt)/[account]/jobs/[id]/source/components/DataSyncConnectionCard.tsx
@@ -488,11 +488,6 @@ export default function DataSyncConnectionCard({ jobId }: Props): ReactElement {
index: number,
transformer: JobMappingTransformerForm
): void {
- // form.setValue(`mappings.${index}.transformer`, transformer, {
- // shouldDirty: true,
- // shouldTouch: true,
- // shouldValidate: false, // this is intentional!
- // });
const val = form.getValues(`mappings.${index}`);
update(index, {
schema: val.schema,
diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/job/schema/page.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/job/schema/page.tsx
index bd0c5a93d1..f06d1f0971 100644
--- a/frontend/apps/web/app/(mgmt)/[account]/new/job/schema/page.tsx
+++ b/frontend/apps/web/app/(mgmt)/[account]/new/job/schema/page.tsx
@@ -10,14 +10,19 @@ import {
SchemaTable,
} from '@/components/jobs/SchemaTable/SchemaTable';
import { getSchemaConstraintHandler } from '@/components/jobs/SchemaTable/schema-constraint-handler';
+import { TransformerResult } from '@/components/jobs/SchemaTable/transformer-handler';
+import { getTransformerFilter } from '@/components/jobs/SchemaTable/util';
import { useAccount } from '@/components/providers/account-provider';
import SkeletonForm from '@/components/skeleton/SkeletonForm';
import { PageProps } from '@/components/types';
import { Button } from '@/components/ui/button';
import { Form } from '@/components/ui/form';
+import { useGetTransformersHandler } from '@/libs/hooks/useGetTransformersHandler';
import { getSingleOrUndefined } from '@/libs/utils';
-import { getErrorMessage } from '@/util/util';
+import { getErrorMessage, getTransformerFromField } from '@/util/util';
import {
+ convertJobMappingTransformerToForm,
+ JobMappingTransformerForm,
SchemaFormValues,
SchemaFormValuesDestinationOptions,
VirtualForeignConstraintFormValues,
@@ -29,9 +34,13 @@ import {
Connection,
DatabaseColumn,
ForeignConstraintTables,
+ GenerateDefault,
GetConnectionSchemaMapRequest,
GetConnectionSchemaMapsResponse,
+ JobMappingTransformer,
+ Passthrough,
PrimaryConstraint,
+ TransformerConfig,
ValidateJobMappingsResponse,
VirtualForeignConstraint,
VirtualForeignKey,
@@ -54,6 +63,7 @@ import { useSessionStorage } from 'usehooks-ts';
import { useOnImportMappings } from '../../../jobs/[id]/source/components/useOnImportMappings';
import {
getDestinationDetailsRecord,
+ getFilteredTransformersForBulkSet,
getOnSelectedTableToggle,
isConnectionSubsettable,
isDynamoDBConnection,
@@ -406,6 +416,10 @@ export default function Page({ searchParams }: PageProps): ReactElement {
setSelectedTables: setSelectedTables,
});
+ const { handler, isLoading, isValidating } = useGetTransformersHandler(
+ account?.id ?? ''
+ );
+
if (isConnectionLoading || isSchemaMapLoading) {
return