Skip to content

Commit

Permalink
Pass namespace columns as prop
Browse files Browse the repository at this point in the history
PR feedback Aaron
  • Loading branch information
pvannierop committed Feb 3, 2022
1 parent b9a1bfd commit 1d654ca
Show file tree
Hide file tree
Showing 8 changed files with 78 additions and 21 deletions.
13 changes: 13 additions & 0 deletions src/pages/patientView/PatientViewPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ import ClinicalEventsTables from './timeline2/ClinicalEventsTables';
import MutationalSignaturesContainer from './mutationalSignatures/MutationalSignaturesContainer';
import SampleSummaryList from './sampleHeader/SampleSummaryList';
import { updateOncoKbIconStyle } from 'shared/lib/AnnotationColumnUtils';
import { ExtendedMutationTableColumnType } from 'shared/components/mutationTable/MutationTable';
import { extractColumnNames } from 'shared/components/mutationMapper/MutationMapperUtils';

export interface IPatientViewPageProps {
params: any; // react route
Expand Down Expand Up @@ -553,6 +555,16 @@ export default class PatientViewPage extends React.Component<
this.patientViewPageStore.setMutationalSignaturesVersion(version);
}

@computed get columns(): ExtendedMutationTableColumnType[] {
const namespaceColumnNames = extractColumnNames(
this.dataStore.namespaceColumnConfig
);
return _.concat(
PatientViewMutationTable.defaultProps.columns,
namespaceColumnNames
);
}

public render() {
let sampleManager: SampleManager | null = null;
if (this.patientViewPageStore.sampleManager.isComplete) {
Expand Down Expand Up @@ -1224,6 +1236,7 @@ export default class PatientViewPage extends React.Component<
this.dataStore
.namespaceColumnConfig
}
columns={this.columns}
/>
</div>
)}
Expand Down
7 changes: 0 additions & 7 deletions src/pages/patientView/mutation/PatientViewMutationTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -396,13 +396,6 @@ export default class PatientViewMutationTable extends MutationTable<
_.forIn(
namespaceColumns,
(column: MutationTableColumn, columnName: string) => {
if (
this.props.columns &&
!this.props.columns.includes(columnName)
) {
this.props.columns.push(columnName);
}

this._columns[columnName] = column;
}
);
Expand Down
18 changes: 18 additions & 0 deletions src/pages/patientView/mutation/PatientViewMutationsTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@ import WindowStore from '../../../shared/components/window/WindowStore';
import VAFChartWrapper from 'pages/patientView/timeline2/VAFChartWrapper';
import TimelineWrapper from 'pages/patientView/timeline2/TimelineWrapper';
import VAFChartWrapperStore from '../timeline2/VAFChartWrapperStore';
import { ExtendedMutationTableColumnType } from 'shared/components/mutationTable/MutationTable';
import _ from 'lodash';
import {
createNamespaceColumnName,
extractColumnNames,
} from 'shared/components/mutationMapper/MutationMapperUtils';
import ResultsViewMutationTable from 'pages/resultsView/mutation/ResultsViewMutationTable';

export interface IPatientViewMutationsTabProps {
patientViewPageStore: PatientViewPageStore;
Expand Down Expand Up @@ -350,11 +357,22 @@ export default class PatientViewMutationsTab extends React.Component<
.existsSomeMutationWithAscnProperty
}
namespaceColumns={this.dataStore.namespaceColumnConfig}
columns={this.columns}
/>
</div>
),
});

@computed get columns(): ExtendedMutationTableColumnType[] {
const namespaceColumnNames = extractColumnNames(
this.dataStore.namespaceColumnConfig
);
return _.concat(
PatientViewMutationTable.defaultProps.columns,
namespaceColumnNames
);
}

readonly timeline = MakeMobxView({
await: () => [this.props.patientViewPageStore.clinicalEvents],
render: () => {
Expand Down
17 changes: 17 additions & 0 deletions src/pages/resultsView/mutation/ResultsViewMutationMapper.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@ import {
getPatientSampleSummary,
submitToStudyViewPage,
} from '../querySummary/QuerySummaryUtils';
import { ExtendedMutationTableColumnType } from 'shared/components/mutationTable/MutationTable';
import {
buildNamespaceColumnConfig,
createNamespaceColumnName,
extractColumnNames,
} from 'shared/components/mutationMapper/MutationMapperUtils';

export interface IResultsViewMutationMapperProps extends IMutationMapperProps {
store: ResultsViewMutationMapperStore;
Expand Down Expand Up @@ -252,10 +258,21 @@ export default class ResultsViewMutationMapper extends MutationMapper<
}
deactivateColumnFilter={this.deactivateColumnFilter}
namespaceColumns={this.props.store.namespaceColumnConfig}
columns={this.columns}
/>
);
}

@computed get columns(): ExtendedMutationTableColumnType[] {
const namespaceColumnNames = extractColumnNames(
this.props.store.namespaceColumnConfig
);
return _.concat(
ResultsViewMutationTable.defaultProps.columns,
namespaceColumnNames
);
}

protected get mutationTable(): JSX.Element | null {
return (
<span>
Expand Down
7 changes: 0 additions & 7 deletions src/pages/resultsView/mutation/ResultsViewMutationTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -183,13 +183,6 @@ export default class ResultsViewMutationTable extends MutationTable<
_.forIn(
namespaceColumns,
(column: MutationTableColumn, columnName: string) => {
if (
this.props.columns &&
!this.props.columns.includes(columnName)
) {
this.props.columns.push(columnName);
}

this._columns[columnName] = column;
}
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ import {
} from 'shared/components/mutationMapper/MutationMapper';
import { MutationTableDownloadDataFetcher } from 'shared/lib/MutationTableDownloadDataFetcher';
import MutationMapperDataStore from 'shared/components/mutationMapper/MutationMapperDataStore';
import { computed } from 'mobx';
import { ExtendedMutationTableColumnType } from 'shared/components/mutationTable/MutationTable';
import _ from 'lodash';
import {
createNamespaceColumnName,
extractColumnNames,
} from 'shared/components/mutationMapper/MutationMapperUtils';
import ResultsViewMutationTable from 'pages/resultsView/mutation/ResultsViewMutationTable';

export interface IStandaloneMutationMapperProps extends IMutationMapperProps {
// add standalone view specific props here if needed
Expand Down Expand Up @@ -64,10 +72,21 @@ export default class StandaloneMutationMapper extends MutationMapper<
}
selectedTranscriptId={this.props.store.activeTranscript.result}
namespaceColumns={this.props.store.namespaceColumnConfig}
columns={this.columns}
/>
);
}

@computed get columns(): ExtendedMutationTableColumnType[] {
const namespaceColumnNames = extractColumnNames(
this.props.store.namespaceColumnConfig
);
return _.concat(
StandaloneMutationTable.defaultProps.columns,
namespaceColumnNames
);
}

protected get isMutationTableDataLoading() {
return this.props.store.activeTranscript.isPending;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,6 @@ export default class StandaloneMutationTable extends MutationTable<
_.forIn(
namespaceColumns,
(column: MutationTableColumn, columnName: string) => {
if (
this.props.columns &&
!this.props.columns.includes(columnName)
) {
this.props.columns.push(columnName);
}

this._columns[columnName] = column;
}
);
Expand Down
11 changes: 11 additions & 0 deletions src/shared/components/mutationMapper/MutationMapperUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,17 @@ export function createNamespaceColumnName(
return namespaceName + ' ' + _.capitalize(namespaceColumnName);
}

export function extractColumnNames(config: NamespaceColumnConfig): string[] {
return _.flatMap(config, (namespaceCol, namespaceName) =>
_.keys(namespaceCol).map(namespaceColumnName =>
createNamespaceColumnName(
namespaceName.toString(),
namespaceColumnName
)
)
);
}

function fMerge(refObject: any, addedObject: any) {
if (_.isArray(refObject)) {
return refObject.concat(addedObject);
Expand Down

0 comments on commit 1d654ca

Please sign in to comment.