11import React from 'react' ;
22import { connect } from 'react-redux' ;
33import type { DataModelingState } from '../store/reducer' ;
4- import { saveDiagram , redoEdit , undoEdit } from '../store/diagram' ;
4+ import { redoEdit , undoEdit } from '../store/diagram' ;
55import { showExportModal } from '../store/export-diagram' ;
6- import { Icon , IconButton } from '@mongodb-js/compass-components' ;
6+ import {
7+ Button ,
8+ css ,
9+ cx ,
10+ Icon ,
11+ IconButton ,
12+ palette ,
13+ spacing ,
14+ useDarkMode ,
15+ } from '@mongodb-js/compass-components' ;
16+
17+ const containerStyles = css ( {
18+ display : 'flex' ,
19+ justifyContent : 'space-between' ,
20+ alignItems : 'center' ,
21+ padding : `${ spacing [ 150 ] } px ${ spacing [ 200 ] } px` ,
22+ backgroundColor : palette . gray . light3 ,
23+ borderBottom : `1px solid ${ palette . gray . light2 } ` ,
24+ } ) ;
25+
26+ const containerDarkStyles = css ( {
27+ backgroundColor : palette . gray . dark3 ,
28+ borderBottom : `1px solid ${ palette . gray . dark2 } ` ,
29+ } ) ;
30+
31+ const toolbarGroupStyles = css ( {
32+ display : 'flex' ,
33+ } ) ;
734
835export const DiagramEditorToolbar : React . FunctionComponent < {
936 step : DataModelingState [ 'step' ] ;
1037 hasUndo : boolean ;
1138 hasRedo : boolean ;
12- onDownloadClick : ( ) => void ;
1339 onUndoClick : ( ) => void ;
1440 onRedoClick : ( ) => void ;
1541 onExportClick : ( ) => void ;
16- } > = ( {
17- step,
18- hasUndo,
19- onUndoClick,
20- hasRedo,
21- onRedoClick,
22- onExportClick,
23- onDownloadClick,
24- } ) => {
42+ } > = ( { step, hasUndo, onUndoClick, hasRedo, onRedoClick, onExportClick } ) => {
43+ const darkmode = useDarkMode ( ) ;
2544 if ( step !== 'EDITING' ) {
2645 return null ;
2746 }
2847 return (
29- < div data-testid = "diagram-editor-toolbar" >
30- < IconButton aria-label = "Download" onClick = { onDownloadClick } >
31- < Icon glyph = "Download" > </ Icon >
32- </ IconButton >
33- < IconButton aria-label = "Undo" disabled = { ! hasUndo } onClick = { onUndoClick } >
34- < Icon glyph = "Undo" > </ Icon >
35- </ IconButton >
36- < IconButton aria-label = "Redo" disabled = { ! hasRedo } onClick = { onRedoClick } >
37- < Icon glyph = "Redo" > </ Icon >
38- </ IconButton >
39- < IconButton aria-label = "Export" onClick = { onExportClick } >
40- < Icon glyph = "Export" > </ Icon >
41- </ IconButton >
48+ < div
49+ className = { cx ( containerStyles , darkmode && containerDarkStyles ) }
50+ data-testid = "diagram-editor-toolbar"
51+ >
52+ < div className = { toolbarGroupStyles } >
53+ < IconButton aria-label = "Undo" disabled = { ! hasUndo } onClick = { onUndoClick } >
54+ < Icon glyph = "Undo" > </ Icon >
55+ </ IconButton >
56+ < IconButton aria-label = "Redo" disabled = { ! hasRedo } onClick = { onRedoClick } >
57+ < Icon glyph = "Redo" > </ Icon >
58+ </ IconButton >
59+ </ div >
60+ < div className = { toolbarGroupStyles } >
61+ < Button size = "xsmall" aria-label = "Export" onClick = { onExportClick } >
62+ < Icon glyph = "Export" > </ Icon >
63+ </ Button >
64+ </ div >
4265 </ div >
4366 ) ;
4467} ;
@@ -56,6 +79,5 @@ export default connect(
5679 onUndoClick : undoEdit ,
5780 onRedoClick : redoEdit ,
5881 onExportClick : showExportModal ,
59- onDownloadClick : saveDiagram ,
6082 }
6183) ( DiagramEditorToolbar ) ;
0 commit comments