Skip to content

Commit

Permalink
improve(splunk): tweaks after code review
Browse files Browse the repository at this point in the history
  • Loading branch information
bripkens committed Jul 9, 2024
1 parent 5f42278 commit 1fb13fe
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 37 deletions.
2 changes: 0 additions & 2 deletions packages/otelbin-validation-image/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,6 @@ exports.handler = async (event: APIGatewayEvent): Promise<APIGatewayProxyResult>

switch (distroName) {
case "splunk":
await exports.validateAdot(otelcolRealPath, configPath, env);
break;
case "adot":
await exports.validateAdot(otelcolRealPath, configPath, env);
break;
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
73 changes: 44 additions & 29 deletions packages/otelbin/src/components/validation-type/ValidationTile.tsx
Original file line number Diff line number Diff line change
@@ -1,40 +1,42 @@
// SPDX-FileCopyrightText: 2023 Dash0 Inc.
// SPDX-License-Identifier: Apache-2.0

import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "~/components/accordion";
import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from "~/components/select";
import { Tooltip, TooltipContent, TooltipTrigger } from "~/components/tooltip";
import {Accordion, AccordionContent, AccordionItem, AccordionTrigger} from "~/components/accordion";
import {Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue} from "~/components/select";
import {Tooltip, TooltipContent, TooltipTrigger} from "~/components/tooltip";
import AdotLogo from "./../assets/svg/distro-icons/adot.svg";
import OtelLogo from "./../assets/svg/distro-icons/otel.svg";
import { Github, Globe } from "lucide-react";
import { Button } from "../button";
import { IconButton } from "../icon-button";
import { CurrentBadge } from "./ValidationTypeContent";
import type { Distribution } from "~/types";
import { useState } from "react";
import { useUrlState } from "~/lib/urlState/client/useUrlState";
import { distroBinding, distroVersionBinding } from "../validation/binding";
import type { ICurrentDistributionVersion } from "./ValidationType";
import SplunkLogo from "./../assets/svg/distro-icons/splunk.svg";
import {Github, Globe} from "lucide-react";
import type {LucideIcon} from "lucide-react";
import {Button} from "../button";
import {IconButton} from "../icon-button";
import {CurrentBadge} from "./ValidationTypeContent";
import type {Distribution} from "~/types";
import {useState} from "react";
import {useUrlState} from "~/lib/urlState/client/useUrlState";
import {distroBinding, distroVersionBinding} from "../validation/binding";
import type {ICurrentDistributionVersion} from "./ValidationType";

export default function ValidationTile({
distributionId,
setOpen,
currentDistributionVersion,
distribution,
}: {
distributionId,
setOpen,
currentDistributionVersion,
distribution,
}: {
distributionId: string;
setOpen: (open: boolean) => void;
currentDistributionVersion?: ICurrentDistributionVersion;
distribution: Distribution;
}) {
const isDistroActive = distributionId === currentDistributionVersion?.distro;
const isDistroActive = distributionId===currentDistributionVersion?.distro;
const [, getLink] = useUrlState([distroBinding, distroVersionBinding]);
const [version, setVersion] = useState<string>(
isDistroActive ? currentDistributionVersion.version : distribution.releases[0]?.version ?? ""
isDistroActive ? currentDistributionVersion.version:distribution.releases[0]?.version ?? ""
);

function formatVersionsRange(versions?: string[] | string) {
if (typeof versions === "string") {
if (typeof versions==="string") {
return versions;
}
switch (versions?.length) {
Expand All @@ -47,16 +49,29 @@ export default function ValidationTile({
}
}

let Icon: LucideIcon;
switch (distribution?.icon) {
case "adot":
Icon = AdotLogo;
break;
case "splunk":
Icon = SplunkLogo;
break;
default:
Icon = OtelLogo;
break;
}

return (
<Accordion type="single" collapsible>
<AccordionItem value="item-1" className="border-1 border-solid border-neutral-350 rounded-md">
<AccordionTrigger className="hover:no-underline px-3 hover:bg-button-hover rounded-md">
<div className="flex items-center gap-x-3 w-full">
{distribution?.icon === "adot" ? <AdotLogo /> : <OtelLogo />}
<Icon/>
<div className="flex flex-col items-start">
<div className="flex items-center gap-x-3">
<p className="text-[13px] font-semibold text-neutral-950">{distribution?.name}</p>
{currentDistributionVersion?.distro === distributionId && <CurrentBadge />}
{currentDistributionVersion?.distro===distributionId && <CurrentBadge/>}
</div>
<p className="text-xs font-normal text-neutral-600">{`${
Array.isArray(distribution?.releases) &&
Expand All @@ -71,7 +86,7 @@ export default function ValidationTile({
<div className="flex items-center gap-x-1">
<a href={distribution?.website} target="_blank" className="text-neutral-950">
<IconButton variant={"outline"} size={"xs"} className="w-full px-2 flex items-center gap-x-2">
<Globe height={12} color="#9CA2AB" />
<Globe height={12} color="#9CA2AB"/>
{distribution?.website}
</IconButton>
</a>
Expand All @@ -80,7 +95,7 @@ export default function ValidationTile({
<TooltipTrigger asChild>
<a href={`https://github.com/${distribution?.repository}`} target="_blank">
<IconButton variant={"outline"} size={"xs"}>
<Github height={10} color="#9CA2AB" />
<Github height={10} color="#9CA2AB"/>
</IconButton>
</a>
</TooltipTrigger>
Expand All @@ -91,9 +106,9 @@ export default function ValidationTile({
<div className="flex items-center gap-x-2 border-t-1 border-solid border-neutral-250 pt-4">
<Select
defaultValue={
currentDistributionVersion?.distro === distributionId
currentDistributionVersion?.distro===distributionId
? currentDistributionVersion.version || ""
: distribution?.releases[0]?.version
:distribution?.releases[0]?.version
}
onValueChange={(value) => {
setVersion(value);
Expand All @@ -105,7 +120,7 @@ export default function ValidationTile({
/>
</SelectTrigger>
<SelectContent>
<SelectGroup style={{ maxHeight: "50vh" }}>
<SelectGroup style={{maxHeight: "50vh"}}>
{Array.isArray(distribution?.releases) &&
distribution?.releases
.map((release) => release.version)
Expand All @@ -119,8 +134,8 @@ export default function ValidationTile({
</Select>
<Button
onClick={() => {
if (typeof window !== "undefined") {
window.history.pushState(null, "", getLink({ distro: distributionId, distroVersion: version }));
if (typeof window!=="undefined") {
window.history.pushState(null, "", getLink({distro: distributionId, distroVersion: version}));
}
setOpen(false);
}}
Expand Down

0 comments on commit 1fb13fe

Please sign in to comment.