import { WithDialogProps } from 'store/dialog/with-dialog';
import { withDialog } from "store/dialog/with-dialog";
import { compose } from 'redux';
-import { ADVANCED_TAB_DIALOG } from "store/advanced-tab/advanced-tab";
+import { AdvancedTabDialogData, ADVANCED_TAB_DIALOG } from "store/advanced-tab/advanced-tab";
import { DefaultCodeSnippet } from "components/default-code-snippet/default-code-snippet";
import { MetadataTab } from 'views-components/advanced-tab-dialog/metadataTab';
+import { LinkResource } from "models/link";
+import { ListResults } from "services/common-service/common-service";
type CssRules = 'content' | 'codeSnippet' | 'spacing';
withDialog(ADVANCED_TAB_DIALOG),
withStyles(styles),
)(
- class extends React.Component<WithDialogProps<any> & WithStyles<CssRules>>{
+ class extends React.Component<WithDialogProps<AdvancedTabDialogData> & WithStyles<CssRules>>{
state = {
value: 0,
};
maxWidth="lg"
onClose={closeDialog}
onExit={() => this.setState({ value: 0 })} >
- <DialogTitle>Advanced</DialogTitle>
+ <DialogTitle>API Details</DialogTitle>
<Tabs value={value} onChange={this.handleChange} fullWidth>
<Tab label="API RESPONSE" />
<Tab label="METADATA" />
<DialogContent className={classes.content}>
{value === 0 && <div>{dialogContentExample(apiResponse, classes)}</div>}
{value === 1 && <div>
- {metadata !== '' && metadata.items.length > 0 ?
- <MetadataTab items={metadata.items} uuid={uuid} />
+ {metadata !== '' && (metadata as ListResults<LinkResource>).items.length > 0 ?
+ <MetadataTab items={(metadata as ListResults<LinkResource>).items} uuid={uuid} />
: dialogContentHeader('(No metadata links found)')}
</div>}
{value === 2 && dialogContent(pythonHeader, pythonExample, classes)}
{header}
</DialogContentText>;
-const dialogContentExample = (example: string, classes: any) =>
- <DefaultCodeSnippet
+const dialogContentExample = (example: JSX.Element | string, classes: any) => {
+ // Pass string to lines param or JSX to child props
+ const stringData = example && (example as string).length ? (example as string) : undefined;
+ return <DefaultCodeSnippet
apiResponse
className={classes.codeSnippet}
- lines={[example]} />;
\ No newline at end of file
+ lines={stringData ? [stringData] : []}
+ >
+ {example as JSX.Element || null}
+ </DefaultCodeSnippet>;
+}