import { useContext } from 'react'; import { Link, useParams } from 'react-router-dom'; import { Grid, List, ListItem, ListItemAvatar, ListItemText, Typography, } from '@material-ui/core'; import { Extension, FlagRounded, Report, SvgIconComponent, Timeline, } from '@material-ui/icons'; import { CREATE_FEATURE, CREATE_STRATEGY, } from '../../providers/AccessProvider/permissions'; import ConditionallyRender from '../../common/ConditionallyRender/ConditionallyRender'; import { getTogglePath } from '../../../utils/route-path-helpers'; import useApplication from '../../../hooks/api/getters/useApplication/useApplication'; import AccessContext from '../../../contexts/AccessContext'; import { formatDateYMDHMS } from '../../../utils/format-date'; import { useLocationSettings } from '../../../hooks/useLocationSettings'; export const ApplicationView = () => { const { hasAccess } = useContext(AccessContext); const { name } = useParams<{ name: string }>(); const { application } = useApplication(name); const { locationSettings } = useLocationSettings(); const { instances, strategies, seenToggles } = application; const notFoundListItem = ({ createUrl, name, permission, }: { createUrl: string; name: string; permission: string; }) => ( {name}} secondary={'Missing, want to create?'} /> } elseShow={ } /> ); const foundListItem = ({ viewUrl, name, description, Icon, i, }: { viewUrl: string; name: string; description: string; Icon: SvgIconComponent; i: number; }) => ( {name} } secondary={description} /> ); return ( Toggles
{seenToggles.map( ({ name, description, notFound, project }, i) => ( ) )}
Implemented strategies
{strategies.map( ({ name, description, notFound }, i: number) => ( ) )}
{instances.length} Instances registered
{instances.map( ({ instanceId, clientIp, lastSeen, sdkVersion, }: { instanceId: string; clientIp: string; lastSeen: string; sdkVersion: string; }) => ( {instanceId} {sdkVersion} } elseShow={{instanceId}} /> } secondary={ {clientIp} last seen at{' '} {formatDateYMDHMS( lastSeen, locationSettings.locale )} } /> ) )}
); };