Files
better-auth/docs/components/generate-secret.tsx
Bereket Engida 4d79534d5f chore: formatting
2024-09-02 22:56:17 +03:00

36 lines
977 B
TypeScript

"use client";
import { alphabet, generateRandomString } from "oslo/crypto";
import { useState } from "react";
import { Button } from "./ui/button";
export const GenerateSecret = () => {
const [generated, setGenerated] = useState(false);
return (
<div className="my-2">
<Button
variant="outline"
size="sm"
disabled={generated}
onClick={() => {
const elements = document.getElementsByTagName("code"); // or any other selector
for (let i = 0; i < elements.length; i++) {
if (elements[i].textContent === "BETTER_AUTH_SECRET=") {
elements[i].textContent =
`BETTER_AUTH_SECRET=${generateRandomString(
32,
alphabet("A-Z", "a-z", "0-9"),
)}`;
setGenerated(true);
setTimeout(() => {
elements[i].textContent = "BETTER_AUTH_SECRET=";
setGenerated(false);
}, 5000);
}
}
}}
>
{generated ? "Generated" : "Generate Secret"}
</Button>
</div>
);
};