customerPolicies.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import moment from 'moment-timezone';
  2. import ExternalLink from 'sentry/components/links/externalLink';
  3. import ResultGrid from 'admin/components/resultGrid';
  4. const getRow = (row: any) => [
  5. <td key="name">
  6. <ExternalLink href={row.url}>
  7. {row.name} {' — '} {row.version}
  8. </ExternalLink>
  9. </td>,
  10. <td key="user" style={{textAlign: 'center'}}>
  11. {!!row.consent && (row.consent.userEmail || row.consent.userName)}
  12. </td>,
  13. <td key="when" style={{textAlign: 'right'}}>
  14. {!!row.consent && moment(row.consent.createdAt).fromNow()}
  15. </td>,
  16. ];
  17. function CustomerPolicies({orgId}: any) {
  18. return (
  19. <ResultGrid
  20. inPanel
  21. panelTitle="Policies and Consent"
  22. path={`/_admin/customers/${orgId}/`}
  23. endpoint={`/customers/${orgId}/policies/`}
  24. method="GET"
  25. defaultParams={{per_page: 10}}
  26. useQueryString={false}
  27. columns={[
  28. <th key="name">Policy</th>,
  29. <th key="user" style={{width: 150, textAlign: 'center'}}>
  30. User
  31. </th>,
  32. <th key="when" style={{width: 150, textAlign: 'right'}}>
  33. When
  34. </th>,
  35. ]}
  36. keyForRow={row => row.slug}
  37. rowsFromData={data => Object.values(data)}
  38. columnsForRow={getRow}
  39. />
  40. );
  41. }
  42. export default CustomerPolicies;