34 lines
765 B
TypeScript
34 lines
765 B
TypeScript
import React, { useEffect, useState } from "react";
|
|
import { Snackbar } from "react-native-paper";
|
|
import { emitter } from "./emitter";
|
|
import { TOAST } from "./toast";
|
|
|
|
export default function AppSnack({ textColor }: { textColor: string }) {
|
|
const [snackbar, setSnackbar] = useState("");
|
|
|
|
useEffect(() => {
|
|
const description = emitter.addListener(
|
|
TOAST,
|
|
({ value }: { value: string }) => {
|
|
setSnackbar(value);
|
|
}
|
|
);
|
|
return description.remove;
|
|
}, []);
|
|
|
|
return (
|
|
<Snackbar
|
|
duration={3000}
|
|
onDismiss={() => setSnackbar("")}
|
|
visible={!!snackbar}
|
|
action={{
|
|
label: "Close",
|
|
onPress: () => setSnackbar(""),
|
|
textColor,
|
|
}}
|
|
>
|
|
{snackbar}
|
|
</Snackbar>
|
|
);
|
|
}
|