diff --git a/frontend/src/component/feature/FeatureView2/EnvironmentMetricComponent/EnvironmentMetricComponent.style.ts b/frontend/src/component/feature/FeatureView2/EnvironmentMetricComponent/EnvironmentMetricComponent.style.ts new file mode 100644 index 0000000000..29ae6d3a66 --- /dev/null +++ b/frontend/src/component/feature/FeatureView2/EnvironmentMetricComponent/EnvironmentMetricComponent.style.ts @@ -0,0 +1,100 @@ +import { makeStyles } from '@material-ui/core/styles'; + +export const useStyles = makeStyles(theme => ({ + container: { + display: 'flex', + borderRadius: '10px', + backgroundColor: '#fff', + padding: '2rem 2rem 2rem 2rem', + marginBottom: '1rem', + flexDirection: 'column', + width: '50%', + position: 'relative' + }, + environmentContainer: { + display: 'flex', + marginBottom: '1rem', + width: '100%', + position: 'relative' + }, + environmentHeader: { + display: 'flex', + width: '100%', + fontSize: theme.fontSizes.subHeader, + fontWeight: 'bold' + }, + applicationHeader: { + display: 'flex', + width: '100%', + fontSize: theme.fontSizes.subHeader, + fontWeight: 'bold' + }, + applicationContainer: { + display: 'flex', + width: '100%', + position: 'relative', + marginBottom: '1rem' + }, + [theme.breakpoints.down(1000)]: { + container: { + width: '100%' + } + }, + headerContainer: { + display: 'flex', + width: '100%', + alignItems: 'center', + justifyContent: 'space-between' + }, + title: { + fontSize: theme.fontSizes.subHeader, + fontWeight: 'normal', + margin: 0 + }, + bodyContainer: { + display: 'flex', + align: 'items', + marginTop: '1rem', + height: '100%' + }, + trueCountContainer: { + marginBottom: '0.5rem', + display: 'flex', + alignItems: 'center' + }, + trueCount: { + width: '10px', + height: '10px', + borderRadius: '50%', + marginRight: '0.75rem', + backgroundColor: theme.palette.primary.main + }, + falseCount: { + width: '10px', + height: '10px', + borderRadius: '50%', + marginRight: '0.75rem', + backgroundColor: theme.palette.grey[300] + }, + paragraph: { + fontSize: theme.fontSizes.smallBody + }, + textContainer: { + marginRight: '1rem', + maxWidth: '150px' + }, + primaryMetric: { + width: '100%' + }, + icon: { + fill: theme.palette.grey[300], + height: '75px', + width: '75px' + }, + chartContainer: { + width: '100%', + display: 'flex', + justifyContent: 'center', + alignItems: 'center' + } +})); diff --git a/frontend/src/component/feature/FeatureView2/EnvironmentMetricComponent/EnvironmentMetricComponent.tsx b/frontend/src/component/feature/FeatureView2/EnvironmentMetricComponent/EnvironmentMetricComponent.tsx index 31846cfa24..ed3b4b1c29 100644 --- a/frontend/src/component/feature/FeatureView2/EnvironmentMetricComponent/EnvironmentMetricComponent.tsx +++ b/frontend/src/component/feature/FeatureView2/EnvironmentMetricComponent/EnvironmentMetricComponent.tsx @@ -5,18 +5,19 @@ import React from 'react'; import useFeature from '../../../../hooks/api/getters/useFeature/useFeature'; import FeatureEnvironmentMetrics from '../FeatureOverview/FeatureEnvironmentMetrics/FeatureEnvironmentMetrics'; import FeatureSeenApplications from '../FeatureSeenApplications/FeatureSeenApplications'; -import { Grid } from '@material-ui/core'; +import { useStyles } from './EnvironmentMetricComponent.style'; const emptyMetric = (environment: string) => ({ yes: 0, no: 0, environment, - timestamp: '', + timestamp: '' }); const EnvironmentMetricComponent: React.FC = () => { const { projectId, featureId } = useParams(); const { feature } = useFeature(projectId, featureId); const { metrics } = useFeatureMetrics(projectId, featureId); + const styles = useStyles(); const featureMetrics = feature?.environments.map(env => { const envMetric = metrics.lastHourUsage.find( @@ -27,26 +28,23 @@ const EnvironmentMetricComponent: React.FC = () => { const metricComponents = featureMetrics.map(metric => { return ( - - - ) - }) + + ); + }); + return ( <> - - -

{'Environments'}

-
-
+
Environments
+
{metricComponents} - - -

Applications

-
+
+
Applications
+
- +
- ); + ) + ; }; export default EnvironmentMetricComponent; diff --git a/frontend/src/component/feature/FeatureView2/FeatureSeenApplications/FeatureSeenApplications.tsx b/frontend/src/component/feature/FeatureView2/FeatureSeenApplications/FeatureSeenApplications.tsx index 505f6c76b2..ddd383ddf2 100644 --- a/frontend/src/component/feature/FeatureView2/FeatureSeenApplications/FeatureSeenApplications.tsx +++ b/frontend/src/component/feature/FeatureView2/FeatureSeenApplications/FeatureSeenApplications.tsx @@ -4,36 +4,42 @@ import { IFeatureViewParams } from '../../../../interfaces/params'; import { Grid } from '@material-ui/core'; import React from 'react'; import { useStyles } from './FeatureSeenApplications.styles'; +import ConditionallyRender from '../../../common/ConditionallyRender'; const FeatureSeenApplications: React.FC = () => { const { projectId, featureId } = useParams(); const { metrics } = useFeatureMetrics(projectId, featureId); - const styles = useStyles() - let seenApplications; - if (metrics?.seenApplications?.length > 0) { - seenApplications = metrics.seenApplications.map(appName => { - return ( + const styles = useStyles(); + const seenApplications = (seenApps: string[]) => { + return seenApps.map(appName => { + return ( {appName} - ) + ); }); - } else { - seenApplications = (
{'Not seen in any applications'}
); - } + }; + + const noApplications = ( +
{'Not seen in any applications'}
+
); + return (
- {seenApplications} + 0} + show={seenApplications(metrics.seenApplications)} + elseShow={noApplications} />
); -} +}; export default FeatureSeenApplications;