{"version":3,"file":"Widgets.mjs","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Badge, 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 { Release } from '../../../shared/contracts/releases';\nimport { getBadgeProps } from '../pages/ReleasesPage';\nimport { useGetUpcomingReleasesQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\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 ReleasesTable = ({ items }: { items: Release[] }) => {\n  const { formatMessage } = useIntl();\n  const { trackUsage } = useTracking();\n  const navigate = useNavigate();\n\n  const getEditViewLink = (item: Release): string => {\n    return `/plugins/content-releases/${item.id}`;\n  };\n\n  const handleRowClick = (item: Release) => () => {\n    trackUsage('willEditReleaseFromHome');\n    const link = getEditViewLink(item);\n    navigate(link);\n  };\n\n  return (\n    <Table colCount={4} rowCount={items?.length ?? 0}>\n      <Tbody>\n        {items?.map((item) => (\n          <Tr onClick={handleRowClick(item)} cursor=\"pointer\" key={item.documentId}>\n            <Td>\n              <CellTypography title={item.name} variant=\"omega\" textColor=\"neutral800\">\n                {item.name}\n              </CellTypography>\n            </Td>\n            <Td>\n              <Box display=\"inline-block\">\n                {item.status ? (\n                  <Badge {...getBadgeProps(item.status)}>{item.status}</Badge>\n                ) : (\n                  <Typography textColor=\"neutral600\" aria-hidden>\n                    -\n                  </Typography>\n                )}\n              </Box>\n            </Td>\n            <Td>\n              <Typography variant=\"omega\" textTransform=\"capitalize\" textColor=\"neutral600\">\n                {item.scheduledAt ? (\n                  <RelativeTime timestamp={new Date(item.scheduledAt)} />\n                ) : (\n                  formatMessage({\n                    id: 'content-releases.pages.Releases.not-scheduled',\n                    defaultMessage: 'Not scheduled',\n                  })\n                )}\n              </Typography>\n            </Td>\n            <Td onClick={(e) => e.stopPropagation()}>\n              <Box display=\"inline-block\">\n                <IconButton\n                  tag={Link}\n                  to={getEditViewLink(item)}\n                  onClick={() => trackUsage('willEditReleaseFromHome')}\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 * Upcoming Releases\n * -----------------------------------------------------------------------------------------------*/\n\nconst UpcomingReleasesWidget = () => {\n  const { formatMessage } = useIntl();\n  const { data, isLoading, error } = useGetUpcomingReleasesQuery();\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: 'content-releases.widget.upcoming-releases.no-data',\n          defaultMessage: 'No releases',\n        })}\n      </Widget.NoData>\n    );\n  }\n\n  return <ReleasesTable items={data} />;\n};\n\nexport { UpcomingReleasesWidget };\n"],"names":["CellTypography","styled","Typography","ReleasesTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","item","id","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","name","variant","textColor","Box","display","status","Badge","getBadgeProps","aria-hidden","textTransform","scheduledAt","RelativeTime","timestamp","Date","defaultMessage","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","documentId","UpcomingReleasesWidget","data","isLoading","error","useGetUpcomingReleasesQuery","Widget","Loading","Error","NoData"],"mappings":"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"}