Dialog
How to use the Dialog component from the Default kit.
import { Canvas } from "@react-three/fiber"; import { Fullscreen } from "@react-three/uikit"; import { colors } from "@react-three/uikit-default"; import { Text, Container } from '@react-three/uikit' import { Button, Label, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, VanillaDialog, } from '@react-three/uikit-default' import { useMemo } from 'react' import { signal } from '@preact/signals-core' function DialogDemo() { const ref = useMemo(() => signal<VanillaDialog | undefined>(undefined), []) return ( <> <DialogTrigger dialog={ref}> <Button variant="outline"> <Text>Edit Profile</Text> </Button> </DialogTrigger> <Dialog ref={(dialog) => void (ref.value = dialog ?? undefined)}> <DialogContent sm={{ maxWidth: 425 }}> <DialogHeader> <DialogTitle> <Text>Edit profile</Text> </DialogTitle> <DialogDescription> <Text>Make changes to your profile here. Click save when you're done.</Text> </DialogDescription> </DialogHeader> <Container flexDirection="column" alignItems="center" gap={16} paddingY={16}> <Container alignItems="center" gap={16}> <Label> <Text textAlign="right">Name</Text> </Label> {/*<Input defaultValue="Pedro Duarte" className="col-span-3" />*/} </Container> <Container alignItems="center" gap={16}> <Label> <Text textAlign="right">Username</Text> </Label> {/*<Input id="username" defaultValue="@peduarte" className="col-span-3" />*/} </Container> </Container> <DialogFooter> <Button> <Text>Save changes</Text> </Button> </DialogFooter> </DialogContent> </Dialog> </> ) } export default function App() { return ( <Canvas style={{ position: "absolute", inset: "0", touchAction: "none" }} gl={{ localClippingEnabled: true }}> <ambientLight intensity={0.5} /> <directionalLight intensity={1} position={[-5, 5, 10]} /> <Fullscreen overflow="scroll" flexDirection="column" alignItems="center" padding={32} backgroundColor={colors.background} > <DialogDemo /> </Fullscreen> </Canvas> ) }
import { Dialog } from "@react-three/uikit-default";