fix: avoid showing "multiple tags" for simple tag sets on provisioners page (#14804)

This commit is contained in:
Kayla Washburn-Love
2024-09-25 12:48:34 -06:00
committed by GitHub
parent 6cd1219289
commit 2cffb55457
2 changed files with 14 additions and 4 deletions
@@ -22,7 +22,6 @@ import {
} from "components/Popover/Popover";
import { Stack } from "components/Stack/Stack";
import { StatusIndicator } from "components/StatusIndicator/StatusIndicator";
import isEqual from "lodash/isEqual";
import { type FC, useState } from "react";
import { createDayString } from "utils/createDayString";
import { docs } from "utils/docs";
@@ -38,6 +37,15 @@ interface ProvisionerGroupProps {
readonly provisioners: readonly ProvisionerDaemon[];
}
function isSimpleTagSet(tags: Record<string, string>) {
const numberOfExtraTags = Object.keys(tags).filter(
(key) => key !== "scope" && key !== "owner",
).length;
return (
numberOfExtraTags === 0 && tags.scope === "organization" && !tags.owner
);
}
export const ProvisionerGroup: FC<ProvisionerGroupProps> = ({
buildInfo,
keyName,
@@ -95,8 +103,7 @@ export const ProvisionerGroup: FC<ProvisionerGroupProps> = ({
: `${provisionersWithWarnings} provisioners`;
const hasMultipleTagVariants =
type === "psk" &&
provisioners.some((it) => !isEqual(it.tags, { scope: "organization" }));
type === "psk" && provisioners.some((it) => !isSimpleTagSet(it.tags));
return (
<div
@@ -44,7 +44,10 @@ export const Provisioners: Story = {
},
{
key: { ...MockProvisionerKey, id: "ジェイデン", name: "ジェイデン" },
daemons: [MockProvisioner, MockProvisioner2],
daemons: [
MockProvisioner,
{ ...MockProvisioner2, tags: { scope: "organization", owner: "" } },
],
},
{
key: { ...MockProvisionerKey, id: "ベン", name: "ベン" },