Skip to content

Commit

Permalink
hide upgradeable button when not upgradeable
Browse files Browse the repository at this point in the history
  • Loading branch information
neptunian committed Sep 29, 2020
1 parent c1a29ee commit 156e02f
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,20 @@
* you may not use this file except in compliance with the Elastic License.
*/
import semver from 'semver';
import { Agent } from '../types';

export function isAgentUpgradeable({
agentVersion,
kibanaVersion,
}: {
agentVersion: string;
kibanaVersion: string;
}) {
export function isAgentUpgradeable(agent: Agent, kibanaVersion: string) {
let agentVersion: string;
if (
typeof agent.local_metadata === 'object' &&
typeof agent.local_metadata.elastic === 'object' &&
typeof agent.local_metadata.elastic.agent === 'object' &&
typeof agent.local_metadata.elastic.agent.version === 'string'
) {
agentVersion = agent.local_metadata.elastic.agent.version;
} else {
return false;
}
const kibanaVersionParsed = semver.parse(kibanaVersion);
const agentVersionParsed = semver.parse(agentVersion);
if (!agentVersionParsed || !kibanaVersionParsed) throw new Error('version cannot be parsed');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
AgentUpgradeAgentModal,
} from '../../components';
import { useAgentRefresh } from '../hooks';
import { isAgentUpgradeable } from '../../../../services';

export const AgentDetailsActionMenu: React.FunctionComponent<{
agent: Agent;
Expand Down Expand Up @@ -115,6 +116,7 @@ export const AgentDetailsActionMenu: React.FunctionComponent<{
</EuiContextMenuItem>,
<EuiContextMenuItem
icon="refresh"
disabled={!isAgentUpgradeable(agent, kibanaVersion)}
onClick={() => {
setIsUpgradeModalOpen(true);
}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,7 @@ export const AgentDetailsContent: React.FunctionComponent<{
<EuiFlexItem grow={false} className="eui-textNoWrap">
{agent.local_metadata.elastic.agent.version}
</EuiFlexItem>
{isAgentUpgradeable({
agentVersion: agent.local_metadata.elastic.agent.version,
kibanaVersion,
}) ? (
{isAgentUpgradeable(agent, kibanaVersion) ? (
<EuiFlexItem grow={false}>
<EuiText color="subdued" size="s" className="eui-textNoWrap">
<EuiIcon size="m" type="alert" color="warning" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,10 +160,7 @@ export const AgentDetailsPage: React.FunctionComponent = () => {
<EuiFlexItem grow={false} className="eui-textNoWrap">
{agentData.item.local_metadata.elastic.agent.version}
</EuiFlexItem>
{isAgentUpgradeable({
agentVersion: agentData.item.local_metadata.elastic.agent.version,
kibanaVersion,
}) ? (
{isAgentUpgradeable(agentData.item, kibanaVersion) ? (
<EuiFlexItem grow={false}>
<EuiIconTip
aria-label={i18n.translate(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ const RowActions = React.memo<{
const hasWriteCapabilites = useCapabilities().write;

const isUnenrolling = agent.status === 'unenrolling';
const kibanaVersion = useKibanaVersion();
const [isMenuOpen, setIsMenuOpen] = useState(false);
return (
<ContextMenuActions
Expand Down Expand Up @@ -139,6 +140,7 @@ const RowActions = React.memo<{
</EuiContextMenuItem>,
<EuiContextMenuItem
icon="refresh"
disabled={!isAgentUpgradeable(agent, kibanaVersion)}
onClick={() => {
onUpgradeClick();
}}
Expand Down Expand Up @@ -363,7 +365,7 @@ export const AgentListPage: React.FunctionComponent<{}> = () => {
<EuiFlexItem grow={false} className="eui-textNoWrap">
{safeMetadata(version)}
</EuiFlexItem>
{isAgentUpgradeable({ agentVersion: version, kibanaVersion }) ? (
{isAgentUpgradeable(agent, kibanaVersion) ? (
<EuiFlexItem grow={false}>
<EuiText color="subdued" size="xs" className="eui-textNoWrap">
<EuiIcon size="m" type="alert" color="warning" />
Expand Down

0 comments on commit 156e02f

Please sign in to comment.