
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
@stordata/material-ui-snackbar-provider
Advanced tools
A convenient way to use material-ui's snackbars.
A convenient way to use material-ui's snackbars.
npm i --save material-ui-snackbar-provider
Simply wrap all components that should display snackbars with the SnackbarProvider
component,
e.g. by wrapping your router with it.
import { SnackbarProvider } from 'material-ui-snackbar-provider'
// somewhere at the root of your app
<SnackbarProvider SnackbarProps={{ autoHideDuration: 4000 }}>
{/* the rest of your app belongs here, e.g. the router */}
</SnackbarProvider>
You can then display messages with the useSnackbar
hook. More examples can be found here.
import { useSnackbar } from 'material-ui-snackbar-provider'
export default function MyComponent (props) {
const snackbar = useSnackbar()
const handleSomething = () => {
snackbar.showMessage(
'Something happened!',
'Undo', () => handleUndo()
)
}
const handleUndo = () => {
// *snip*
}
return (
// *snip*
)
}
If you're not using React ^16.8.0 and our you can't use hooks (e.g. in a class component), you can use the withSnackbar
HOC and the injected snackbar
prop instead.
import { withSnackbar } from 'material-ui-snackbar-provider'
class MyComponent {
// *snip*
handleSomething () {
this.props.snackbar.showMessage(
'Something happened!',
'Undo', () => this.handleUndo())
}
handleUndo () {
// *snip*
}
}
export default withSnackbar()(MyComponent) // export the wrapped component
Snackbar variants (i.e. diffent styles for different types of messages) can be implemented using the Alert
component from @material-ui/lab
. An example that also adds a custom hook to display snackbars with different severities is available here.
Name | Type | Default | Description |
---|---|---|---|
ButtonProps | object | Props to pass through to the action button. | |
children | node | The children that are wrapped by this provider. | |
SnackbarComponent | ReactElement | Custom snackbar component. | |
SnackbarProps | object | Props to pass through to the snackbar. |
* required property
snackbar.showMessage(message, [action, handler, customParameters, closeWithoutActionHandler])
message
(string) – message to displayaction
(string, optional) – label for the action buttonhandler
(function, optional) – click handler for the action buttoncustomParameters
(any, optional) - custom parameters that will be passed to the snackbar renderercloseWithoutActionHandler
(function, optional) - function that is called when the snackbar hides and the action button was not clickedDude, this is not pretty React-like, I don't want to call a function to do something that changes the UI! I want to display a snackbar based on the state only, e.g. by using Redux.
I agree. And if it wouldn't be an absolute pain to do that if you intend to display more than one snackbar, this package wouldn't even exist. The thing is that most of the time, snackbars are displayed when state changes and not really depend on the state itself.
Also, calling a method after dispatching the action is pretty convenient, especially when using something like redux-thunk:
deleteEmail (id) {
this.props.dispatch(someReduxThunkAction())
.then(() => {
this.snackbar.showMessage(
'E-mail deleted',
'Undo', () => this.restoreEmail(id))
})
.catch((e) => {
this.snackbar.showMessage(
'E-mail could not be deleted',
'Retry', () => this.deleteEmail(id))
})
}
So this package makes snackbars a lot easier to use, which is all it's intended to do.
The files included in this repository are licensed under the MIT license.
FAQs
A convenient way to use material-ui's snackbars.
We found that @stordata/material-ui-snackbar-provider demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.