ui icon indicating copy to clipboard operation
ui copied to clipboard

[bug]: Dialog is not using DialogClose

Open kamami opened this issue 8 months ago • 1 comments

Describe the bug

The Dialog is not using the DialogClose function which has data-slot="dialog-close" implemented. Instead the DialogContent is using DialogPrimitive.Close directly. This makes styling the DialogClose Button e.g. changing the cursor to pointer impossible.

function DialogClose({
  ...props
}: React.ComponentProps<typeof DialogPrimitive.Close>) {
  return <DialogPrimitive.Close data-slot="dialog-close" {...props} />
}

function DialogOverlay({
  className,
  ...props
}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
  return (
    <DialogPrimitive.Overlay
      data-slot="dialog-overlay"
      className={cn(
        "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
        className
      )}
      {...props}
    />
  )
}

function DialogContent({
  className,
  children,
  ...props
}: React.ComponentProps<typeof DialogPrimitive.Content>) {
  return (
    <DialogPortal data-slot="dialog-portal">
      <DialogOverlay />
      <DialogPrimitive.Content
        data-slot="dialog-content"
        className={cn(
          "bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
          className
        )}
        {...props}
      >
        {children}
        <DialogPrimitive.Close className="ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4">
          <XIcon />
          <span className="sr-only">Close</span>
        </DialogPrimitive.Close>
      </DialogPrimitive.Content>
    </DialogPortal>
  )
}

Affected component/components

Dialog

How to reproduce

Install Dialog with shadCN 2.4.1

Codesandbox/StackBlitz link

No response

Logs


System Info

Chrome

Before submitting

  • [x] I've made research efforts and searched the documentation
  • [x] I've searched for existing issues

kamami avatar Apr 15 '25 14:04 kamami

I would like to get this issue assigned to me

CodeLeom avatar Apr 23 '25 20:04 CodeLeom

Any updates on this? Thank you so much!! <3

juanpablob avatar May 18 '25 12:05 juanpablob