@@ -27,6 +27,7 @@ interface IModalDialogAttributes {
2727 warning ?: boolean
2828 actions ?: ModalAction [ ]
2929 className ?: string
30+ discardAsPrimary ?: boolean
3031}
3132interface ModalInput {
3233 type : EditAttributeType
@@ -56,6 +57,7 @@ export function ModalDialog({
5657 onDiscard,
5758 onSecondary,
5859 secondaryText,
60+ discardAsPrimary,
5961} : React . PropsWithChildren < IModalDialogAttributes > ) : JSX . Element | null {
6062 const { t } = useTranslation ( )
6163 const inputResult = useRef < ModalInputResult > (
@@ -114,7 +116,7 @@ export function ModalDialog({
114116 e . stopPropagation ( )
115117
116118 if ( isAcceptKey ( e . code ) ) {
117- handleAccept ( e )
119+ discardAsPrimary ? handleDiscard ( e ) : handleAccept ( e )
118120 } else if ( isDismissKey ( e . code ) ) {
119121 handleDiscard ( e )
120122 }
@@ -203,13 +205,23 @@ export function ModalDialog({
203205 </ div >
204206 ) : null }
205207 < div
206- className = { ClassNames ( 'mod' , {
207- alright : ! secondaryText ,
208- } ) }
208+ className = { ClassNames (
209+ 'mod' ,
210+ {
211+ alright : ! secondaryText ,
212+ } ,
213+ 'modal-dialog-actions'
214+ ) }
209215 >
210216 { secondaryText && (
211217 < button
212- className = "btn btn-secondary"
218+ className = { ClassNames (
219+ 'btn' ,
220+ discardAsPrimary ? 'btn-primary' : 'btn-secondary' ,
221+ 'discard-btn' ,
222+ { 'btn-warn' : discardAsPrimary && warning }
223+ ) }
224+ autoFocus = { discardAsPrimary }
213225 onClick = { handleSecondary }
214226 onKeyDown = { preventClickOnEnter }
215227 onKeyUp = { emulateClick }
@@ -240,11 +252,11 @@ export function ModalDialog({
240252 } )
241253 ) }
242254 < button
243- className = { ClassNames ( 'btn btn-primary' , {
255+ className = { ClassNames ( 'btn' , ! discardAsPrimary ? ' btn-primary' : 'btn-secondary ', {
244256 right : secondaryText !== undefined ,
245- 'btn-warn' : warning ,
257+ 'btn-warn' : ! discardAsPrimary && warning ,
246258 } ) }
247- autoFocus
259+ autoFocus = { ! discardAsPrimary }
248260 onClick = { handleAccept }
249261 onKeyDown = { preventClickOnEnter }
250262 onKeyUp = { emulateClick }
@@ -284,6 +296,8 @@ export interface ModalDialogQueueItem {
284296 actions ?: ModalAction [ ]
285297 /** Is a critical decition/information */
286298 warning ?: boolean
299+ /** Discard as primary */
300+ discardAsPrimary ?: boolean
287301}
288302interface IModalDialogGlobalContainerProps { }
289303interface IModalDialogGlobalContainerState {
@@ -382,6 +396,7 @@ class ModalDialogGlobalContainer0 extends React.Component<
382396 actions = { actions }
383397 show = { true }
384398 warning = { onQueue . warning }
399+ discardAsPrimary = { onQueue . discardAsPrimary }
385400 >
386401 { _ . isString ( onQueue . message ) ? this . renderString ( onQueue . message ) : onQueue . message }
387402 </ ModalDialog >
0 commit comments