diff --git a/src/explorer/App.js b/src/explorer/App.js index 703d874..c3191e8 100644 --- a/src/explorer/App.js +++ b/src/explorer/App.js @@ -20,6 +20,7 @@ import { initialState, } from "./state"; import {StaticExplorerAdapterSet} from "./adapters/explorerAdapterSet"; +import {userNodeType} from "../plugins/github/declaration"; const credOverviewUrl = "https://discuss.sourcecred.io/t/a-gentle-introduction-to-cred/20"; @@ -91,7 +92,7 @@ export function createApp( const pnd = appState.pagerankNodeDecomposition; pagerankTable = ( diff --git a/src/explorer/pagerankTable/Table.js b/src/explorer/pagerankTable/Table.js index d11cc2f..57be461 100644 --- a/src/explorer/pagerankTable/Table.js +++ b/src/explorer/pagerankTable/Table.js @@ -4,15 +4,16 @@ import React from "react"; import sortBy from "lodash.sortby"; import * as NullUtil from "../../util/null"; -import {type NodeAddressT, NodeAddress} from "../../core/graph"; +import {NodeAddress} from "../../core/graph"; import type {PagerankNodeDecomposition} from "../../analysis/pagerankNodeDecomposition"; import {DynamicExplorerAdapterSet} from "../adapters/explorerAdapterSet"; import type {DynamicExplorerAdapter} from "../adapters/explorerAdapter"; import {FALLBACK_NAME} from "../../analysis/fallbackDeclaration"; import type {WeightedTypes} from "../../analysis/weights"; import {WeightConfig} from "../weights/WeightConfig"; - import {NodeRowList} from "./Node"; +import {type NodeType} from "../../analysis/types"; +import {fallbackNodeType} from "../../analysis/fallbackDeclaration"; type PagerankTableProps = {| +pnd: PagerankNodeDecomposition, @@ -20,10 +21,10 @@ type PagerankTableProps = {| +weightedTypes: WeightedTypes, +onWeightedTypesChange: (WeightedTypes) => void, +maxEntriesPerList: number, - +defaultNodeFilter: ?NodeAddressT, + +defaultNodeType: ?NodeType, |}; type PagerankTableState = {| - topLevelFilter: NodeAddressT, + selectedNodeType: NodeType, showWeightConfig: boolean, |}; export class PagerankTable extends React.PureComponent< @@ -32,20 +33,11 @@ export class PagerankTable extends React.PureComponent< > { constructor(props: PagerankTableProps): void { super(); - const {defaultNodeFilter, adapters} = props; - if (defaultNodeFilter != null) { - const nodeTypes = adapters.static().nodeTypes(); - if (!nodeTypes.some((x) => x.prefix === defaultNodeFilter)) { - throw new Error( - `invalid defaultNodeFilter ${defaultNodeFilter}: doesn't match any type` - ); - } - } - const topLevelFilter = NullUtil.orElse( - props.defaultNodeFilter, - NodeAddress.empty + const selectedNodeType = NullUtil.orElse( + props.defaultNodeType, + fallbackNodeType ); - this.state = {topLevelFilter, showWeightConfig: false}; + this.state = {selectedNodeType, showWeightConfig: false}; } renderConfigurationRow() { @@ -116,9 +108,11 @@ export class PagerankTable extends React.PureComponent<