{"version":3,"file":"useFolderStructure.mjs","sources":["../../../admin/src/hooks/useFolderStructure.ts"],"sourcesContent":["import { useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\n\nimport { FolderNode, GetFolderStructure } from '../../../shared/contracts/folders';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\nimport { recursiveRenameKeys } from './utils/renameKeys';\n\nconst FIELD_MAPPING: Record<string, string> = {\n  name: 'label',\n  id: 'value',\n};\n\ninterface FolderNodeWithChildren extends Omit<FolderNode, 'children'> {\n  children: FolderNodeWithChildren[];\n  label?: string;\n  value: string | number | null;\n}\n\nexport const useFolderStructure = ({ enabled = true } = {}) => {\n  const { formatMessage } = useIntl();\n  const { get } = useFetchClient();\n\n  const fetchFolderStructure = async () => {\n    const {\n      data: { data },\n    } = await get<GetFolderStructure.Response['data']>('/upload/folder-structure');\n    const children = data.map((f: FolderNodeWithChildren) =>\n      recursiveRenameKeys(f, (key) => FIELD_MAPPING?.[key] ?? key)\n    );\n\n    return [\n      {\n        value: null,\n        label: formatMessage({\n          id: getTrad('form.input.label.folder-location-default-label'),\n          defaultMessage: 'Media Library',\n        }),\n        children,\n      },\n    ];\n  };\n\n  const { data, error, isLoading } = useQuery(\n    [pluginId, 'folder', 'structure'],\n    fetchFolderStructure,\n    {\n      enabled,\n      staleTime: 0,\n      cacheTime: 0,\n    }\n  );\n\n  return { data, error, isLoading };\n};\n"],"names":["FIELD_MAPPING","name","id","useFolderStructure","enabled","formatMessage","useIntl","get","useFetchClient","fetchFolderStructure","data","children","map","f","recursiveRenameKeys","key","value","label","getTrad","defaultMessage","error","isLoading","useQuery","pluginId","staleTime","cacheTime"],"mappings":";;;;;;;;;;;;AAUA,MAAMA,aAAAA,GAAwC;IAC5CC,IAAAA,EAAM,OAAA;IACNC,EAAAA,EAAI;AACN,CAAA;AAQO,MAAMC,qBAAqB,CAAC,EAAEC,UAAU,IAAI,EAAE,GAAG,EAAE,GAAA;IACxD,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,GAAG,EAAE,GAAGC,cAAAA,EAAAA;AAEhB,IAAA,MAAMC,oBAAAA,GAAuB,UAAA;QAC3B,MAAM,EACJC,MAAM,EAAEA,IAAI,EAAE,EACf,GAAG,MAAMH,GAAAA,CAAyC,0BAAA,CAAA;AACnD,QAAA,MAAMI,QAAAA,GAAWD,IAAAA,CAAKE,GAAG,CAAC,CAACC,CAAAA,GACzBC,mBAAAA,CAAoBD,CAAAA,EAAG,CAACE,GAAAA,GAAQf,aAAAA,GAAgBe,IAAI,IAAIA,GAAAA,CAAAA,CAAAA;QAG1D,OAAO;AACL,YAAA;gBACEC,KAAAA,EAAO,IAAA;AACPC,gBAAAA,KAAAA,EAAOZ,aAAAA,CAAc;AACnBH,oBAAAA,EAAAA,EAAIgB,OAAAA,CAAQ,gDAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAR,gBAAAA;AACF;AACD,SAAA;AACH,IAAA,CAAA;IAEA,MAAM,EAAED,IAAI,EAAEU,KAAK,EAAEC,SAAS,EAAE,GAAGC,QAAAA,CACjC;AAACC,QAAAA,QAAAA;AAAU,QAAA,QAAA;AAAU,QAAA;AAAY,KAAA,EACjCd,oBAAAA,EACA;AACEL,QAAAA,OAAAA;QACAoB,SAAAA,EAAW,CAAA;QACXC,SAAAA,EAAW;AACb,KAAA,CAAA;IAGF,OAAO;AAAEf,QAAAA,IAAAA;AAAMU,QAAAA,KAAAA;AAAOC,QAAAA;AAAU,KAAA;AAClC;;;;"}