{"version":3,"file":"Widgets.mjs","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import { Widget, useTracking } from '@strapi/admin/strapi-admin';\nimport { DocumentStatus, RelativeTime } from '@strapi/content-manager/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { StageColumn } from '../routes/content-manager/model/components/TableColumns';\nimport { useGetRecentlyAssignedDocumentsQuery } from '../services/content-manager';\n\nimport type { RecentDocument } from '../../../shared/contracts/homepage';\n\nconst CellTypography = styled(Typography)`\n  display: block;\n  max-width: 14.4rem;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n`;\n\nconst RecentDocumentsTable = ({\n  documents,\n  type,\n}: {\n  documents: RecentDocument[];\n  type: 'assigned';\n}) => {\n  const { formatMessage } = useIntl();\n  const { trackUsage } = useTracking();\n  const navigate = useNavigate();\n\n  const getEditViewLink = (document: RecentDocument): string => {\n    const isSingleType = document.kind === 'singleType';\n    const kindPath = isSingleType ? 'single-types' : 'collection-types';\n    const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';\n\n    return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;\n  };\n\n  const handleRowClick = (document: RecentDocument) => () => {\n    trackUsage('willEditEntryFromHome', { entryType: type });\n    const link = getEditViewLink(document);\n    navigate(link);\n  };\n\n  return (\n    <Table colCount={6} rowCount={documents?.length ?? 0}>\n      <Tbody>\n        {documents?.map((document) => (\n          <Tr onClick={handleRowClick(document)} cursor=\"pointer\" key={document.documentId}>\n            <Td>\n              <CellTypography title={document.title} variant=\"omega\" textColor=\"neutral800\">\n                {document.title}\n              </CellTypography>\n            </Td>\n            <Td>\n              <CellTypography variant=\"omega\" textColor=\"neutral600\">\n                {document.kind === 'singleType'\n                  ? formatMessage({\n                      id: 'content-manager.widget.last-edited.single-type',\n                      defaultMessage: 'Single-Type',\n                    })\n                  : formatMessage({\n                      id: document.contentTypeDisplayName,\n                      defaultMessage: document.contentTypeDisplayName,\n                    })}\n              </CellTypography>\n            </Td>\n            <Td>\n              <Box display=\"inline-block\">\n                {document.status ? (\n                  <DocumentStatus status={document.status} />\n                ) : (\n                  <Typography textColor=\"neutral600\" aria-hidden>\n                    -\n                  </Typography>\n                )}\n              </Box>\n            </Td>\n            <Td>\n              <Typography textColor=\"neutral600\">\n                <RelativeTime timestamp={new Date(document.updatedAt)} />\n              </Typography>\n            </Td>\n            <Td>\n              <StageColumn strapi_stage={document.strapi_stage} />\n            </Td>\n            <Td onClick={(e) => e.stopPropagation()}>\n              <Box display=\"inline-block\">\n                <IconButton\n                  tag={Link}\n                  to={getEditViewLink(document)}\n                  onClick={() => trackUsage('willEditEntryFromHome', { entryType: type })}\n                  label={formatMessage({\n                    id: 'content-manager.actions.edit.label',\n                    defaultMessage: 'Edit',\n                  })}\n                  variant=\"ghost\"\n                >\n                  <Pencil />\n                </IconButton>\n              </Box>\n            </Td>\n          </Tr>\n        ))}\n      </Tbody>\n    </Table>\n  );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AssignedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst AssignedWidget = () => {\n  const { formatMessage } = useIntl();\n  const { data, isLoading, error } = useGetRecentlyAssignedDocumentsQuery();\n\n  if (isLoading) {\n    return <Widget.Loading />;\n  }\n\n  if (error || !data) {\n    return <Widget.Error />;\n  }\n\n  if (data.length === 0) {\n    return (\n      <Widget.NoData>\n        {formatMessage({\n          id: 'review-workflows.widget.assigned.no-data',\n          defaultMessage: 'No entries',\n        })}\n      </Widget.NoData>\n    );\n  }\n\n  return <RecentDocumentsTable documents={data} type=\"assigned\" />;\n};\n\nexport { AssignedWidget };\n"],"names":["CellTypography","styled","Typography","RecentDocumentsTable","documents","type","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","document","isSingleType","kind","kindPath","queryParams","locale","contentTypeUid","documentId","handleRowClick","entryType","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","variant","textColor","id","defaultMessage","contentTypeDisplayName","Box","display","status","DocumentStatus","aria-hidden","RelativeTime","timestamp","Date","updatedAt","StageColumn","strapi_stage","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","AssignedWidget","data","isLoading","error","useGetRecentlyAssignedDocumentsQuery","Widget","Loading","Error","NoData"],"mappings":"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"}