diff --git a/x-pack/plugins/uptime/public/components/certificates/__tests__/__snapshots__/cert_status.test.tsx.snap b/x-pack/plugins/uptime/public/components/certificates/__tests__/__snapshots__/cert_status.test.tsx.snap
index 089d272a075c6..f6a4b4598fe63 100644
--- a/x-pack/plugins/uptime/public/components/certificates/__tests__/__snapshots__/cert_status.test.tsx.snap
+++ b/x-pack/plugins/uptime/public/components/certificates/__tests__/__snapshots__/cert_status.test.tsx.snap
@@ -1,6 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`CertStatus renders expected elements for valid props 1`] = `
+.c0 {
+ display: inline-block;
+ margin-left: 5px;
+}
+
@@ -19,7 +24,16 @@ exports[`CertStatus renders expected elements for valid props 1`] = `
class="euiFlexItem euiFlexItem--flexGrowZero"
>
- OK
+ OK
+
diff --git a/x-pack/plugins/uptime/public/components/certificates/cert_status.tsx b/x-pack/plugins/uptime/public/components/certificates/cert_status.tsx
index e7a86ce98fa3c..ea0a49a4a6c5b 100644
--- a/x-pack/plugins/uptime/public/components/certificates/cert_status.tsx
+++ b/x-pack/plugins/uptime/public/components/certificates/cert_status.tsx
@@ -5,45 +5,95 @@
*/
import React from 'react';
-import { EuiHealth } from '@elastic/eui';
+import moment from 'moment';
+import styled from 'styled-components';
+import { EuiHealth, EuiText } from '@elastic/eui';
+import { FormattedMessage } from '@kbn/i18n/react';
+import { useSelector } from 'react-redux';
import { Cert } from '../../../common/runtime_types';
import { useCertStatus } from '../../hooks';
import * as labels from './translations';
import { CERT_STATUS } from '../../../common/constants';
+import { selectDynamicSettings } from '../../state/selectors';
interface Props {
cert: Cert;
}
+const DateText = styled(EuiText)`
+ display: inline-block;
+ margin-left: 5px;
+`;
+
export const CertStatus: React.FC = ({ cert }) => {
const certStatus = useCertStatus(cert?.not_after, cert?.not_before);
+ const dss = useSelector(selectDynamicSettings);
+
+ const relativeDate = moment(cert?.not_after).fromNow();
+
if (certStatus === CERT_STATUS.EXPIRING_SOON) {
return (
- {labels.EXPIRES_SOON}
+
+ {labels.EXPIRES_SOON}
+ {' '}
+
+ {relativeDate}
+
+
);
}
if (certStatus === CERT_STATUS.EXPIRED) {
return (
- {labels.EXPIRED}
+
+ {labels.EXPIRED}
+ {' '}
+
+ {relativeDate}
+
+
);
}
if (certStatus === CERT_STATUS.TOO_OLD) {
+ const ageThreshold = dss.settings?.certAgeThreshold;
+
+ const oldRelativeDate = moment(cert?.not_before).add(ageThreshold, 'days').fromNow();
+
return (
- {labels.TOO_OLD}
+
+ {labels.TOO_OLD}
+
+ {oldRelativeDate}
+
+
);
}
+ const okRelativeDate = moment(cert?.not_after).fromNow(true);
+
return (
- {labels.OK}
+
+ {labels.OK}
+ {' '}
+
+
+
+
);
};