@@ -38,14 +38,23 @@ const DialogContent = React.forwardRef< | |||||
<DialogPrimitive.Content | <DialogPrimitive.Content | ||||
ref={ref} | ref={ref} | ||||
className={cn( | className={cn( | ||||
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", | |||||
className | |||||
)} | |||||
'fixed left-[50%] top-[50%] z-50 w-[90%] grid max-w-lg', | |||||
'translate-x-[-50%] translate-y-[-50%]', | |||||
'gap-4 border bg-gray-300/80 dark:bg-gray-700/80', | |||||
'p-6 shadow-lg duration-200', | |||||
'data-[state=open]:animate-in data-[state=closed]:animate-out', | |||||
'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', | |||||
'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95', | |||||
'data-[state=closed]:slide-out-to-left-1/2', | |||||
'data-[state=closed]:slide-out-to-top-[48%]', | |||||
'data-[state=open]:slide-in-from-left-1/2', | |||||
'data-[state=open]:slide-in-from-top-[48%] rounded-lg', | |||||
className)} | |||||
{...props} | {...props} | ||||
> | > | ||||
{children} | {children} | ||||
<DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"> | |||||
<X className="h-4 w-4" /> | |||||
<DialogPrimitive.Close className="absolute right-4 top-4 bg-red-500 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"> | |||||
<X className="h-3 w-3" /> | |||||
<span className="sr-only">Close</span> | <span className="sr-only">Close</span> | ||||
</DialogPrimitive.Close> | </DialogPrimitive.Close> | ||||
</DialogPrimitive.Content> | </DialogPrimitive.Content> | ||||
@@ -1,34 +1,30 @@ | |||||
"use client" | |||||
'use client' | |||||
import { useToast } from "@/components/ui/use-toast" | |||||
import { | |||||
Toast, | |||||
ToastClose, | |||||
ToastDescription, | |||||
ToastProvider, | |||||
ToastTitle, | |||||
ToastViewport, | |||||
} from "@/components/ui/toast" | |||||
import { useToast } from '@/components/ui/use-toast' | |||||
import { Toast, | |||||
ToastClose, | |||||
ToastDescription, | |||||
ToastProvider, | |||||
ToastTitle, | |||||
ToastViewport } from '@/components/ui/toast' | |||||
export function Toaster() { | |||||
const { toasts } = useToast() | |||||
export const Toaster = () => { | |||||
const { toasts } = useToast () | |||||
return ( | return ( | ||||
<ToastProvider> | <ToastProvider> | ||||
{toasts.map(function ({ id, title, description, action, ...props }) { | |||||
return ( | |||||
<Toast key={id} {...props}> | |||||
<div className="grid gap-1"> | |||||
{title && <ToastTitle>{title}</ToastTitle>} | |||||
{description && ( | |||||
<ToastDescription>{description}</ToastDescription> | |||||
)} | |||||
</div> | |||||
{action} | |||||
<ToastClose /> | |||||
</Toast> | |||||
) | |||||
})} | |||||
{toasts.map (({ id, title, description, action, ...props }) => ( | |||||
<Toast key={id} | |||||
className="bg-gray-300/80 dark:bg-gray-700/80" | |||||
{...props}> | |||||
<div className="grid gap-1"> | |||||
{title && <ToastTitle>{title}</ToastTitle>} | |||||
{description && <ToastDescription>{description}</ToastDescription>} | |||||
</div> | |||||
{action} | |||||
<ToastClose /> | |||||
</Toast>))} | |||||
<ToastViewport /> | <ToastViewport /> | ||||
</ToastProvider> | </ToastProvider> | ||||
) | ) | ||||
@@ -46,8 +46,8 @@ export default ({ visible, onVisibleChange, setUser }: Props) => { | |||||
return ( | return ( | ||||
<Dialog open={visible} onOpenChange={onVisibleChange}> | <Dialog open={visible} onOpenChange={onVisibleChange}> | ||||
<DialogContent className="space-y-6"> | |||||
<DialogTitle>ほかのブラウザから引継ぐ</DialogTitle> | |||||
<DialogContent> | |||||
<DialogTitle>ほかのブラウザから引継ぐ</DialogTitle> | |||||
<div className="flex gap-2"> | <div className="flex gap-2"> | ||||
<Input placeholder="引継ぎコードを入力" | <Input placeholder="引継ぎコードを入力" | ||||
value={inputCode} | value={inputCode} | ||||
@@ -2,8 +2,8 @@ import axios from 'axios' | |||||
import { Button } from '@/components/ui/button' | import { Button } from '@/components/ui/button' | ||||
import { Dialog, | import { Dialog, | ||||
DialogContent, | |||||
DialogTitle } from '@/components/ui/dialog' | |||||
DialogContent, | |||||
DialogTitle } from '@/components/ui/dialog' | |||||
import { toast } from '@/components/ui/use-toast' | import { toast } from '@/components/ui/use-toast' | ||||
import { API_BASE_URL } from '@/config' | import { API_BASE_URL } from '@/config' | ||||
@@ -37,8 +37,8 @@ export default ({ visible, onVisibleChange, user, setUser }: Props) => { | |||||
return ( | return ( | ||||
<Dialog open={visible} onOpenChange={onVisibleChange}> | <Dialog open={visible} onOpenChange={onVisibleChange}> | ||||
<DialogContent className="space-y-6"> | |||||
<DialogTitle>引継ぎコード</DialogTitle> | |||||
<DialogContent> | |||||
<DialogTitle>引継ぎコード</DialogTitle> | |||||
<div> | <div> | ||||
<p>あなたの引継ぎコードはこちらです:</p> | <p>あなたの引継ぎコードはこちらです:</p> | ||||
<div className="m-2">{user?.inheritanceCode}</div> | <div className="m-2">{user?.inheritanceCode}</div> | ||||