From c9b4e9c9d16a91d8fcaff3e6f395d89a1fe7105c Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Tue, 13 Feb 2024 16:35:50 +0800 Subject: [PATCH] Fix view a referencing row in grid not updating schema if FK is in another schema --- .../formatter/ForeignKeyFormatter.tsx | 4 ++++ .../TableEditorLayout/TableEditorMenu.tsx | 24 +++++++++---------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/apps/studio/components/grid/components/formatter/ForeignKeyFormatter.tsx b/apps/studio/components/grid/components/formatter/ForeignKeyFormatter.tsx index 2fc1687adfcd9..0f7693cdf24e4 100644 --- a/apps/studio/components/grid/components/formatter/ForeignKeyFormatter.tsx +++ b/apps/studio/components/grid/components/formatter/ForeignKeyFormatter.tsx @@ -7,6 +7,7 @@ import { Button, IconArrowRight } from 'ui' import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext' import { useTableQuery } from 'data/tables/table-query' import { useTablesQuery } from 'data/tables/tables-query' +import { useTableEditorStateSnapshot } from 'state/table-editor' import { SupaRow } from '../../types' import { NullValue } from '../common' @@ -17,6 +18,8 @@ interface Props extends PropsWithChildren> { export const ForeignKeyFormatter = (props: Props) => { const { project } = useProjectContext() + const snap = useTableEditorStateSnapshot() + const { projectRef, tableId, row, column } = props const id = tableId ? Number(tableId) : undefined @@ -62,6 +65,7 @@ export const ForeignKeyFormatter = (props: Props) => { > snap.setSelectedSchemaName(relationship.target_table_schema)} > diff --git a/apps/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx b/apps/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx index 8a1a498e4ad61..5f15b1e393a9a 100644 --- a/apps/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx +++ b/apps/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx @@ -2,18 +2,8 @@ import * as Tooltip from '@radix-ui/react-tooltip' import { PermissionAction } from '@supabase/shared-types/out/constants' import { useParams } from 'common' import { partition } from 'lodash' +import { useRouter } from 'next/router' import { useMemo, useState } from 'react' - -import { ProtectedSchemaModal } from 'components/interfaces/Database/ProtectedSchemaWarning' -import AlertError from 'components/ui/AlertError' -import InfiniteList from 'components/ui/InfiniteList' -import SchemaSelector from 'components/ui/SchemaSelector' -import ShimmeringLoader from 'components/ui/ShimmeringLoader' -import { useSchemasQuery } from 'data/database/schemas-query' -import { useEntityTypesQuery } from 'data/entity-types/entity-types-infinite-query' -import { useCheckPermissions, useLocalStorage } from 'hooks' -import { EXCLUDED_SCHEMAS } from 'lib/constants/schemas' -import { useTableEditorStateSnapshot } from 'state/table-editor' import { AlertDescription_Shadcn_, AlertTitle_Shadcn_, @@ -32,9 +22,19 @@ import { IconX, Input, } from 'ui' + +import { ProtectedSchemaModal } from 'components/interfaces/Database/ProtectedSchemaWarning' +import AlertError from 'components/ui/AlertError' +import InfiniteList from 'components/ui/InfiniteList' +import SchemaSelector from 'components/ui/SchemaSelector' +import ShimmeringLoader from 'components/ui/ShimmeringLoader' +import { useSchemasQuery } from 'data/database/schemas-query' +import { useEntityTypesQuery } from 'data/entity-types/entity-types-infinite-query' +import { useCheckPermissions, useLocalStorage } from 'hooks' +import { EXCLUDED_SCHEMAS } from 'lib/constants/schemas' +import { useTableEditorStateSnapshot } from 'state/table-editor' import { useProjectContext } from '../ProjectLayout/ProjectContext' import EntityListItem from './EntityListItem' -import { useRouter } from 'next/router' const TableEditorMenu = () => { const router = useRouter()