Skip to content
Snippets Groups Projects
Commit fd667b70 authored by Tom Robinson's avatar Tom Robinson
Browse files

Update PostSetupApp for new candidates structure

parent 44ff09b7
Branches
Tags
No related merge requests found
......@@ -10,13 +10,13 @@ import Select, { Option } from "metabase/components/Select";
import { t } from "c-3po";
import _ from "underscore";
import type { Candidate } from "metabase/meta/types/Auto";
import type { DatabaseCandidates, Candidate } from "metabase/meta/types/Auto";
const DEFAULT_TITLE = t`Hi, Metabot here.`;
const DEFAULT_DESCRIPTION = "";
type Props = {
candidates?: ?(Candidate[]),
candidates?: ?DatabaseCandidates,
title?: ?string,
description?: ?string,
};
......@@ -43,20 +43,15 @@ export class ExplorePane extends React.Component {
let { schemaName, visibleItems } = this.state;
let schemaNames;
let tables;
let hasMore = false;
if (candidates) {
const candidatesBySchema =
candidates &&
_.groupBy(
candidates,
candidate => candidate.table && candidate.table.schema,
);
schemaNames = Object.keys(candidatesBySchema || {});
if (candidates && candidates.length > 0) {
schemaNames = candidates.map(schema => schema.schema);
if (schemaName == null) {
schemaName = schemaNames[0];
}
candidates = candidatesBySchema[schemaName].slice(0, visibleItems);
hasMore = visibleItems < candidatesBySchema[schemaName].length;
const schema = _.findWhere(candidates, { schema: schemaName });
tables = (schema && schema.tables) || [];
}
return (
......@@ -79,7 +74,9 @@ export class ExplorePane extends React.Component {
{schemaNames &&
schemaNames.length > 1 && (
<div className="px4 inline-block mb4">
<div className="pb1 text-paragraph">Here's the schema I looked at:</div>
<div className="pb1 text-paragraph">
Here's the schema I looked at:
</div>
<Select
value={schemaName}
onChange={e =>
......@@ -97,9 +94,9 @@ export class ExplorePane extends React.Component {
</Select>
</div>
)}
{candidates && (
{tables && (
<div className="px4">
<ExploreList candidates={candidates} />
<ExploreList candidates={tables} />
</div>
)}
{hasMore && (
......
......@@ -2,8 +2,19 @@
import type { TableId, SchemaName } from "metabase/meta/types/Table";
export type DatabaseCandidates = SchemaCandidates[];
export type SchemaCandidates = {
schema: SchemaName,
score: number,
tables: Candidate[],
};
export type Candidate = {
title: string,
description: string,
score: number,
rule: string,
url: string,
table?: {
id: TableId,
......
......@@ -14,7 +14,7 @@ import getGAMetadata from "promise-loader?global!metabase/lib/ga-metadata"; // e
import type { Data, Options } from "metabase/lib/api";
import type { DatabaseId } from "metabase/meta/types/Database";
import type { Candidate } from "metabase/meta/types/Auto";
import type { DatabaseCandidates } from "metabase/meta/types/Auto";
import type { DashboardWithCards } from "metabase/meta/types/Dashboard";
export const ActivityApi = {
......@@ -95,7 +95,7 @@ export const EmbedApi = {
type $AutoApi = {
dashboard: ({ subPath: string }) => DashboardWithCards,
db_candidates: ({ id: DatabaseId }) => Candidate[],
db_candidates: ({ id: DatabaseId }) => DatabaseCandidates,
};
export const AutoApi: $AutoApi = {
......
......@@ -26,7 +26,7 @@ const QUOTES = [
t`Metabot is feeling pretty good about all this…`,
];
import type { Candidate } from "metabase/meta/types/Auto";
import type { DatabaseCandidates } from "metabase/meta/types/Auto";
type Props = {
params: {
......@@ -36,8 +36,8 @@ type Props = {
type State = {
databaseId: ?number,
isSample: ?boolean,
candidates: ?(Candidate[]),
sampleCandidates: ?(Candidate[]),
candidates: ?DatabaseCandidates,
sampleCandidates: ?DatabaseCandidates,
};
@withBackground("bg-slate-extra-light")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment