fix: actually fix type errors

This commit is contained in:
Aarnav Tale
2026-03-16 23:41:09 -04:00
parent 25dc09e025
commit 8f6fe05c83
16 changed files with 101 additions and 163 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
import Button from "~/components/Button";
import Button from "~/components/button";
import Code from "~/components/Code";
import Dialog, { DialogPanel } from "~/components/Dialog";
import Input from "~/components/Input";
+1 -1
View File
@@ -1,4 +1,4 @@
import Button from "~/components/Button";
import Button from "~/components/button";
import Dialog, { DialogPanel } from "~/components/Dialog";
import Text from "~/components/Text";
import Title from "~/components/Title";
+1 -1
View File
@@ -1,7 +1,7 @@
import { Split } from "lucide-react";
import { useMemo, useState } from "react";
import Button from "~/components/Button";
import Button from "~/components/button";
import Chip from "~/components/Chip";
import Dialog, { DialogPanel } from "~/components/Dialog";
import Input from "~/components/Input";
+1 -1
View File
@@ -1,6 +1,6 @@
import { useMemo, useState } from "react";
import Button from "~/components/Button";
import Button from "~/components/button";
import Code from "~/components/Code";
import Dialog, { DialogPanel } from "~/components/Dialog";
import Input from "~/components/Input";
+4 -1
View File
@@ -48,11 +48,14 @@ export async function loader({ request, params, context }: Route.LoaderArgs) {
const nodes = nodesSnap.data;
const users = usersSnap.data;
const node = nodes.find((node) => node.id === params.id);
if (node == null) {
throw data(null, { status: 404 });
}
const lookup = await context.agents?.lookup([node.nodeKey]);
const [enhancedNode] = mapNodes([node], lookup);
const tags = [...node.tags].toSorted();
const supportsNodeOwnerChange = !context.hsApi.clientHelpers.isAtleast("0.28.0-beta.1");
const supportsNodeOwnerChange = !context.hsApi.clientHelpers.isAtleast("0.28.0");
return {
agent: context.agents?.agentID(),
+1 -1
View File
@@ -46,7 +46,7 @@ export async function loader({ request, context }: Route.LoaderArgs) {
const stats = await context.agents?.lookup(nodes.map((node) => node.nodeKey));
const populatedNodes = mapNodes(nodes, stats);
const supportsNodeOwnerChange = !context.hsApi.clientHelpers.isAtleast("0.28.0-beta.1");
const supportsNodeOwnerChange = !context.hsApi.clientHelpers.isAtleast("0.28.0");
return {
agent: context.agents?.agentID(),
@@ -1,4 +1,4 @@
import Button from "~/components/Button";
import Button from "~/components/button";
import Dialog, { DialogPanel } from "~/components/Dialog";
import Text from "~/components/Text";
import Title from "~/components/Title";
@@ -1,6 +1,6 @@
import { useMemo, useState } from "react";
import Button from "~/components/Button";
import Button from "~/components/button";
import Dialog, { DialogPanel } from "~/components/Dialog";
import Input from "~/components/Input";
import Text from "~/components/Text";
@@ -1,6 +1,6 @@
import { useMemo, useState } from "react";
import Button from "~/components/Button";
import Button from "~/components/button";
import Dialog, { DialogPanel } from "~/components/Dialog";
import Input from "~/components/Input";
import Text from "~/components/Text";
@@ -1,6 +1,6 @@
import { useMemo, useState } from "react";
import Button from "~/components/Button";
import Button from "~/components/button";
import Dialog, { DialogPanel } from "~/components/Dialog";
import Input from "~/components/Input";
import Text from "~/components/Text";
+39 -40
View File
@@ -1,47 +1,46 @@
import { useState } from 'react';
import Button from '~/components/Button';
import Card from '~/components/Card';
import Code from '~/components/Code';
import Input from '~/components/Input';
import { useState } from "react";
import Button from "~/components/button";
import Card from "~/components/Card";
import Code from "~/components/Code";
import Input from "~/components/Input";
interface UserPromptProps {
hostname: string;
hostname: string;
}
export default function UserPrompt({ hostname }: UserPromptProps) {
const [username, setUsername] = useState('');
const [username, setUsername] = useState("");
return (
<div className="flex items-center justify-center h-screen">
<Card>
<Card.Title>Enter Username</Card.Title>
<Card.Text className="mb-4">
Enter the username you want to use to connect to{' '}
<Code>{hostname}</Code>
{'. '}
WebSSH follows the Headscale ACLs, so only permitted usernames will be
able to connect.
</Card.Text>
<Input
labelHidden
type="text"
label="Username"
placeholder="Username"
className="mb-2"
onChange={setUsername}
/>
<Button
variant="heavy"
className="w-full"
onPress={() => {
// We can't use the navigate hook here as we need to do a
// full page reload to ensure the SSH connection is established
window.location.href = `${__PREFIX__}/ssh?hostname=${hostname}&username=${username}`;
}}
>
Connect
</Button>
</Card>
</div>
);
return (
<div className="flex h-screen items-center justify-center">
<Card>
<Card.Title>Enter Username</Card.Title>
<Card.Text className="mb-4">
Enter the username you want to use to connect to <Code>{hostname}</Code>
{". "}
WebSSH follows the Headscale ACLs, so only permitted usernames will be able to connect.
</Card.Text>
<Input
labelHidden
type="text"
label="Username"
placeholder="Username"
className="mb-2"
onChange={setUsername}
/>
<Button
variant="heavy"
className="w-full"
onPress={() => {
// We can't use the navigate hook here as we need to do a
// full page reload to ensure the SSH connection is established
window.location.href = `${__PREFIX__}/ssh?hostname=${hostname}&username=${username}`;
}}
>
Connect
</Button>
</Card>
</div>
);
}