{"version":3,"file":"components/base/DiffViewer/useDiffDrawer.mjs","sources":["../../../../src/components/base/DiffViewer/useDiffDrawer.tsx"],"sourcesContent":["import { Drawer, Empty } from 'antd';\nimport { useState } from 'react';\nimport { DiffViewer } from '.';\nimport { DiffViewerProps } from './interface';\n\nconst defaultEmptyReason = 'No diff code';\n\n/**\n * Use drawer to display code diff content\n * @param emptyReason Text to display when there is no code content\n */\nexport function useDiffDrawer(emptyReason?: string) {\n  const [original, setOriginal] = useState('');\n  const [modified, setModified] = useState('');\n  const [originalFilePath, setOriginalFilePath] = useState('');\n  const [modifiedFilePath, setModifiedFilePath] = useState('');\n  const [originalLang, setOriginalLang] = useState('');\n  const [modifiedLang, setModifiedLang] = useState('');\n  const [visible, setVisible] = useState(false);\n\n  const codeDiffDrawerComponent = (\n    <Drawer\n      maskClosable\n      zIndex={999}\n      width={'70%'}\n      destroyOnClose\n      title={`Code Diff`}\n      open={visible}\n      onClose={() => setVisible(false)}\n    >\n      {original || modified ? (\n        <DiffViewer\n          original={original}\n          modified={modified}\n          originalLang={originalLang}\n          modifiedLang={modifiedLang}\n          originalFilePath={originalFilePath}\n          modifiedFilePath={modifiedFilePath}\n        />\n      ) : (\n        <Empty description={emptyReason || defaultEmptyReason} />\n      )}\n    </Drawer>\n  );\n\n  return {\n    showCodeDiff(\n      diffConfig: Pick<\n        DiffViewerProps,\n        | 'original'\n        | 'modified'\n        | 'originalFilePath'\n        | 'modifiedFilePath'\n        | 'originalLang'\n        | 'modifiedLang'\n      >,\n    ) {\n      setOriginal(diffConfig.original);\n      setModified(diffConfig.modified);\n      setOriginalLang(diffConfig.originalLang || '');\n      setModifiedLang(diffConfig.modifiedLang || '');\n      setOriginalFilePath(diffConfig.originalFilePath || '');\n      setModifiedFilePath(diffConfig.modifiedFilePath || '');\n      setVisible(true);\n    },\n    codeDiffDrawerComponent,\n  };\n}\n"],"names":["defaultEmptyReason","useDiffDrawer","emptyReason","original","setOriginal","useState","modified","setModified","originalFilePath","setOriginalFilePath","modifiedFilePath","setModifiedFilePath","originalLang","setOriginalLang","modifiedLang","setModifiedLang","visible","setVisible","codeDiffDrawerComponent","Drawer","DiffViewer","Empty","diffConfig"],"mappings":";;;;AAKA,MAAMA,qBAAqB;AAMpB,SAASC,cAAcC,WAAoB;IAChD,MAAM,CAACC,UAAUC,YAAY,GAAGC,SAAS;IACzC,MAAM,CAACC,UAAUC,YAAY,GAAGF,SAAS;IACzC,MAAM,CAACG,kBAAkBC,oBAAoB,GAAGJ,SAAS;IACzD,MAAM,CAACK,kBAAkBC,oBAAoB,GAAGN,SAAS;IACzD,MAAM,CAACO,cAAcC,gBAAgB,GAAGR,SAAS;IACjD,MAAM,CAACS,cAAcC,gBAAgB,GAAGV,SAAS;IACjD,MAAM,CAACW,SAASC,WAAW,GAAGZ,SAAS;IAEvC,MAAMa,0BAA0B,WAA1BA,GACJ,IAACC,QAAMA;QACL,cAAY;QACZ,QAAQ;QACR,OAAO;QACP,gBAAc;QACd,OAAO;QACP,MAAMH;QACN,SAAS,IAAMC,WAAW;kBAEzBd,YAAYG,WAAW,WAAXA,GACX,IAACc,YAAUA;YACT,UAAUjB;YACV,UAAUG;YACV,cAAcM;YACd,cAAcE;YACd,kBAAkBN;YAClB,kBAAkBE;2BAGpB,IAACW,OAAKA;YAAC,aAAanB,eAAeF;;;IAKzC,OAAO;QACL,cACEsB,UAQC;YAEDlB,YAAYkB,WAAW,QAAQ;YAC/Bf,YAAYe,WAAW,QAAQ;YAC/BT,gBAAgBS,WAAW,YAAY,IAAI;YAC3CP,gBAAgBO,WAAW,YAAY,IAAI;YAC3Cb,oBAAoBa,WAAW,gBAAgB,IAAI;YACnDX,oBAAoBW,WAAW,gBAAgB,IAAI;YACnDL,WAAW;QACb;QACAC;IACF;AACF"}