Dialog
name:
username:
説明
ダイアログを表示するサンプルコード
利用するshadcn/uiコンポーネント
- dialog
- input
- label
サンプルコード
'use client'; import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Input, Label, } from '@repo/ui'; import { useState } from 'react'; const Example = () => { const [open, setOpen] = useState(false); const [name, setName] = useState(''); const [username, setUsername] = useState(''); const handleSubmit = () => { console.log('submited'); setOpen(false); }; return ( <div className="flex flex-col space-y-8"> <div> <Dialog open={open} onOpenChange={setOpen}> <DialogTrigger asChild> <Button variant="outline">Edit Profile</Button> </DialogTrigger> <DialogContent className="sm:max-w-[425px]"> <DialogHeader> <DialogTitle>Edit profile</DialogTitle> <DialogDescription> {`Make changes to your profile here. Click save when you're done.`} </DialogDescription> </DialogHeader> <div className="grid gap-4 py-4"> <div className="grid grid-cols-4 items-center gap-4"> <Label htmlFor="name" className="text-right"> Name </Label> <Input id="name" value={name} onChange={(e) => setName(e.target.value)} className="col-span-3" /> </div> <div className="grid grid-cols-4 items-center gap-4"> <Label htmlFor="username" className="text-right"> Username </Label> <Input id="username" value={username} onChange={(e) => setUsername(e.target.value)} className="col-span-3" /> </div> </div> <DialogFooter> <Button type="submit" onClick={handleSubmit}> Save changes </Button> </DialogFooter> </DialogContent> </Dialog> </div> <div className="flex flex-col space-y-4"> <div>{`name: ${name}`}</div> <div>{`username: ${username}`}</div> </div> </div> ); }; export { Example };