import { UISref } from '@uirouter/react'; import React from 'react'; import { Spinner } from '../../widgets/spinners/Spinner'; interface IDetailsProps { loading: boolean; } interface IDetailsHeaderProps { icon: React.ReactNode; name: string; notifications?: React.ReactNode; actions?: React.ReactNode; } interface IDetailsContentProps { loading: boolean; children: React.ReactNode; } interface IDetailsSFCWithExtras extends React.SFC { Header: React.SFC; Content: React.FunctionComponent; } const CloseButton = (
); const DetailsHeader: React.SFC = (props) => (
{CloseButton}
{props.icon}

{props.name} {props.notifications && props.notifications}

{props.actions &&
{props.actions}
}
{props.children}
); const loading = (
); const Details: IDetailsSFCWithExtras = (props) => (
{props.loading ? loading : props.children}
); const DetailsContent = ({ loading, children }: IDetailsContentProps) => (
{loading ? loading : children}
); Details.Header = DetailsHeader; Details.Content = DetailsContent; export { Details };