From 292c2e5bb7464e2557ca70f3a3ffe4111bc00620 Mon Sep 17 00:00:00 2001 From: Paul Rosenzweig <paulrosenzweig@users.noreply.github.com> Date: Mon, 9 Mar 2020 12:40:02 -0400 Subject: [PATCH] Avoid calling /database/:id/metadata in BrowseApp (#12052) --- .../src/metabase/components/BrowseApp.jsx | 78 +++++++++++-------- 1 file changed, 44 insertions(+), 34 deletions(-) diff --git a/frontend/src/metabase/components/BrowseApp.jsx b/frontend/src/metabase/components/BrowseApp.jsx index 43cd70e561d..c17c3948f75 100644 --- a/frontend/src/metabase/components/BrowseApp.jsx +++ b/frontend/src/metabase/components/BrowseApp.jsx @@ -32,7 +32,14 @@ export class SchemaBrowser extends React.Component { <Box> <Schema.ListLoader query={{ dbId }}> {({ schemas }) => - schemas.length > 1 ? ( + schemas.length === 1 ? ( + <TableBrowser + {...this.props} + params={{ ...this.props.params, schemaName: schemas[0].name }} + // hide the schema since there's only one + showSchemaInHeader={false} + /> + ) : ( <Box> <BrowseHeader crumbs={[ @@ -40,39 +47,41 @@ export class SchemaBrowser extends React.Component { { title: <Database.Name id={dbId} /> }, ]} /> - <Grid> - {schemas.map(schema => ( - <GridItem w={ITEM_WIDTHS} key={schema.id}> - <Link - to={`/browse/${dbId}/schema/${schema.name}`} - mb={1} - hover={{ color: color("accent2") }} - data-metabase-event={`${ANALYTICS_CONTEXT};Schema Click`} - className="overflow-hidden" - > - <Card hoverable px={1}> - <Flex align="center"> - <EntityItem - name={schema.name} - iconName="folder" - iconColor={color("accent2")} - item={schema} - /> - <Box ml="auto"> - <Icon name="reference" /> - <Tooltip tooltip={t`X-ray this schema`}> - <Icon name="bolt" mx={1} /> - </Tooltip> - </Box> - </Flex> - </Card> - </Link> - </GridItem> - ))} - </Grid> + {schemas.length === 0 ? ( + <h2 className="full text-centered text-medium">{t`This database doesn't have any tables.`}</h2> + ) : ( + <Grid> + {schemas.map(schema => ( + <GridItem w={ITEM_WIDTHS} key={schema.id}> + <Link + to={`/browse/${dbId}/schema/${schema.name}`} + mb={1} + hover={{ color: color("accent2") }} + data-metabase-event={`${ANALYTICS_CONTEXT};Schema Click`} + className="overflow-hidden" + > + <Card hoverable px={1}> + <Flex align="center"> + <EntityItem + name={schema.name} + iconName="folder" + iconColor={color("accent2")} + item={schema} + /> + <Box ml="auto"> + <Icon name="reference" /> + <Tooltip tooltip={t`X-ray this schema`}> + <Icon name="bolt" mx={1} /> + </Tooltip> + </Box> + </Flex> + </Card> + </Link> + </GridItem> + ))} + </Grid> + )} </Box> - ) : ( - <TableBrowser {...this.props} /> ) } </Schema.ListLoader> @@ -90,6 +99,7 @@ export class TableBrowser extends React.Component { const { metadata, params: { dbId, schemaName }, + showSchemaInHeader = true, } = this.props; return ( <Box> @@ -104,7 +114,7 @@ export class TableBrowser extends React.Component { title: <Database.Name id={dbId} />, to: `browse/${dbId}`, }, - schemaName != null && { title: schemaName }, + showSchemaInHeader && { title: schemaName }, ]} /> <Grid> -- GitLab