Commit 6c1f8b9c by Peter Holmberg Committed by GitHub

Ng Alerting: Remove scroll and fix SplitPane limiters (#29906)

* some layout fixes

* use built in limiter
parent d066da42
...@@ -76,15 +76,14 @@ export class SplitPaneWrapper extends PureComponent<Props> { ...@@ -76,15 +76,14 @@ export class SplitPaneWrapper extends PureComponent<Props> {
panel toolbar and editor toolbar (~120px). This is to prevent resizing panel toolbar and editor toolbar (~120px). This is to prevent resizing
the preview window beyond the browser window. the preview window beyond the browser window.
*/ */
const maxHeight = window.innerHeight - 120;
if (Array.isArray(leftPaneComponents)) { if (Array.isArray(leftPaneComponents)) {
return ( return (
<SplitPane <SplitPane
split="horizontal" split="horizontal"
maxSize={maxHeight} maxSize={-200}
primary="first" primary="first"
size={topPaneSize < 200 ? 200 : topPaneSize} size={topPaneSize}
pane2Style={{ minHeight: 0 }} pane2Style={{ minHeight: 0 }}
resizerClassName={styles.resizerH} resizerClassName={styles.resizerH}
onDragStarted={this.onDragStarted} onDragStarted={this.onDragStarted}
...@@ -101,7 +100,6 @@ export class SplitPaneWrapper extends PureComponent<Props> { ...@@ -101,7 +100,6 @@ export class SplitPaneWrapper extends PureComponent<Props> {
render() { render() {
const { rightPaneVisible, rightPaneComponents, uiState } = this.props; const { rightPaneVisible, rightPaneComponents, uiState } = this.props;
// Limit options pane width to 90% of screen. // Limit options pane width to 90% of screen.
const maxWidth = window.innerWidth * 0.9;
const styles = getStyles(config.theme); const styles = getStyles(config.theme);
// Need to handle when width is relative. ie a percentage of the viewport // Need to handle when width is relative. ie a percentage of the viewport
...@@ -117,8 +115,8 @@ export class SplitPaneWrapper extends PureComponent<Props> { ...@@ -117,8 +115,8 @@ export class SplitPaneWrapper extends PureComponent<Props> {
return ( return (
<SplitPane <SplitPane
split="vertical" split="vertical"
maxSize={maxWidth} maxSize={-300}
size={rightPaneSize >= 300 ? rightPaneSize : 300} size={rightPaneSize}
primary="second" primary="second"
resizerClassName={styles.resizerV} resizerClassName={styles.resizerV}
onDragStarted={() => (document.body.style.cursor = 'col-resize')} onDragStarted={() => (document.body.style.cursor = 'col-resize')}
......
...@@ -66,12 +66,12 @@ class NextGenAlertingPage extends PureComponent<Props, State> { ...@@ -66,12 +66,12 @@ class NextGenAlertingPage extends PureComponent<Props, State> {
<Button variant="destructive" key="discard" onClick={this.onDiscard}> <Button variant="destructive" key="discard" onClick={this.onDiscard}>
Discard Discard
</Button>, </Button>,
<Button variant="primary" key="save" onClick={this.onSaveAlert}>
Save
</Button>,
<Button variant="secondary" key="test" onClick={this.onTest}> <Button variant="secondary" key="test" onClick={this.onTest}>
Test Test
</Button>, </Button>,
<Button variant="primary" key="save" onClick={this.onSaveAlert}>
Save
</Button>,
]; ];
} }
...@@ -93,21 +93,23 @@ class NextGenAlertingPage extends PureComponent<Props, State> { ...@@ -93,21 +93,23 @@ class NextGenAlertingPage extends PureComponent<Props, State> {
actions={this.renderToolbarActions()} actions={this.renderToolbarActions()}
titlePadding="sm" titlePadding="sm"
/> />
<SplitPaneWrapper <div className={styles.splitPanesWrapper}>
leftPaneComponents={[ <SplitPaneWrapper
<AlertingQueryPreview key="queryPreview" queryRunner={queryRunner} />, leftPaneComponents={[
<AlertingQueryEditor key="queryEditor" />, <AlertingQueryPreview key="queryPreview" queryRunner={queryRunner} />,
]} <AlertingQueryEditor key="queryEditor" />,
uiState={uiState} ]}
updateUiState={updateAlertDefinitionUiState} uiState={uiState}
rightPaneComponents={ updateUiState={updateAlertDefinitionUiState}
<AlertDefinitionOptions rightPaneComponents={
alertDefinition={alertDefinition} <AlertDefinitionOptions
onChange={this.onChangeAlertOption} alertDefinition={alertDefinition}
notificationChannelTypes={notificationChannelTypes} onChange={this.onChangeAlertOption}
/> notificationChannelTypes={notificationChannelTypes}
} />
/> }
/>
</div>
</div> </div>
); );
} }
...@@ -131,10 +133,25 @@ const mapDispatchToProps: MapDispatchToProps<DispatchProps, OwnProps> = { ...@@ -131,10 +133,25 @@ const mapDispatchToProps: MapDispatchToProps<DispatchProps, OwnProps> = {
export default hot(module)(connect(mapStateToProps, mapDispatchToProps)(NextGenAlertingPage)); export default hot(module)(connect(mapStateToProps, mapDispatchToProps)(NextGenAlertingPage));
const getStyles = stylesFactory((theme: GrafanaTheme) => { const getStyles = stylesFactory((theme: GrafanaTheme) => ({
return { wrapper: css`
wrapper: css` width: 100%;
background-color: ${theme.colors.dashboardBg}; height: 100%;
`, position: fixed;
}; z-index: ${theme.zIndex.sidemenu};
}); top: 0;
left: 0;
right: 0;
bottom: 0;
background: ${theme.colors.dashboardBg};
display: flex;
flex-direction: column;
`,
splitPanesWrapper: css`
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
position: relative;
`,
}));
...@@ -78,10 +78,12 @@ const getStyles = stylesFactory((theme: GrafanaTheme) => { ...@@ -78,10 +78,12 @@ const getStyles = stylesFactory((theme: GrafanaTheme) => {
return { return {
wrapper: css` wrapper: css`
padding-left: ${theme.spacing.md}; padding-left: ${theme.spacing.md};
height: 100%;
`, `,
container: css` container: css`
padding: ${theme.spacing.md}; padding: ${theme.spacing.md};
background-color: ${theme.colors.panelBg}; background-color: ${theme.colors.panelBg};
height: 100%;
`, `,
editorWrapper: css` editorWrapper: css`
border: 1px solid ${theme.colors.panelBorder}; border: 1px solid ${theme.colors.panelBorder};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment