/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import React from "react"; import { Renderer, Common } from "@k8slens/extensions"; type Pod = Renderer.K8sApi.Pod; type IPodContainer = Renderer.K8sApi.IPodContainer; const { Component: { logTabStore, MenuItem, Icon, SubMenu, StatusBrick, }, Navigation, } = Renderer; const { Util, } = Common; export interface PodLogsMenuProps extends Renderer.Component.KubeObjectMenuProps { } export class PodLogsMenu extends React.Component { showLogs(container: IPodContainer) { Navigation.hideDetails(); const pod = this.props.object; logTabStore.createPodTab({ selectedPod: pod, selectedContainer: container, }); } render() { const { object: pod, toolbar } = this.props; const containers = pod.getAllContainers(); const statuses = pod.getContainerStatuses(); if (!containers.length) return null; return ( this.showLogs(containers[0]))}> Logs {containers.length > 1 && ( <> { containers.map(container => { const { name } = container; const status = statuses.find(status => status.name === name); const brick = status ? ( ) : null; return ( this.showLogs(container))} className="flex align-center" > {brick} {name} ); }) } )} ); } }