mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-10-01 23:56:39 +08:00
showToast(): return a dismiss callback
This commit is contained in:
parent
a73a4c6dd6
commit
903d00bd89
@ -229,13 +229,19 @@ export function showToast(
|
|||||||
content: string,
|
content: string,
|
||||||
action?: ToastProps["action"],
|
action?: ToastProps["action"],
|
||||||
delay = 3000,
|
delay = 3000,
|
||||||
) {
|
): () => void {
|
||||||
const div = document.createElement("div");
|
const div = document.createElement("div");
|
||||||
div.className = styles.show;
|
div.className = styles.show;
|
||||||
document.body.appendChild(div);
|
document.body.appendChild(div);
|
||||||
|
|
||||||
const root = createRoot(div);
|
const root = createRoot(div);
|
||||||
|
let closeCalled = false;
|
||||||
const close = () => {
|
const close = () => {
|
||||||
|
if (closeCalled) {
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
closeCalled = true;
|
||||||
|
}
|
||||||
div.classList.add(styles.hide);
|
div.classList.add(styles.hide);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@ -249,6 +255,8 @@ export function showToast(
|
|||||||
}, delay);
|
}, delay);
|
||||||
|
|
||||||
root.render(<Toast content={content} action={action} onClose={close} />);
|
root.render(<Toast content={content} action={action} onClose={close} />);
|
||||||
|
|
||||||
|
return close;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputProps = React.HTMLProps<HTMLTextAreaElement> & {
|
export type InputProps = React.HTMLProps<HTMLTextAreaElement> & {
|
||||||
|
Loading…
Reference in New Issue
Block a user