import {Fragment} from 'react'; import {RouteComponentProps} from 'react-router'; import styled from '@emotion/styled'; import ListLink from 'sentry/components/links/listLink'; import NavTabs from 'sentry/components/navTabs'; import Panel from 'sentry/components/panels/panel'; import PanelBody from 'sentry/components/panels/panelBody'; import PanelHeader from 'sentry/components/panels/panelHeader'; import {t} from 'sentry/locale'; import {InternetProtocol} from 'sentry/types'; import recreateRoute from 'sentry/utils/recreateRoute'; import DeprecatedAsyncView from 'sentry/views/deprecatedAsyncView'; import SettingsPageHeader from 'sentry/views/settings/components/settingsPageHeader'; import SessionRow from './sessionRow'; import {tableLayout} from './utils'; type Props = RouteComponentProps<{}, {}>; type State = { ipList: Array | null; } & DeprecatedAsyncView['state']; class SessionHistory extends DeprecatedAsyncView { getTitle() { return t('Session History'); } getEndpoints(): ReturnType { return [['ipList', '/users/me/ips/']]; } renderBody() { const {ipList} = this.state; if (!ipList) { return null; } const {routes, params, location} = this.props; const recreateRouteProps = {routes, params, location}; return ( {t('Settings')} {t('Session History')} } />
{t('Sessions')}
{t('First Seen')}
{t('Last Seen')}
{ipList.map(({id, ...ipObj}) => ( ))}
); } } export default SessionHistory; const SessionPanelHeader = styled(PanelHeader)` ${tableLayout} justify-content: initial; `;