feat: add copy button api key

This commit is contained in:
BennyKok 2024-01-18 16:38:02 +08:00
parent 4a474a9fa8
commit b094fcf4b4
2 changed files with 16 additions and 5 deletions

View File

@ -11,6 +11,7 @@ import {
FormMessage, FormMessage,
Form, Form,
} from "./ui/form"; } from "./ui/form";
import { CopyButton } from "@/components/CopyButton";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { Checkbox } from "@/components/ui/checkbox"; import { Checkbox } from "@/components/ui/checkbox";
import { import {
@ -387,16 +388,19 @@ function AddMachinesDialog() {
{apiKey && ( {apiKey && (
<FormItem> <FormItem>
<FormLabel>API Key (Copy the API key now)</FormLabel> <FormLabel>API Key (Copy the API key now)</FormLabel>
<div className="flex gap-2">
<FormControl> <FormControl>
<Input readOnly value={apiKey.key} /> <Input readOnly value={apiKey.key} />
</FormControl> </FormControl>
{/* <FormMessage></FormMessage> */} <CopyButton text={apiKey.key} />
</div>
</FormItem> </FormItem>
)} )}
</div> </div>
<DialogFooter> <DialogFooter>
{apiKey ? ( {apiKey ? (
<Button <Button
className="flex gap-2"
type="button" type="button"
onClick={() => { onClick={() => {
setOpen(false); setOpen(false);
@ -405,7 +409,11 @@ function AddMachinesDialog() {
Close {form.formState.isSubmitting && <LoadingIcon />} Close {form.formState.isSubmitting && <LoadingIcon />}
</Button> </Button>
) : ( ) : (
<Button type="submit" disabled={form.formState.isSubmitting}> <Button
className="flex gap-2"
type="submit"
disabled={form.formState.isSubmitting}
>
Create {form.formState.isSubmitting && <LoadingIcon />} Create {form.formState.isSubmitting && <LoadingIcon />}
</Button> </Button>
)} )}

View File

@ -3,6 +3,7 @@
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils"; import { cn } from "@/lib/utils";
import { Copy } from "lucide-react"; import { Copy } from "lucide-react";
import { toast } from "sonner";
export function CopyButton({ export function CopyButton({
className, className,
@ -13,7 +14,9 @@ export function CopyButton({
}) { }) {
return ( return (
<Button <Button
type="button"
onClick={() => { onClick={() => {
toast.success("Copied to clipboard");
navigator.clipboard.writeText(props.text); navigator.clipboard.writeText(props.text);
}} }}
className={cn(" p-2 min-h-0 aspect-square", className)} className={cn(" p-2 min-h-0 aspect-square", className)}