Skip to content

Commit 53b4f02

Browse files
fix: some ui bugs (#650)
1 parent 92aed5f commit 53b4f02

File tree

5 files changed

+87
-10
lines changed

5 files changed

+87
-10
lines changed

src/app/stacks/create/manual/ComponentSelection.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ function ComponentList({ type, search }: Props & { search: string }) {
103103
<div className="flex items-center gap-2 text-text-sm">
104104
{comp.body?.user?.name && <InlineAvatar username={comp.body.user.name} />}
105105
{comp.body?.updated && (
106-
<div className="text-theme-text-secondary">
106+
<div className="whitespace-nowrap text-theme-text-secondary">
107107
<DisplayDate short dateString={comp.body.updated} />
108108
</div>
109109
)}

src/components/MetadataCards.tsx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ import { CollapsibleCard } from "./CollapsibleCard";
55
import { Codesnippet } from "./CodeSnippet";
66
import { EmptyState } from "./EmptyState";
77
import File from "@/assets/icons/file.svg?react";
8+
import {
9+
Tooltip,
10+
TooltipContent,
11+
TooltipProvider,
12+
TooltipTrigger
13+
} from "@zenml-io/react-component-library/components/client";
814

915
type Props = { metadata: MetadataMap };
1016

@@ -68,7 +74,16 @@ export function UncategorizedCard({ metadata, title }: Props & { title?: string
6874
{nonDicts.map(([_, value]) => (
6975
<KeyValue
7076
key={value.id}
71-
label={value.body.key}
77+
label={
78+
<TooltipProvider>
79+
<Tooltip>
80+
<TooltipTrigger className="cursor-default truncate">
81+
{value.body.key}
82+
</TooltipTrigger>
83+
<TooltipContent className="max-w-[480px]">{value.body.key}</TooltipContent>
84+
</Tooltip>
85+
</TooltipProvider>
86+
}
7287
value={
7388
<>
7489
{(() => {

src/components/NestedCollapsible.tsx

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
/* eslint-disable @typescript-eslint/no-explicit-any */
2-
import { ReactNode } from "react";
3-
import { KeyValue } from "./KeyValue";
2+
import { renderAnyToString } from "@/lib/strings";
43
import { CollapsibleHeaderProps } from "@zenml-io/react-component-library";
5-
import { CollapsibleCard } from "./CollapsibleCard";
4+
import {
5+
Tooltip,
6+
TooltipContent,
7+
TooltipProvider,
8+
TooltipTrigger
9+
} from "@zenml-io/react-component-library/components/client";
10+
import { ReactNode } from "react";
611
import { Codesnippet } from "./CodeSnippet";
7-
import { renderAnyToString } from "@/lib/strings";
12+
import { CollapsibleCard } from "./CollapsibleCard";
13+
import { KeyValue } from "./KeyValue";
814

915
type Props = {
1016
intent?: CollapsibleHeaderProps["intent"];
@@ -56,7 +62,14 @@ export function NestedCollapsible({
5662
{values.map(([key, value]) => (
5763
<KeyValue
5864
key={key}
59-
label={key}
65+
label={
66+
<TooltipProvider>
67+
<Tooltip>
68+
<TooltipTrigger className="cursor-default truncate">{key}</TooltipTrigger>
69+
<TooltipContent className="max-w-[480px]">{key}</TooltipContent>
70+
</Tooltip>
71+
</TooltipProvider>
72+
}
6073
value={
6174
<>
6275
{typeof value === "boolean" ? (
@@ -98,7 +111,14 @@ function RenderArray({ title, value }: { title: string; value: any }) {
98111
{Object.entries(simpleValues).map(([key, value]) => (
99112
<KeyValue
100113
key={key}
101-
label={key}
114+
label={
115+
<TooltipProvider>
116+
<Tooltip>
117+
<TooltipTrigger className="cursor-default truncate">{key}</TooltipTrigger>
118+
<TooltipContent className="max-w-[480px]">{key}</TooltipContent>
119+
</Tooltip>
120+
</TooltipProvider>
121+
}
102122
value={<div className="py-1">{renderAnyToString(value)}</div>}
103123
/>
104124
))}

src/components/artifacts/artifact-node-sheet/DetailCards.tsx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,22 @@ export function DetailsCard({ artifactVersionId }: Props) {
120120
}
121121
/>
122122
)}
123-
123+
<KeyValue
124+
label="Materializer"
125+
value={
126+
<TooltipProvider>
127+
<Tooltip>
128+
<TooltipTrigger className="cursor-default">
129+
{artifactVersion.data.body?.materializer.attribute}
130+
</TooltipTrigger>
131+
<TooltipContent align="start">
132+
{artifactVersion.data.body?.materializer.module}.
133+
{artifactVersion.data.body?.materializer.attribute}
134+
</TooltipContent>
135+
</Tooltip>
136+
</TooltipProvider>
137+
}
138+
/>
124139
<KeyValue label="Type" value={artifactVersion.data.body?.type} />
125140
<KeyValue
126141
label="Author"

src/components/steps/step-sheet/ConfigurationTab.tsx

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ import { renderAnyToString } from "@/lib/strings";
99
import { AnyDict, MetadataMap } from "@/types/common";
1010
import { BuildItemMap } from "@/types/pipeline-builds";
1111
import { Skeleton } from "@zenml-io/react-component-library";
12+
import {
13+
Tooltip,
14+
TooltipContent,
15+
TooltipProvider,
16+
TooltipTrigger
17+
} from "@zenml-io/react-component-library/components/client";
1218
import { useParams } from "react-router-dom";
1319
import { ErrorFallback } from "../../Error";
1420
import { UncategorizedCard } from "../../MetadataCards";
@@ -85,13 +91,34 @@ export function StepConfigTab({ stepId }: Props) {
8591
}
8692

8793
export function KeyValueCard({ data, title }: { title: string; data: AnyDict }) {
94+
const hasData = Object.keys(data).length > 0;
95+
96+
if (!hasData)
97+
return (
98+
<CollapsibleCard initialOpen title={title}>
99+
<p className="text-theme-text-secondary">No data available</p>
100+
</CollapsibleCard>
101+
);
88102
return (
89103
<CollapsibleCard initialOpen title={title}>
90104
<dl className="grid grid-cols-1 gap-x-[10px] gap-y-2 md:grid-cols-3 md:gap-y-4">
91105
{Object.entries(data).map(
92106
([key, value]) =>
93107
typeof value !== "object" && (
94-
<KeyValue key={key} label={key} value={<div>{renderAnyToString(value)}</div>} />
108+
<KeyValue
109+
key={key}
110+
label={
111+
<TooltipProvider>
112+
<Tooltip>
113+
<TooltipTrigger className="cursor-default truncate">
114+
{value.body.key}
115+
</TooltipTrigger>
116+
<TooltipContent className="max-w-[480px]">{value.body.key}</TooltipContent>
117+
</Tooltip>
118+
</TooltipProvider>
119+
}
120+
value={<div>{renderAnyToString(value)}</div>}
121+
/>
95122
)
96123
)}
97124
</dl>

0 commit comments

Comments
 (0)