mirror of
https://github.com/tale/headplane.git
synced 2026-08-29 00:17:13 +00:00
Support previous API interface as well
This commit is contained in:
@@ -71,7 +71,10 @@ export default function MachineRow({
|
|||||||
</p>
|
</p>
|
||||||
<div className="flex gap-1 flex-wrap mt-1.5">
|
<div className="flex gap-1 flex-wrap mt-1.5">
|
||||||
{mapTagsToComponents(node, uiTags)}
|
{mapTagsToComponents(node, uiTags)}
|
||||||
{node.tags.map((tag) => (
|
{node.validTags?.map((tag) => (
|
||||||
|
<Chip key={tag} text={tag} />
|
||||||
|
))}
|
||||||
|
{node.tags?.map((tag) => (
|
||||||
<Chip key={tag} text={tag} />
|
<Chip key={tag} text={tag} />
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export default function Tags({
|
|||||||
setIsOpen,
|
setIsOpen,
|
||||||
existingTags,
|
existingTags,
|
||||||
}: TagsProps) {
|
}: TagsProps) {
|
||||||
const [tags, setTags] = useState(machine.tags);
|
const [tags, setTags] = useState([...machine.forcedTags, ...machine.tags]);
|
||||||
const [tag, setTag] = useState('tag:');
|
const [tag, setTag] = useState('tag:');
|
||||||
const tagIsInvalid = useMemo(() => {
|
const tagIsInvalid = useMemo(() => {
|
||||||
return tag.length === 0 || !tag.startsWith('tag:') || tags.includes(tag);
|
return tag.length === 0 || !tag.startsWith('tag:') || tags.includes(tag);
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ export async function loader({ request, params, context }: Route.LoaderArgs) {
|
|||||||
const lookup = await context.agents?.lookup([node.nodeKey]);
|
const lookup = await context.agents?.lookup([node.nodeKey]);
|
||||||
const [enhancedNode] = mapNodes([node], lookup);
|
const [enhancedNode] = mapNodes([node], lookup);
|
||||||
const tags = Array.from(
|
const tags = Array.from(
|
||||||
new Set([...node.tags]),
|
new Set([...node.tags, ...node.validTags, ...node.forcedTags]),
|
||||||
).sort();
|
).sort();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ export interface Machine {
|
|||||||
| 'REGISTER_METHOD_CLI'
|
| 'REGISTER_METHOD_CLI'
|
||||||
| 'REGISTER_METHOD_OIDC';
|
| 'REGISTER_METHOD_OIDC';
|
||||||
|
|
||||||
|
forcedTags: string[];
|
||||||
|
invalidTags: string[];
|
||||||
|
validTags: string[];
|
||||||
tags: string[];
|
tags: string[];
|
||||||
givenName: string;
|
givenName: string;
|
||||||
online: boolean;
|
online: boolean;
|
||||||
|
|||||||
+16
-5
@@ -54,9 +54,20 @@ export function mapNodes(
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function sortNodeTags(nodes: Machine[]): string[] {
|
export function sortNodeTags(nodes: Machine[]): string[] {
|
||||||
return Array.from(
|
try {
|
||||||
new Set(
|
return Array.from(
|
||||||
nodes.flatMap((node) => node.tags),
|
new Set(
|
||||||
),
|
nodes.flatMap((node) => node.tags),
|
||||||
).sort();
|
),
|
||||||
|
).sort();
|
||||||
|
} catch {
|
||||||
|
return Array.from(
|
||||||
|
new Set(
|
||||||
|
nodes.flatMap(({ validTags, forcedTags }) => [
|
||||||
|
...validTags,
|
||||||
|
...forcedTags,
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
).sort();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user