From d4274ea27e45caeb27eff40b9817cd9c5fc7acf0 Mon Sep 17 00:00:00 2001
From: Gildas Garcia <1122076+djhi@users.noreply.github.com>
Date: Mon, 25 May 2026 11:23:35 +0200
Subject: [PATCH] Fix wrapper forms design (#46283)
## Screenshots
Before:
- AWS S3 storage that's optimized for analytics workloads.
-
- Managed Apache Iceberg built directly into your R2 bucket.
-
- Can be used with any S3-compatible storage.
-
+ AWS S3 storage that's optimized for analytics workloads.
+
+ Managed Apache Iceberg built directly into your R2 bucket.
+
+ Can be used with any S3-compatible storage.
+ Foreign Schema
You can query your data from the foreign tables in the specified schema after
the wrapper is created.
-
After:
## Summary by CodeRabbit
* **Style**
* Clearer section separation using visual separators for wrapper
creation/edit flows.
* Adjusted column selector sizing for improved responsiveness.
* Secure fields show a loading state while retrieving secrets.
* **Refactor**
* Unified form section layout across wrapper management for more
consistent, scannable configuration panels.
* Simplified data-target and schema areas for easier navigation and
editing.
[](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46283?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
---
.../Wrappers/CreateIcebergWrapperSheet.tsx | 314 ++++++++----------
.../Wrappers/CreateWrapperSheet.tsx | 276 +++++++--------
.../Wrappers/EditWrapperSheet.tsx | 152 ++++-----
.../Wrappers/WrapperTableEditor.tsx | 2 +-
4 files changed, 338 insertions(+), 406 deletions(-)
diff --git a/apps/studio/components/interfaces/Integrations/Wrappers/CreateIcebergWrapperSheet.tsx b/apps/studio/components/interfaces/Integrations/Wrappers/CreateIcebergWrapperSheet.tsx
index 437857d3681..2e10cf991c2 100644
--- a/apps/studio/components/interfaces/Integrations/Wrappers/CreateIcebergWrapperSheet.tsx
+++ b/apps/studio/components/interfaces/Integrations/Wrappers/CreateIcebergWrapperSheet.tsx
@@ -4,8 +4,6 @@ import { SubmitHandler, useForm, useWatch } from 'react-hook-form'
import { toast } from 'sonner'
import {
Button,
- Card,
- CardContent,
Form,
FormControl,
FormField,
@@ -18,18 +16,15 @@ import {
SheetTitle,
} from 'ui'
import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout'
-import {
- PageSection,
- PageSectionContent,
- PageSectionDescription,
- PageSectionMeta,
- PageSectionSummary,
- PageSectionTitle,
-} from 'ui-patterns/PageSection'
import * as z from 'zod'
import { CreateWrapperSheetProps } from './CreateWrapperSheet'
import InputField from './InputField'
+import {
+ FormSection,
+ FormSectionContent,
+ FormSectionLabel,
+} from '@/components/ui/Forms/FormSection'
import { useSchemaCreateMutation } from '@/data/database/schema-create-mutation'
import { useSchemasQuery } from '@/data/database/schemas-query'
import { useFDWCreateMutation } from '@/data/fdw/fdw-create-mutation'
@@ -258,173 +253,144 @@ export const CreateIcebergWrapperSheet = ({
{wrapperName}_server
- >
- ) : (
- ''
- )
- }
- >
- {wrapperName}_server
+ >
+ ) : (
+ ''
+ )
+ }
+ >
+
{wrapper_name}_server
- >
- ) : (
- ''
- )
- }
- >
- {wrapper_name}_server
+ >
+ ) : (
+ ''
+ )
+ }
+ >
+ Foreign Tables
+You can query your data from these foreign tables after the wrapper is created -
- {table.schema_name}.{table.table_name} -
-- Columns:{' '} - {(table.columns ?? []).map((column: any) => column.name).join(', ')} -
-- {errors.tables.message?.toString()}
- )} -+ {table.schema_name}.{table.table_name} +
++ Columns:{' '} + {(table.columns ?? []).map((column: any) => column.name).join(', ')} +
++ {errors.tables.message?.toString()} +
+ )} +Foreign Schema
+You can query your data from the foreign tables in the specified schema after the wrapper is created. -