Sha256: 2b90e6029c61dff7b307a2cae4e6685dce5457eda54bb9102e2e65f11ccecdca

Contents?: true

Size: 1.29 KB

Versions: 544

Compression:

Stored size: 1.29 KB

Contents

import classnames from 'classnames'
import React, { useContext, useRef, useEffect } from 'react'
import { buildCss } from '../../utilities/props'
import { globalProps } from '../../utilities/globalProps'
import { hideElement, showElement } from '../_helper_functions'

import CollapsibleContext from '../context'

export type CollapsibleContentProps = {
  children?: React.ReactNode[] | React.ReactNode | string,
  className?: string,
}

const CollapsibleContent = ({
  children,
  className,
  ...props
}: CollapsibleContentProps): React.ReactElement => {
  const context: {[key: string]: boolean | string} = useContext(CollapsibleContext)
  const contentCSS = buildCss('pb_collapsible_content_kit')
  const contentSpacing = globalProps(props)
  const contentRef = useRef(null);

  useEffect(() => {
    // Use the showElement and hideElement functions based on the context value
    if (contentRef.current) {
      if (context.collapsed) {
        hideElement(contentRef.current);
      } else {
        showElement(contentRef.current);
      }
    }
  }, [context.collapsed]);

  return (
    <div className={classnames(contentCSS, contentSpacing, "toggle-content", className)}
        data-collapsible-content="true" 
        ref={contentRef}
    >
      {children}
    </div>
  )
}

export default CollapsibleContent

Version data entries

544 entries across 544 versions & 1 rubygems

Version Path
playbook_ui-14.9.0.pre.alpha.PBNTR746datepickerdefaultbug4903 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.9.0.pre.alpha.PBNTR746datepickerdefaultbug4901 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.9.0.pre.alpha.PBNTR746datepickerdefaultbug4898 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.9.0.pre.alpha.PBNTR746datepickerdefaultbug4891 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.9.0.pre.alpha.PLAY1731inputmasking4890 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.9.0.pre.alpha.play1703errorstatealignment4889 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.10.0.pre.rc.12 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.10.0.pre.rc.11 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.9.0.pre.alpha.PLAY1731inputmasking4868 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.9.0.pre.alpha.PLAY1731inputmasking4866 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.10.0.pre.rc.10 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.10.0.pre.rc.9 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.10.0.pre.rc.8 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.10.0.pre.rc.7 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.10.0.pre.rc.6 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.10.0.pre.rc.5 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.10.0.pre.rc.4 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.9.0.pre.alpha.PLAY16264818 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.9.0.pre.alpha.PBNTR702stickyleftcolrails4806 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx
playbook_ui-14.10.0.pre.rc.3 app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx