Skip to content

Commit

Permalink
refactor: UI for the widget dependencies table (#411)
Browse files Browse the repository at this point in the history
* refactor: widget dependencies

* fix import name
  • Loading branch information
Charlie-XIAO authored Feb 6, 2025
1 parent e311b51 commit e7e0896
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 70 deletions.
6 changes: 2 additions & 4 deletions src/manager/components/Widgets/Config.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Box, Code, ScrollArea, Table } from "@radix-ui/themes";
import { WidgetConfigType } from "../../../types";
import { useWidgetsStore } from "../../hooks";
import { memo } from "react";
import WidgetDependencies from "./WidgetDependencies";
import Dependencies from "./Dependencies";

interface ConfigProps {
id: string;
Expand Down Expand Up @@ -38,9 +38,7 @@ const Config = memo(({ id }: ConfigProps) => {
<Table.Row>
<Table.RowHeaderCell>Dependencies</Table.RowHeaderCell>
<Table.Cell>
<WidgetDependencies
dependencies={config.content.dependencies}
/>
<Dependencies dependencies={config.content.dependencies} />
</Table.Cell>
</Table.Row>
</Table.Body>
Expand Down
56 changes: 56 additions & 0 deletions src/manager/components/Widgets/Dependencies.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import { Code, Inset, Link, Popover, Table, Text } from "@radix-ui/themes";
import { memo } from "react";

interface DependenciesProps {
dependencies: Record<string, string>;
}

const Dependencies = memo(({ dependencies }: DependenciesProps) => {
const dependenciesArray = Object.entries(dependencies);

return dependenciesArray.length > 0 ? (
<Popover.Root>
<Popover.Trigger>
<Link title="View the dependencies" asChild>
<button>View ({dependenciesArray.length})</button>
</Link>
</Popover.Trigger>
<Popover.Content size="1">
<Inset side="all">
<Table.Root
size="1"
css={{
"--table-cell-padding": "var(--space-1) var(--space-2)",
"--table-cell-min-height": 0,
"[data-radix-scroll-area-viewport]": { maxHeight: "150px" },
"& tr:last-child": { "--table-row-box-shadow": "none" },
}}
>
<Table.Body>
{dependenciesArray.map(([name, version]) => (
<Table.Row key={name}>
<Table.RowHeaderCell>
<Link
href={`https://www.npmjs.com/package/${name}`}
target="_blank"
rel="noreferrer"
>
{name}
</Link>
</Table.RowHeaderCell>
<Table.Cell>
<Code variant="ghost">{version}</Code>
</Table.Cell>
</Table.Row>
))}
</Table.Body>
</Table.Root>
</Inset>
</Popover.Content>
</Popover.Root>
) : (
<Text color="gray">None</Text>
);
});

export default Dependencies;
66 changes: 0 additions & 66 deletions src/manager/components/Widgets/WidgetDependencies.tsx

This file was deleted.

0 comments on commit e7e0896

Please sign in to comment.