further implementing server page (#4)

* further implementing server page

* optimize icon button

* rename some unnecessary file extensions

* add terminal page & fm card
This commit is contained in:
UUBulb
2024-11-18 20:48:30 +08:00
committed by GitHub
parent 6e3f888792
commit fc923f3ab1
25 changed files with 1248 additions and 149 deletions
+38
View File
@@ -0,0 +1,38 @@
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"
import { ButtonProps } from "@/components/ui/button"
import { forwardRef, useState } from "react"
import { IconButton } from "./xui/icon-button"
export const InstallCommandsMenu = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {
const [copy, setCopy] = useState(false);
const switchState = async () => {
if (!copy) {
setCopy(true);
await navigator.clipboard.writeText("stub");
setTimeout(() => {
setCopy(false);
}, 2 * 1000);
}
}
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<IconButton {...props} ref={ref} variant="outline" size="icon" icon={
copy ? "check" : "clipboard"
} />
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuItem onClick={switchState}>Linux</DropdownMenuItem>
<DropdownMenuItem onClick={switchState}>macOS</DropdownMenuItem>
<DropdownMenuItem onClick={switchState}>Windows</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
);
})