Mon hypothèse est que l'état de la boîte de dialogue est à l'origine du problème, mais je n'ai pas pu le comprendre. L'info-bulle fonctionne comme prévu jusqu'à ce que l'IconButton soit cliqué. La boîte de dialogue s'affiche comme il se doit, mais lorsque la boîte de dialogue est fermée, l'info-bulle apparaît comme active.
class DeleteDocument extends React.Component {
state = {
open: false,
};
onDeleteFile() {
try {
ensureJobIsUnlocked();
} catch (err) {
return;
}
const confirmedByUser = true;
if (confirmedByUser) {
this.props.onDeleteFile(this.props.selectedDocument.id);
this.setState({ open: false });
}
}
handleClickOpen = () => {
this.setState({ open: true });
};
handleClose = () => {
this.setState({ open: false });
};
render() {
return (
<div>
<Tooltip id="tooltip-icon" title="Delete Document">
<div>
<IconButton
disabled={(this.props.selectedDocument == null)}
onClick={this.handleClickOpen}
>
<DeleteIcon />
</IconButton>
</div>
</Tooltip>
<Dialog
open={this.state.open}
onClose={this.handleClose}
aria-labelledby="alert-dialog-title"
aria-describedby="alert-dialog-description"
>
<DialogTitle id="alert-dialog-title">{'Delete Document'}</DialogTitle>
<DialogContent>
<DialogContentText id="alert-dialog-description">
This will delete the currently active PDF/Component Design. Are you sure you want to do this?
</DialogContentText>
</DialogContent>
<DialogActions>
<Button onClick={this.handleClose} color="primary">
Cancel
</Button>
<Button onClick={this.onDeleteFile.bind(this)} color="primary" autoFocus>
Delete
</Button>
</DialogActions>
</Dialog>
</div>
);
}
}
Voir problème # 9624 :
C'est le comportement attendu. C'est fait pour des raisons d'accessibilité. Vous avez deux options, soit désactiver la réponse de l'info-bulle pour les événements de focus, soit désactiver le comportement de focus de restauration de la boîte de dialogue.
1. Désactiver la réponse de l'info-bulle aux événements de focus ( docs )
<Tooltip disableTriggerFocus={true} />
2. Désactiver la boîte de dialogue restaurer le comportement du focus ( docs )
<Dialog disableRestoreFocus={true} />
ensemble disableFocusListener={true}
selon ce document https://material-ui.com/api/tooltip/