{"version":3,"sources":["actions/ring.ts","config/config.ts","components/Header.tsx","components/StatusTable.tsx","components/PageHeader.tsx","pages/MainPage.tsx","actions/info.ts","components/Navigation.tsx","components/Footer.tsx","pages/IncidentsPage.tsx","pages/App.tsx","reportWebVitals.ts","index.tsx"],"names":["AnalyticsActions","MAIN_URL","INFO_URL","DETAILS_URL","Header","Pane","display","padding","majorScale","background","elevation","flex","alignItems","Heading","size","Popover","position","Position","BOTTOM_LEFT","content","Menu","Item","icon","PeopleIcon","href","target","rel","Avatar","isSolid","name","style","cursor","renderRow","data","Table","Row","intent","status","TextCell","moment","onStateFrom","fromNow","Badge","color","id","renderHeader","Head","height","TextHeaderCell","textProps","StatusTable","marginLeft","marginRight","borderRadius","marginBottom","Body","map","PageHeader","props","flexWrap","marginTop","justifyContent","minHeight","text","children","MainPage","useState","isLoading","setIsLoading","setData","error","setError","refreshInterval","setRefreshInterval","getInfoCallback","fetch","then","result","json","undefined","catch","toaster","danger","finally","setTimeout","useEffect","interval","setInterval","clearInterval","Text","Select","width","onChange","event","value","Spinner","Navigation","pathname","useLocation","TabNavigation","tab","to","toLowerCase","Tab","isSelected","Footer","Link","src","alt","IncidentsPage","Alert","appearance","title","App","runBootstrap","collectorServiceUrl","services","saveAnalytics","analyticsRingClientServices","analyticService","action","STATUS_OPENED","save","flexDirection","exact","path","frameBorder","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","document","getElementById"],"mappings":"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","file":"static/js/main.0ec776c9.chunk.js","sourcesContent":["import { SaveAnalyticsService } from \"@analytics-ring/analytics-ring-collector-client\";\n\nexport enum AnalyticsActions {\n STATUS_OPENED = 'STATUS_OPENED',\n}\n\nexport const saveAnalytic = (analyticService: SaveAnalyticsService, action: AnalyticsActions) => {\n if (analyticService) {\n setTimeout(() => analyticService.save({\n action,\n }), 100);\n }\n};\n","export const isDevEnv = process.env.REACT_APP_STAGE === 'dev';\nexport const isTestEnv = process.env.REACT_APP_STAGE === 'test';\nexport const isProdEnv = process.env.REACT_APP_STAGE === 'prod';\nexport const envName = isDevEnv ? 'development' : isTestEnv ? 'testing' : isProdEnv ? 'production' : 'production';\n\nexport const RING_URL =\n isDevEnv ? 'https://dev-ringostar.jugru.team/' :\n isTestEnv ? 'https://test-ringostar.jugru.team/' :\n isProdEnv ? 'https://ringostar.jugru.team/' :\n \"https://dev-ringostar.jugru.team/\";\n\nexport const MAIN_URL =\n isDevEnv ? 'https://services-dev.jugru.team/online/incidents/status-backend' :\n isTestEnv ? 'https://services-test.jugru.team/online/incidents/status-backend' :\n isProdEnv ? 'https://services.jugru.team/online/incidents/status-backend' :\n \"\";\n\nexport const INFO_URL = `${MAIN_URL}/api/v1/healthchecks`;\nexport const DETAILS_URL = `${MAIN_URL}/health-checks-status#/healthchecks`;\nexport const LK_URL = \"https://my.jugru.org\";\n","import React from 'react';\nimport { Avatar, Heading, majorScale, Menu, Pane, PeopleIcon, Popover, Position } from \"evergreen-ui\";\nimport { LK_URL } from \"../config/config\";\n\nconst Header = () => {\n return (\n \n \n JugRuOrg Status\n \n \n \n \n \n Go to LK\n \n \n {/**/}\n {/* Login*/}\n {/**/}\n \n }\n >\n \n \n \n \n );\n};\n\nexport default Header;\n","import React, { FC } from 'react';\nimport { HealthCheckInfo } from \"../models/HealthCheckInfo\";\nimport { Badge, majorScale, Pane, Table } from \"evergreen-ui\";\nimport moment from \"moment\";\n\ninterface StatusTableProps {\n data: HealthCheckInfo[];\n}\n\nconst renderRow = (data: HealthCheckInfo) => {\n if (!data) return null;\n return (\n \n \n {data.name}\n \n \n {moment(data.onStateFrom, \"YYYYMMDD\").fromNow()}\n \n \n {\n data.status === 'Healthy' ? {data.status} :\n data.status === 'Unhealthy' ? {data.status} :\n data.status === 'Degraded' ? {data.status} :\n Unknow\n }\n \n \n )\n}\n\nconst renderHeader = (\n \n Service Name \n Healthy Time\n Status\n \n )\n;\n\nconst StatusTable: FC = ({ data }) => {\n return (\n \n \n {renderHeader}\n \n {data.map(renderRow)}\n \n
\n \n );\n};\n\nexport default StatusTable;\n","import React, { FC } from 'react';\nimport { Heading, majorScale, Pane } from \"evergreen-ui\";\n\ninterface PageHeaderProps {\n text: string;\n}\n\nconst PageHeader: FC = (props) => {\n return (\n \n \n {props.text}\n \n {props.children}\n \n );\n};\n\nexport default PageHeader;\n","import React, { useEffect, useState } from 'react';\nimport { Badge, Heading, majorScale, Pane, Select, Spinner, Text, toaster } from \"evergreen-ui\";\nimport { HealthCheckInfo } from \"../models/HealthCheckInfo\";\nimport { getInfo } from \"../actions/info\";\nimport StatusTable from \"../components/StatusTable\";\nimport PageHeader from \"../components/PageHeader\";\n\nconst MainPage = () => {\n const [ isLoading, setIsLoading ] = useState(true);\n const [ data, setData ] = useState();\n const [ error, setError ] = useState();\n const [ refreshInterval, setRefreshInterval ] = useState(0);\n\n const getInfoCallback = () => {\n setIsLoading(true);\n getInfo()\n .then(data => {\n setData(data);\n setError(undefined);\n })\n .catch(error => {\n setError(error);\n setData(undefined);\n toaster.danger(\n 'Something went wrong. Try to refresh page.'\n )\n })\n .finally(() => setTimeout(() => setIsLoading(false), 300));\n }\n\n const onIntervalBoxChange = (interval: string) => {\n if (interval === 'off') {\n setRefreshInterval(0);\n } else {\n const value: number = +interval * 1000;\n setRefreshInterval(value);\n }\n }\n\n useEffect(() => {\n let interval: any;\n if (refreshInterval > 0) {\n interval = setInterval(getInfoCallback, refreshInterval);\n }\n return () => clearInterval(interval);\n }, [ refreshInterval ]);\n\n useEffect(() => {\n getInfoCallback();\n }, [])\n\n return (\n \n \n \n Auto refresh\n onIntervalBoxChange(event.target.value)}>\n \n \n \n \n \n \n \n \n {\n isLoading &&\n \n \n \n }\n {\n !isLoading && data && \n }\n {\n !isLoading && error &&\n \n \n Error with fetch info\n \n \n 500\n \n \n }\n \n );\n};\n\nexport default MainPage;\n","import { INFO_URL } from \"../config/config\";\nimport { HealthCheckInfo } from \"../models/HealthCheckInfo\";\n\nexport const getInfo = () => {\n return fetch(INFO_URL).then(result => result.json()).then(result => result as HealthCheckInfo[] || []);\n};\n","import React, { FC } from 'react';\nimport { majorScale, Pane, Tab, TabNavigation } from \"evergreen-ui\";\nimport { Link, useLocation } from 'react-router-dom';\n\ninterface NavigationProps {\n}\n\nconst Navigation: FC = () => {\n const { pathname } = useLocation();\n\n return (\n \n \n {[ 'Status', 'Details', 'Incidents' ].map((tab) => (\n \n \n {tab}\n \n \n ))}\n \n \n );\n};\n\nexport default Navigation;\n","import React from 'react';\nimport { Link, majorScale, Pane } from \"evergreen-ui\";\n\nconst Footer = () => {\n return (\n \n \n \n \"logo\"\n \n \n \n );\n};\n\nexport default Footer;\n","import React from 'react';\nimport { Alert, Pane } from \"evergreen-ui\";\nimport PageHeader from \"../components/PageHeader\";\n\nconst IncidentsPage = () => {\n return (\n \n \n \n \n );\n};\n\nexport default IncidentsPage;\n","import React, { useEffect, useState } from 'react';\nimport Header from \"../components/Header\";\nimport MainPage from \"./MainPage\";\nimport Navigation from \"../components/Navigation\";\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\nimport { majorScale, Pane } from \"evergreen-ui\";\nimport { DETAILS_URL, RING_URL } from \"../config/config\";\nimport { runBootstrap, SaveAnalyticsService } from \"@analytics-ring/analytics-ring-collector-client\";\nimport { AnalyticsActions, saveAnalytic } from \"../actions/ring\";\nimport Footer from \"../components/Footer\";\nimport IncidentsPage from \"./IncidentsPage\";\n\nconst App = () => {\n const [ analyticsRingClientServices ] = useState(() => {\n const { saveAnalytics: saveAnalyticsService } = runBootstrap({\n collectorServiceUrl: RING_URL,\n }).services;\n\n return saveAnalyticsService;\n });\n\n useEffect(() => {\n saveAnalytic(analyticsRingClientServices, AnalyticsActions.STATUS_OPENED);\n }, [ analyticsRingClientServices ]);\n\n return (\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n