- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 536
 
Description
Check the troubleshooting page before opening an issue!
Make sure your problem isn't already covered at the troubleshooting page: https://react-tooltip.com/docs/troubleshooting
Bug description
The Medusa documentation uses react-tooltip for all tooltips. We've had multiple users report an issue when using google translate (see here) where the website crashes with the error NotFoundError: Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.
After investigation, the error seems to result from google trying to replace the tooltip's content with the translated content.
Here's the error trace in development:
Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.
    at insertBefore (webpack-internal:///../../node_modules/react-dom/cjs/react-dom.development.js:11088:18)
    at insertOrAppendPlacementNode (webpack-internal:///../../node_modules/react-dom/cjs/react-dom.development.js:23895:7)
    at commitPlacement (webpack-internal:///../../node_modules/react-dom/cjs/react-dom.development.js:23839:9)
    at commitReconciliationEffects (webpack-internal:///../../node_modules/react-dom/cjs/react-dom.development.js:24586:7)
    at commitMutationEffectsOnFiber (webpack-internal:///../../node_modules/react-dom/cjs/react-dom.development.js:24342:9)
    at recursivelyTraverseMutationEffects (webpack-internal:///../../node_modules/react-dom/cjs/react-dom.development.js:24268:7)
    at commitMutationEffectsOnFiber (webpack-internal:///../../node_modules/react-dom/cjs/react-dom.development.js:24288:9)
    at recursivelyTraverseMutationEffects (webpack-internal:///../../node_modules/react-dom/cjs/react-dom.development.js:24268:7)
    at commitMutationEffectsOnFiber (webpack-internal:///../../node_modules/react-dom/cjs/react-dom.development.js:24288:9)
    at recursivelyTraverseMutationEffects (webpack-internal:///../../node_modules/react-dom/cjs/react-dom.development.js:24268:7)
The above error occurred in the <span> component:
    at span
    at q (webpack-internal:///../../node_modules/react-tooltip/dist/react-tooltip.min.mjs:17:6453)
    at eval (webpack-internal:///../../node_modules/react-tooltip/dist/react-tooltip.min.mjs:17:16920)
    at Tooltip (webpack-internal:///../../packages/docs-ui/dist/esm/components/Tooltip/index.js:24:11)
    at CopyButton (webpack-internal:///../../packages/docs-ui/dist/esm/components/CopyButton/index.js:15:23)
    at InlineCode (webpack-internal:///../../packages/docs-ui/dist/esm/components/InlineCode/index.js:15:21)
    at MDXCode (webpack-internal:///./src/theme/MDXComponents/Code.tsx:13:96)
    at p
    at MDXContent (webpack-internal:///./content/create-medusa-app.mdx:491:72)
    at MDXProvider (webpack-internal:///../../node_modules/@mdx-js/react/lib/index.js:76:13)
    at MDXContent (webpack-internal:///../../node_modules/@docusaurus/theme-classic/lib/theme/MDXContent/index.js:17:23)
    ...
(Shortened the rest down for readability)
I confirmed that when i remove the use of react-tooltip in the Tooltip component, the issue doesn't occur anymore.
This is the content of the Tooltip component:
"use client"
import React, { useId } from "react"
import { Tooltip as ReactTooltip } from "react-tooltip"
import type { ITooltip } from "react-tooltip"
import clsx from "clsx"
import "react-tooltip/dist/react-tooltip.css"
export type TooltipProps = {
  text?: string
  tooltipClassName?: string
  html?: string
  tooltipChildren?: React.ReactNode
} & React.HTMLAttributes<HTMLSpanElement> &
  ITooltip
export const Tooltip = ({
  text = "",
  tooltipClassName = "",
  children,
  html = "",
  tooltipChildren,
  className,
  ...tooltipProps
}: TooltipProps) => {
  const elementId = useId()
  return (
    <>
      <span
        id={elementId}
        data-tooltip-content={text}
        data-tooltip-html={html}
        data-tooltip-id={elementId}
        className={className}
      >
        {children}
      </span>
      <ReactTooltip
        anchorId={elementId}
        // anchorSelect={elementId ? `#${elementId}` : undefined}
        className={clsx(
          "!border-medusa-border-base !border !border-solid",
          "!text-compact-x-small-plus !shadow-tooltip dark:!shadow-tooltip-dark !rounded-docs_DEFAULT",
          "!py-docs_0.4 !z-[399] hidden !px-docs_1 lg:block",
          "!bg-medusa-bg-base",
          "!text-medusa-fg-subtle",
          tooltipClassName
        )}
        wrapper="span"
        noArrow={true}
        positionStrategy={"fixed"}
        {...tooltipProps}
      >
        {tooltipChildren}
      </ReactTooltip>
    </>
  )
}While this was reported on our documentation website running on Docusaurus, I was also able to reproduce it on our new documentation running on Next.js.
Version of Package
v5.27.1
To Reproduce
- Open the documentation website: https://docs.medusajs.com
 - Use google translate (on chrome) to translate to any other language)
 - Navigate to another page and hover over any inline code element (those have tooltips) and you'll see the error. Sometimes you only get to the error after a few tries.
 
Expected behavior
The page shouldn't crash when using google translate
Screenshots
Screen.Recording.2024-07-05.at.4.38.30.PM.mov
Desktop (please complete the following information if possible or delete this section):
- OS: [e.g. iOS] MacOS
 - Browser [e.g. chrome, safari] Chrome
 - Version [e.g. 22]
 - Frameworks [e.g. React 18, Next.js 13]
 
Smartphone (please complete the following information if possible or delete this section):
- Device: [e.g. iPhone6]
 - OS: [e.g. iOS8.1]
 - Browser [e.g. stock browser, safari]
 - Version [e.g. 22] 126.0.6478.127
 - Frameworks [e.g. React 18, Next.js 13] Happens on Docusaurus and Next.js 14
 
Additional context
Add any other context about the problem here.