Files
PrivyDrop/frontend/hooks/useClipboardAppMessages.ts
T
2025-06-22 21:34:54 +08:00

37 lines
822 B
TypeScript

import { useState } from "react";
export interface AppMessages {
shareMessage: string;
retrieveMessage: string;
putMessageInMs: (
message: string,
isShareEnd?: boolean,
displayTimeMs?: number
) => void;
}
export function useClipboardAppMessages(): AppMessages {
const [shareMessage, setShareMessage] = useState("");
const [retrieveMessage, setRetrieveMessage] = useState("");
const putMessageInMs = (
message: string,
isShareEnd = true,
displayTimeMs = 4000
) => {
if (isShareEnd) {
setShareMessage(message);
setTimeout(() => setShareMessage(""), displayTimeMs);
} else {
setRetrieveMessage(message);
setTimeout(() => setRetrieveMessage(""), displayTimeMs);
}
};
return {
shareMessage,
retrieveMessage,
putMessageInMs,
};
}