design-react-kit
Version:
Componenti React per Bootstrap 5
1 lines • 3.53 kB
Source Map (JSON)
{"version":3,"sources":["../../src/Header/HeaderToggler.tsx","../../src/Header/HeaderContext.tsx"],"sourcesContent":["import React, { ElementType, ButtonHTMLAttributes, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { NavbarToggler } from 'reactstrap';\n\nimport { SLIM, NAVBAR, useHeaderContext } from './HeaderContext';\n\nexport interface HeaderTogglerProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Tipo di elemento DOM da utilizzare: di default \"a\" per Header Slim, \"button\" per altri tipi di Header.\n * Se fornito questo sovrascriverà il valore di default.\n */\n tag?: ElementType;\n /** Classi aggiuntive da usare per il componente HeaderToggler */\n className?: string;\n /** Indica l'attributo \"type\" sull'elemento DOM. Di default '' per Header Slim, \"button\" per altri tipi di Header.\n * Se fornito questo sovrascriverà il valore di default.\n */\n type?: 'button' | 'submit' | 'reset';\n isOpen?: boolean;\n testId?: string;\n}\n\nconst BUTTON = 'button';\n\nexport const HeaderToggler = ({ className, tag, type, isOpen = false, testId, ...attributes }: HeaderTogglerProps) => {\n const HeaderType = useHeaderContext();\n const defaultTag = HeaderType === SLIM ? 'a' : BUTTON;\n const defaultType = HeaderType === SLIM ? undefined : BUTTON;\n const classes = classNames(\n {\n 'it-opener d-lg-none': HeaderType === SLIM,\n 'custom-navbar-toggler': HeaderType === NAVBAR\n },\n className\n );\n const expanded = isOpen ? 'true' : 'false';\n useEffect(() => {\n document.querySelectorAll('.container-fluid').forEach((element) => {\n element.classList.remove('container-fluid');\n });\n });\n return (\n <NavbarToggler\n className={classes}\n {...attributes}\n tag={tag || defaultTag}\n type={type || defaultType}\n data-testid={testId}\n aria-expanded={expanded}\n />\n );\n};\n","import { createContext, useContext } from 'react';\n\nexport const SLIM = 'slim';\nexport const CENTER = 'center';\nexport const NAVBAR = 'navbar';\n\nexport const HeaderContext = /* @__PURE__ */ createContext<{\n type?: typeof SLIM | typeof CENTER | typeof NAVBAR;\n}>({});\n\nexport const useHeaderContext = () => {\n const { type } = useContext(HeaderContext);\n return type;\n};\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAoE,sBACpEC,EAAuB,2BACvBC,EAA8B,sBCF9B,IAAAC,EAA0C,iBAE7BC,EAAO,OAEb,IAAMC,EAAS,SAETC,KAAgC,iBAE1C,CAAC,CAAC,EAEQC,EAAmB,IAAM,CACpC,GAAM,CAAE,KAAAC,CAAK,KAAI,cAAWF,CAAa,EACzC,OAAOE,CACT,EDQA,IAAMC,EAAS,SAEFC,EAAgB,CAAC,CAAE,UAAAC,EAAW,IAAAC,EAAK,KAAAC,EAAM,OAAAC,EAAS,GAAO,OAAAC,EAAQ,GAAGC,CAAW,IAA0B,CACpH,IAAMC,EAAaC,EAAiB,EAC9BC,EAAaF,IAAeG,EAAO,IAAMX,EACzCY,EAAcJ,IAAeG,EAAO,OAAYX,EAChDa,KAAU,EAAAC,SACd,CACE,sBAAuBN,IAAeG,EACtC,wBAAyBH,IAAeO,CAC1C,EACAb,CACF,EACMc,EAAWX,EAAS,OAAS,QACnC,sBAAU,IAAM,CACd,SAAS,iBAAiB,kBAAkB,EAAE,QAASY,GAAY,CACjEA,EAAQ,UAAU,OAAO,iBAAiB,CAC5C,CAAC,CACH,CAAC,EAEC,EAAAC,QAAA,cAAC,iBACC,UAAWL,EACV,GAAGN,EACJ,IAAKJ,GAAOO,EACZ,KAAMN,GAAQQ,EACd,cAAaN,EACb,gBAAeU,EACjB,CAEJ","names":["HeaderToggler_exports","__export","HeaderToggler","__toCommonJS","import_react","import_classnames","import_reactstrap","import_react","SLIM","NAVBAR","HeaderContext","useHeaderContext","type","BUTTON","HeaderToggler","className","tag","type","isOpen","testId","attributes","HeaderType","useHeaderContext","defaultTag","SLIM","defaultType","classes","classNames","NAVBAR","expanded","element","React"]}