synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
84 lines (83 loc) • 3.58 kB
TypeScript
import BaseTable, { CallOrReturn, ColumnShape, SortOrder } from '@sage-bionetworks/react-base-table';
import React from 'react';
import { DatasetItem, Reference } from '../../../../utils/synapseTypes';
import { DatasetItemsEditorTableData } from '../../../table/datasets/DatasetItemsEditor';
import { DetailsViewRowData } from './DetailsView';
export declare type CellRendererProps<T> = {
cellData: any;
columns: ColumnShape<T>[];
column: ColumnShape<T>;
columnIndex: number;
rowData: T;
rowIndex: number;
container: BaseTable<T>;
isScrolling?: boolean;
};
export declare type CellRenderer<T> = CallOrReturn<React.ReactNode, CellRendererProps<T>>;
/**
* The data across tables may differ, but it has entity ID and version, then it can use many of these renderers
*/
export declare type EntityIdAndVersionNumber = {
entityId: string;
versionNumber?: number;
};
export declare type EntityIdAndVersionRendererProps = CellRendererProps<EntityIdAndVersionNumber>;
/**
* Props for cellRenderer components within the BaseTable
*/
export declare type DetailsViewRendererProps = CellRendererProps<DetailsViewRowData>;
export declare const CustomSortIndicator: ({ className, sortOrder, }: {
className: string;
sortOrder: SortOrder;
}) => JSX.Element;
/**
* Renders Entity Badges using the entity bundle.
* @param props
* @returns
*/
export declare function BadgeIconsRenderer(props: EntityIdAndVersionRendererProps): JSX.Element;
export declare function DateRenderer({ cellData }: {
cellData?: string;
}): JSX.Element;
/**
* Renders 'modifiedOn' from the entity bundle.
* @param props
* @returns
*/
export declare function ModifiedOnRenderer(props: EntityIdAndVersionRendererProps): JSX.Element;
/**
* Renders 'createdOn' from the entity bundle.
* @param props
* @returns
*/
export declare function CreatedOnRenderer(props: EntityIdAndVersionRendererProps): JSX.Element;
export declare function EntityNameRenderer(props: EntityIdAndVersionRendererProps): JSX.Element;
export declare function ProjectRenderer(props: EntityIdAndVersionRendererProps): JSX.Element;
export declare function UserCardRenderer({ cellData }: {
cellData?: string;
}): JSX.Element;
/**
* Renders 'modifiedBy' from the entity bundle.
* @param props
* @returns
*/
export declare function ModifiedByRenderer(props: EntityIdAndVersionRendererProps): JSX.Element;
export declare function LoadingRenderer(): JSX.Element;
export declare function DetailsViewCheckboxRenderer({ rowData, }: DetailsViewRendererProps): false | JSX.Element;
export declare function TypeIconRenderer({ cellData }: DetailsViewRendererProps): JSX.Element;
export declare function EmptyRenderer({ noResultsPlaceholder, }: {
noResultsPlaceholder: React.ReactNode;
}): JSX.Element;
export declare const DatasetEditorVersionRenderer: ({ rowData, toggleSelection, }: CellRendererProps<DatasetItemsEditorTableData> & {
toggleSelection: (entity: DatasetItem) => void;
}) => JSX.Element;
export declare const DetailsViewVersionRenderer: ({ rowData, mustSelectVersionNumber, toggleSelection, }: DetailsViewRendererProps & {
mustSelectVersionNumber: boolean;
toggleSelection: (entity: Reference | Reference[]) => void;
}) => JSX.Element;
export declare function DatasetEditorCheckboxRenderer(props: CellRendererProps<EntityIdAndVersionNumber & {
isSelected: boolean;
isDisabled?: boolean;
setSelected: (newValue: boolean) => void;
}>): false | JSX.Element;
export declare const EntityErrorRenderer: (props: EntityIdAndVersionRendererProps) => JSX.Element;