|
1 | 1 | import type { PostgresTable } from '@supabase/postgres-meta' |
2 | 2 | import { isEmpty, isUndefined, noop } from 'lodash' |
3 | | -import { useEffect, useState } from 'react' |
| 3 | +import { useEffect, useMemo, useState } from 'react' |
4 | 4 | import { toast } from 'sonner' |
5 | 5 |
|
6 | 6 | import { DocsButton } from 'components/ui/DocsButton' |
@@ -141,14 +141,18 @@ export const TableEditor = ({ |
141 | 141 | (constraint) => constraint.type === CONSTRAINT_TYPE.PRIMARY_KEY_CONSTRAINT |
142 | 142 | ) |
143 | 143 |
|
144 | | - const { data: foreignKeyMeta, isSuccess: isSuccessForeignKeyMeta } = |
| 144 | + const { data: foreignKeyMeta = [], isSuccess: isSuccessForeignKeyMeta } = |
145 | 145 | useForeignKeyConstraintsQuery({ |
146 | 146 | projectRef: project?.ref, |
147 | 147 | connectionString: project?.connectionString, |
148 | 148 | schema: table?.schema, |
149 | 149 | }) |
150 | | - const foreignKeys = (foreignKeyMeta ?? []).filter( |
151 | | - (fk) => fk.source_schema === table?.schema && fk.source_table === table?.name |
| 150 | + const foreignKeys = useMemo( |
| 151 | + () => |
| 152 | + foreignKeyMeta.filter( |
| 153 | + (fk) => fk.source_schema === table?.schema && fk.source_table === table?.name |
| 154 | + ), |
| 155 | + [foreignKeyMeta, table] |
152 | 156 | ) |
153 | 157 |
|
154 | 158 | const onUpdateField = (changes: Partial<TableField>) => { |
@@ -245,7 +249,7 @@ export const TableEditor = ({ |
245 | 249 | } else { |
246 | 250 | const tableFields = generateTableFieldFromPostgresTable( |
247 | 251 | table, |
248 | | - foreignKeyMeta || [], |
| 252 | + foreignKeyMeta, |
249 | 253 | isDuplicating, |
250 | 254 | isRealtimeEnabled |
251 | 255 | ) |
|
0 commit comments