diff --git a/frontend/src/components/Pages/RobotPage/Documentation.tsx b/frontend/src/components/Pages/RobotPage/Documentation.tsx new file mode 100644 index 000000000..47348a84c --- /dev/null +++ b/frontend/src/components/Pages/RobotPage/Documentation.tsx @@ -0,0 +1,34 @@ +import { Typography, Icon } from '@equinor/eds-core-react' +import { Icons } from 'utils/icons' +import { tokens } from '@equinor/eds-tokens' +import { useLanguageContext } from 'components/Contexts/LanguageContext' +import styled from 'styled-components' +import { DocumentInfo } from 'models/DocumentInfo' + +const DocumentStyle = styled.div` + display: flex; + gap: 1rem; + align-items: center; +` + +export const DocumentationSection = ({ documentation }: { documentation: DocumentInfo[] }) => { + const { TranslateText } = useLanguageContext() + + return ( + <> + {TranslateText('Documentation')} + {documentation.map((documentInfo, index) => ( + + + + {documentInfo.name} + + + ))} + + ) +} diff --git a/frontend/src/components/Pages/RobotPage/RobotPage.tsx b/frontend/src/components/Pages/RobotPage/RobotPage.tsx index cfb4ede8b..48e4f7796 100644 --- a/frontend/src/components/Pages/RobotPage/RobotPage.tsx +++ b/frontend/src/components/Pages/RobotPage/RobotPage.tsx @@ -18,6 +18,7 @@ import { StyledButton, StyledPage } from 'components/Styles/StyledComponents' import { AlertType, useAlertContext } from 'components/Contexts/AlertContext' import { FailedRequestAlertContent, FailedRequestAlertListContent } from 'components/Alerts/FailedRequestAlert' import { AlertCategory } from 'components/Alerts/AlertsBanner' +import { DocumentationSection } from './Documentation' const RobotArmMovementSection = styled.div` display: flex; @@ -155,6 +156,9 @@ export const RobotPage = () => { )} + {selectedRobot.documentation && selectedRobot.documentation.length > 0 && ( + + )} )} diff --git a/frontend/src/language/en.json b/frontend/src/language/en.json index 46291445f..52aeaf153 100644 --- a/frontend/src/language/en.json +++ b/frontend/src/language/en.json @@ -264,5 +264,6 @@ "Alerts": "Alerts", "No alerts": "No alerts", "minutes ago": "minutes ago", - "Failed to retrieve previous mission runs": "Failed to retrieve previous mission runs" + "Failed to retrieve previous mission runs": "Failed to retrieve previous mission runs", + "Documentation": "Documentation" } diff --git a/frontend/src/language/no.json b/frontend/src/language/no.json index c80bc341e..5cfbfa53e 100644 --- a/frontend/src/language/no.json +++ b/frontend/src/language/no.json @@ -264,5 +264,6 @@ "Alerts": "Varsler", "No alerts": "Ingen varsler", "minutes ago": "minutter siden", - "Failed to retrieve previous mission runs": "Kunne ikke hente tildigere oppdragskjøringer" + "Failed to retrieve previous mission runs": "Kunne ikke hente tildigere oppdragskjøringer", + "Documentation": "Dokumentasjon" } diff --git a/frontend/src/models/DocumentInfo.ts b/frontend/src/models/DocumentInfo.ts new file mode 100644 index 000000000..4f9173b09 --- /dev/null +++ b/frontend/src/models/DocumentInfo.ts @@ -0,0 +1,4 @@ +export interface DocumentInfo { + name: string + url: string +} diff --git a/frontend/src/models/Robot.ts b/frontend/src/models/Robot.ts index 2a28c15b2..e140842af 100644 --- a/frontend/src/models/Robot.ts +++ b/frontend/src/models/Robot.ts @@ -1,5 +1,6 @@ import { Area } from './Area' import { BatteryStatus } from './Battery' +import { DocumentInfo } from './DocumentInfo' import { Installation, placeholderInstallation } from './Installation' import { Pose } from './Pose' import { RobotModel, placeholderRobotModel } from './RobotModel' @@ -37,6 +38,7 @@ export interface Robot { host?: string logs?: string port?: number + documentation?: DocumentInfo[] videoStreams?: VideoStream[] isarUri?: string currentArea?: Area diff --git a/frontend/src/utils/icons.tsx b/frontend/src/utils/icons.tsx index 348272b70..91cdc3b60 100644 --- a/frontend/src/utils/icons.tsx +++ b/frontend/src/utils/icons.tsx @@ -42,6 +42,7 @@ import { info_circle, blocked, close_circle_outlined, + file_description, } from '@equinor/eds-icons' Icon.add({ @@ -87,6 +88,7 @@ Icon.add({ info_circle, blocked, close_circle_outlined, + file_description, }) export enum Icons { @@ -132,4 +134,5 @@ export enum Icons { Info = 'info_circle', Blocked = 'blocked', ClosedCircleOutlined = 'close_circle_outlined', + FileDescription = 'file_description', }