{"version":3,"file":"Header.mjs","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../../utils';\n\nimport type { Folder } from '../../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n  children: {\n    count: number;\n  };\n  files: {\n    count: number;\n  };\n  parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n  breadcrumbs?: Array<CrumbDefinition> | null;\n  canCreate: boolean;\n  folder?: FolderDefinition | null;\n  onToggleEditFolderDialog: ({ created }?: { created?: boolean }) => void;\n  onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n  breadcrumbs = null,\n  canCreate,\n  folder = null,\n  onToggleEditFolderDialog,\n  onToggleUploadAssetDialog,\n}: HeaderProps) => {\n  const { formatMessage } = useIntl();\n  const { pathname } = useLocation();\n  const [{ query }] = useQueryParams();\n  const backQuery = {\n    ...query,\n    folder:\n      folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n        ? folder.parent.id\n        : undefined,\n    folderPath:\n      folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n        ? folder.parent.path\n        : undefined,\n  };\n\n  return (\n    <Layouts.Header\n      title={formatMessage({\n        id: getTrad('plugin.name'),\n        defaultMessage: `Media Library`,\n      })}\n      subtitle={\n        breadcrumbs &&\n        typeof breadcrumbs !== 'boolean' &&\n        folder && (\n          <Breadcrumbs\n            label={formatMessage({\n              id: getTrad('header.breadcrumbs.nav.label'),\n              defaultMessage: 'Folders navigation',\n            })}\n            breadcrumbs={breadcrumbs}\n            currentFolderId={folder?.id}\n          />\n        )\n      }\n      navigationAction={\n        folder && (\n          <Link\n            tag={NavLink}\n            startIcon={<ArrowLeft />}\n            to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n          >\n            {formatMessage({\n              id: getTrad('header.actions.folder-level-up'),\n              defaultMessage: 'Back',\n            })}\n          </Link>\n        )\n      }\n      primaryAction={\n        canCreate && (\n          <Flex gap={2}>\n            <Button startIcon={<Plus />} variant=\"secondary\" onClick={onToggleEditFolderDialog}>\n              {formatMessage({\n                id: getTrad('header.actions.add-folder'),\n                defaultMessage: 'Add new folder',\n              })}\n            </Button>\n\n            <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog}>\n              {formatMessage({\n                id: getTrad('header.actions.add-assets'),\n                defaultMessage: 'Add new assets',\n              })}\n            </Button>\n          </Flex>\n        )\n      }\n    />\n  );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","Button","Plus","variant","onClick"],"mappings":";;;;;;;;;;;;;;AA+BaA,MAAAA,MAAAA,GAAS,CAAC,EACrBC,cAAc,IAAI,EAClBC,SAAS,EACTC,SAAS,IAAI,EACbC,wBAAwB,EACxBC,yBAAyB,EACb,GAAA;IACZ,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;AACrB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AACpB,IAAA,MAAMC,SAAY,GAAA;AAChB,QAAA,GAAGF,KAAK;AACRP,QAAAA,MAAAA,EACEA,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACC,EAAE,GACnEX,MAAAA,CAAOU,MAAM,CAACC,EAAE,GAChBC,SAAAA;AACNC,QAAAA,UAAAA,EACEb,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACI,IAAI,GACrEd,MAAAA,CAAOU,MAAM,CAACI,IAAI,GAClBF;AACR,KAAA;IAEA,qBACEG,GAAA,CAACC,QAAQnB,MAAM,EAAA;AACboB,QAAAA,KAAAA,EAAOd,aAAc,CAAA;AACnBQ,YAAAA,EAAAA,EAAIO,OAAQ,CAAA,aAAA,CAAA;YACZC,cAAgB,EAAA,CAAC,aAAa;AAChC,SAAA,CAAA;AACAC,QAAAA,QAAAA,EACEtB,WACA,IAAA,OAAOA,WAAgB,KAAA,SAAA,IACvBE,wBACEe,GAACM,CAAAA,WAAAA,EAAAA;AACCC,YAAAA,KAAAA,EAAOnB,aAAc,CAAA;AACnBQ,gBAAAA,EAAAA,EAAIO,OAAQ,CAAA,8BAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACArB,WAAaA,EAAAA,WAAAA;AACbyB,YAAAA,eAAAA,EAAiBvB,MAAQW,EAAAA;;AAI/Ba,QAAAA,gBAAAA,EACExB,wBACEe,GAACU,CAAAA,IAAAA,EAAAA;YACCC,GAAKC,EAAAA,OAAAA;AACLC,YAAAA,SAAAA,gBAAWb,GAACc,CAAAA,SAAAA,EAAAA,EAAAA,CAAAA;AACZC,YAAAA,EAAAA,EAAI,CAAGzB,EAAAA,QAAAA,CAAS,CAAC,EAAE0B,UAAUtB,SAAW,EAAA;gBAAEuB,MAAQ,EAAA;aAAU,CAAA,CAAA,CAAA;sBAE3D7B,aAAc,CAAA;AACbQ,gBAAAA,EAAAA,EAAIO,OAAQ,CAAA,gCAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA;;AAINc,QAAAA,aAAAA,EACElC,2BACEmC,IAACC,CAAAA,IAAAA,EAAAA;YAAKC,GAAK,EAAA,CAAA;;8BACTrB,GAACsB,CAAAA,MAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,GAACuB,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASC,OAAQ,EAAA,WAAA;oBAAYC,OAASvC,EAAAA,wBAAAA;8BACvDE,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,OAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;8BAGFJ,GAACsB,CAAAA,MAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,GAACuB,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASE,OAAStC,EAAAA,yBAAAA;8BACnCC,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,OAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;;;;AAOd;;;;"}