in dashboards-notifications/public/pages/Channels/Channels.tsx [193:285]
render() {
const filterIsApplied = !!this.state.search;
const page = Math.floor(this.state.from / this.state.size);
const pagination: Pagination = {
pageIndex: page,
pageSize: this.state.size,
pageSizeOptions: DEFAULT_PAGE_SIZE_OPTIONS,
totalItemCount: this.state.total,
};
const sorting: EuiTableSortingType<ChannelItemType> = {
sort: {
direction: this.state.sortDirection,
field: this.state.sortField,
},
};
const selection = {
selectable: () => true,
onSelectionChange: this.onSelectionChange,
};
return (
<>
<ContentPanel
actions={
<ContentPanelActions
actions={[
{
component: (
<ChannelActions
selected={this.state.selectedItems}
setSelected={(selectedItems: ChannelItemType[]) =>
this.setState({ selectedItems })
}
items={this.state.items}
setItems={(items: ChannelItemType[]) =>
this.setState({ items })
}
refresh={this.refresh}
/>
),
},
{
component: (
<EuiButton fill href={`#${ROUTES.CREATE_CHANNEL}`}>
Create channel
</EuiButton>
),
},
]}
/>
}
bodyStyles={{ padding: 'initial' }}
title="Channels"
titleSize="m"
total={this.state.total}
>
<ChannelControls
onSearchChange={this.onSearchChange}
filters={this.state.filters}
onFiltersChange={this.onFiltersChange}
/>
<EuiHorizontalRule margin="s" />
<EuiBasicTable
columns={this.columns}
items={this.state.items}
itemId="config_id"
isSelectable={true}
selection={selection}
noItemsMessage={
<EuiEmptyPrompt
title={<h2>No channels to display</h2>}
body="To send or receive notifications, you will need to create a notification channel."
actions={
<EuiButton href={`#${ROUTES.CREATE_CHANNEL}`}>
Create channel
</EuiButton>
}
/>
}
onChange={this.onTableChange}
pagination={pagination}
sorting={sorting}
tableLayout="auto"
loading={this.state.loading}
/>
</ContentPanel>
</>
);
}