callstack / callstack/react-native-paper

Snackbar as a function.

Open
#2,825 9 comments 22 reactions 0 assignees View on GitHub
enhancement
Dominant language
TypeScript
Stars
14.5k
Forks
2.2k
Avg merge
5d 23h
Merged PRs (30d)
12

Description

It would be great if we could use Snackbar and toggle it as a function.

Like in [Toast](https://docs.nativebase.io/toast) provided by [Native Base](https://nativebase.io/), we can customize it like this

```javascript
import { Toast } from "native-base";

function show({
text,
type = "danger",
buttonText,
duration = 3000,
position,
bottom = 60,
}) {
Toast.show({
text: text,
position: position,
type: type,
duration: duration,
buttonText: buttonText,
});
}

export default {
show,
};
```

Then I use it on any screen or component like this

```javascript
Toast.show({ text: "This API call was successful" }); // This pops a Toast message and disappears after 3 seconds
```

I love the Snackbar that React Native Paper has, but I couldn't figure out how to use it as described above.

Right now, I have to add a component on every page and maintain a state to toggle it. It would have been so good if we could use it like `Snackbar.show("Some Text")`

If anyone has any advice on using Snackbar as a function to toggle Toasts, I would love to discuss it.

Versions :
- "react-native": "~0.63.4"
- "react-native-paper": "^4.9.2"

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing Snackbar component/API and the NativeBase Toast example linked in the issue. Define the supported functional-call options and dismissal behavior, then verify the proposed API from a screen or component without maintaining per-screen Snackbar state. Done means the requested function-based usage is supported and documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
react-native, typescript
Domain
mobile
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.