Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f6e0206

Browse files
fix(site): fix ports update (#9221)
1 parent 92445cf commit f6e0206

File tree

3 files changed

+22
-16
lines changed

3 files changed

+22
-16
lines changed

site/src/components/Resources/AgentRow.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,7 @@ export const AgentRow: FC<AgentRowProps> = ({
253253
<PortForwardButton
254254
host={proxy.preferredWildcardHostname}
255255
workspaceName={workspace.name}
256-
agentId={agent.id}
257-
agentName={agent.name}
256+
agent={agent}
258257
username={workspace.owner_name}
259258
/>
260259
)}

site/src/components/Resources/PortForwardButton.stories.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import Box from "@mui/material/Box"
22
import { PortForwardPopoverView } from "./PortForwardButton"
33
import type { Meta, StoryObj } from "@storybook/react"
4-
import { MockListeningPortsResponse } from "testHelpers/entities"
4+
import {
5+
MockListeningPortsResponse,
6+
MockWorkspaceAgent,
7+
} from "testHelpers/entities"
58

69
const meta: Meta<typeof PortForwardPopoverView> = {
710
title: "components/PortForwardPopoverView",
@@ -20,6 +23,9 @@ const meta: Meta<typeof PortForwardPopoverView> = {
2023
</Box>
2124
),
2225
],
26+
args: {
27+
agent: MockWorkspaceAgent,
28+
},
2329
}
2430

2531
export default meta

site/src/components/Resources/PortForwardButton.tsx

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { docs } from "utils/docs"
1414
import Box from "@mui/material/Box"
1515
import { useQuery } from "@tanstack/react-query"
1616
import { getAgentListeningPorts } from "api/api"
17-
import { WorkspaceAgentListeningPort } from "api/typesGenerated"
17+
import { WorkspaceAgent, WorkspaceAgentListeningPort } from "api/typesGenerated"
1818
import CircularProgress from "@mui/material/CircularProgress"
1919
import { portForwardURL } from "utils/portForward"
2020
import OpenInNewOutlined from "@mui/icons-material/OpenInNewOutlined"
@@ -23,18 +23,19 @@ export interface PortForwardButtonProps {
2323
host: string
2424
username: string
2525
workspaceName: string
26-
agentName: string
27-
agentId: string
26+
agent: WorkspaceAgent
2827
}
2928

3029
export const PortForwardButton: React.FC<PortForwardButtonProps> = (props) => {
3130
const anchorRef = useRef<HTMLButtonElement>(null)
3231
const [isOpen, setIsOpen] = useState(false)
3332
const id = isOpen ? "schedule-popover" : undefined
3433
const styles = useStyles()
35-
const { data: listeningPorts } = useQuery({
36-
queryKey: ["portForward", props.agentId],
37-
queryFn: () => getAgentListeningPorts(props.agentId),
34+
const portsQuery = useQuery({
35+
queryKey: ["portForward", props.agent.id],
36+
queryFn: () => getAgentListeningPorts(props.agent.id),
37+
enabled: props.agent.status === "connected",
38+
refetchInterval: 5_000,
3839
})
3940

4041
const onClose = () => {
@@ -44,14 +45,14 @@ export const PortForwardButton: React.FC<PortForwardButtonProps> = (props) => {
4445
return (
4546
<>
4647
<SecondaryAgentButton
47-
disabled={!listeningPorts}
48+
disabled={!portsQuery.data}
4849
ref={anchorRef}
4950
onClick={() => {
5051
setIsOpen(true)
5152
}}
5253
>
5354
Ports
54-
{listeningPorts ? (
55+
{portsQuery.data ? (
5556
<Box
5657
sx={{
5758
fontSize: 12,
@@ -67,7 +68,7 @@ export const PortForwardButton: React.FC<PortForwardButtonProps> = (props) => {
6768
ml: 1,
6869
}}
6970
>
70-
{listeningPorts.ports.length}
71+
{portsQuery.data.ports.length}
7172
</Box>
7273
) : (
7374
<CircularProgress size={10} sx={{ ml: 1 }} />
@@ -88,7 +89,7 @@ export const PortForwardButton: React.FC<PortForwardButtonProps> = (props) => {
8889
horizontal: "right",
8990
}}
9091
>
91-
<PortForwardPopoverView {...props} ports={listeningPorts?.ports} />
92+
<PortForwardPopoverView {...props} ports={portsQuery.data?.ports} />
9293
</Popover>
9394
</>
9495
)
@@ -97,7 +98,7 @@ export const PortForwardButton: React.FC<PortForwardButtonProps> = (props) => {
9798
export const PortForwardPopoverView: React.FC<
9899
PortForwardButtonProps & { ports?: WorkspaceAgentListeningPort[] }
99100
> = (props) => {
100-
const { host, workspaceName, agentName, username, ports } = props
101+
const { host, workspaceName, agent, username, ports } = props
101102

102103
return (
103104
<>
@@ -120,7 +121,7 @@ export const PortForwardPopoverView: React.FC<
120121
const url = portForwardURL(
121122
host,
122123
p.port,
123-
agentName,
124+
agent.name,
124125
workspaceName,
125126
username,
126127
)
@@ -192,7 +193,7 @@ export const PortForwardPopoverView: React.FC<
192193
const url = portForwardURL(
193194
host,
194195
port,
195-
agentName,
196+
agent.name,
196197
workspaceName,
197198
username,
198199
)

0 commit comments

Comments
 (0)