docs: fix error on collapsing prerequisites (#10153)
This commit is contained in:
1 parent
39e81d8d21
commit
3b1463048a
2 files changed
+11
-2
No files matched your search
@@ -1,6 +1,6 @@
|
|||||||
"use client"
|
"use client"
|
||||||
|
|
||||||
import React from "react"
|
import React, { useRef } from "react"
|
||||||
import { Button, useCollapsible } from "../.."
|
import { Button, useCollapsible } from "../.."
|
||||||
import clsx from "clsx"
|
import clsx from "clsx"
|
||||||
import { TriangleRightMini } from "@medusajs/icons"
|
import { TriangleRightMini } from "@medusajs/icons"
|
||||||
@@ -15,9 +15,12 @@ type PrerequisitesProps = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const Prerequisites = ({ items }: PrerequisitesProps) => {
|
export const Prerequisites = ({ items }: PrerequisitesProps) => {
|
||||||
|
const itemsRef = useRef<HTMLDivElement>(null)
|
||||||
const { collapsed, getCollapsibleElms, setCollapsed } = useCollapsible({
|
const { collapsed, getCollapsibleElms, setCollapsed } = useCollapsible({
|
||||||
initialValue: false,
|
initialValue: false,
|
||||||
translateEnabled: false,
|
translateEnabled: false,
|
||||||
|
childrenRef: itemsRef,
|
||||||
|
useChild: false,
|
||||||
})
|
})
|
||||||
|
|
||||||
const getPosition = (index: number): PrerequisiteItemPosition => {
|
const getPosition = (index: number): PrerequisiteItemPosition => {
|
||||||
@@ -71,7 +74,7 @@ export const Prerequisites = ({ items }: PrerequisitesProps) => {
|
|||||||
</Button>
|
</Button>
|
||||||
</summary>
|
</summary>
|
||||||
{getCollapsibleElms(
|
{getCollapsibleElms(
|
||||||
<div className="flex gap-[6px] flex-col">
|
<div className="flex gap-[6px] flex-col" ref={itemsRef}>
|
||||||
{items.map((item, index) => (
|
{items.map((item, index) => (
|
||||||
<PrerequisiteItem
|
<PrerequisiteItem
|
||||||
item={{
|
item={{
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ export type CollapsibleProps = {
|
|||||||
onClose?: () => void
|
onClose?: () => void
|
||||||
unmountOnExit?: boolean
|
unmountOnExit?: boolean
|
||||||
childrenRef?: React.RefObject<HTMLElement | null>
|
childrenRef?: React.RefObject<HTMLElement | null>
|
||||||
|
useChild?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export type CollapsibleReturn = {
|
export type CollapsibleReturn = {
|
||||||
@@ -26,10 +27,15 @@ export const useCollapsible = ({
|
|||||||
onClose,
|
onClose,
|
||||||
unmountOnExit = true,
|
unmountOnExit = true,
|
||||||
childrenRef,
|
childrenRef,
|
||||||
|
useChild = true,
|
||||||
}: CollapsibleProps): CollapsibleReturn => {
|
}: CollapsibleProps): CollapsibleReturn => {
|
||||||
const [collapsed, setCollapsed] = useState(initialValue)
|
const [collapsed, setCollapsed] = useState(initialValue)
|
||||||
|
|
||||||
const getNodeFromChildrenRef = () => {
|
const getNodeFromChildrenRef = () => {
|
||||||
|
if (!useChild) {
|
||||||
|
return childrenRef?.current
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
(childrenRef?.current?.firstElementChild as HTMLElement) ||
|
(childrenRef?.current?.firstElementChild as HTMLElement) ||
|
||||||
childrenRef?.current
|
childrenRef?.current
|
||||||
|
|||||||
Reference in new issue
Block a user