Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

feat(site): display warnings in tasks page when wildcard is not configured#19780

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
PrevPrevious commit
NextNext commit
add TaskWildcardWarning component
  • Loading branch information
@kacpersaw
kacpersaw committedSep 16, 2025
commit6b8843b56a886b51ae7baad69fce40437ffa10a4
22 changes: 16 additions & 6 deletionssite/src/pages/TaskPage/TaskApps.tsx
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -9,6 +9,7 @@ import {
import { ExternalImage } from "components/ExternalImage/ExternalImage";
import { InfoTooltip } from "components/InfoTooltip/InfoTooltip";
import { Link } from "components/Link/Link";
import { useProxy } from "contexts/ProxyContext";
import { ChevronDownIcon, LayoutGridIcon } from "lucide-react";
import { useAppLink } from "modules/apps/useAppLink";
import type { Task } from "modules/tasks/tasks";
Expand All@@ -18,6 +19,7 @@ import { Link as RouterLink } from "react-router";
import { cn } from "utils/cn";
import { docs } from "utils/docs";
import { TaskAppIFrame } from "./TaskAppIframe";
import { TaskWildcardWarning } from "./TaskWildcardWarning";

type TaskAppsProps = {
task: Task;
Expand All@@ -29,6 +31,8 @@ type AppWithAgent = {
};

export const TaskApps: FC<TaskAppsProps> = ({ task }) => {
const { proxy } = useProxy();

const agents = task.workspace.latest_build.resources
.flatMap((r) => r.agents)
.filter((a) => !!a);
Expand All@@ -54,6 +58,10 @@ export const TaskApps: FC<TaskAppsProps> = ({ task }) => {
embeddedApps[0]?.app.id,
);

const activeApp = embeddedApps.find(({ app }) => app.id === activeAppId)?.app;
const shouldDisplayWildcardWarning =
activeApp?.subdomain && !proxy.proxy?.wildcard_hostname;

return (
<main className="flex flex-col">
<div className="w-full flex items-center border-0 border-b border-border border-solid">
Expand DownExpand Up@@ -83,18 +91,20 @@ export const TaskApps: FC<TaskAppsProps> = ({ task }) => {
</div>

{embeddedApps.length > 0 ? (
<div className="flex-1">
{embeddedApps.map(({ app }) => {
return (
shouldDisplayWildcardWarning ? (
<TaskWildcardWarning />
) : (
<div className="flex-1">
{embeddedApps.map(({ app }) => (
<TaskAppIFrame
key={app.id}
active={activeAppId === app.id}
app={app}
task={task}
/>
);
})}
</div>
))}
</div>
)
) : (
<div className="mx-auto my-auto flex flex-col items-center">
<h3 className="font-medium text-content-primary text-base">
Expand Down
37 changes: 8 additions & 29 deletionssite/src/pages/TaskPage/TaskSidebar.tsx
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
import type { WorkspaceApp } from "api/typesGenerated";
import { Button } from "components/Button/Button";
import { Spinner } from "components/Spinner/Spinner";
import { useProxy } from "contexts/ProxyContext";
import { SquareArrowOutUpRightIcon } from "lucide-react";
import type { Task } from "modules/tasks/tasks";
import type { FC } from "react";
import { Link as RouterLink } from "react-router";
import { docs } from "utils/docs";
import { TaskAppIFrame } from "./TaskAppIframe";
import { TaskWildcardWarning } from "./TaskWildcardWarning";

type TaskSidebarProps = {
task: Task;
Expand DownExpand Up@@ -77,37 +74,19 @@ export const TaskSidebar: FC<TaskSidebarProps> = ({ task }) => {

return (
<aside className="flex flex-col h-full shrink-0 w-full">
{sidebarAppStatus === "healthy" &&
sidebarApp &&
!shouldDisplayWildcardWarning ? (
{sidebarAppStatus === "loading" ? (
<div className="flex-1 flex flex-col items-center justify-center">
<Spinner loading className="mb-4" />
</div>
) : shouldDisplayWildcardWarning ? (
<TaskWildcardWarning />
) : sidebarAppStatus === "healthy" && sidebarApp ? (
<TaskAppIFrame
active
key={sidebarApp.id}
app={sidebarApp}
task={task}
/>
) : sidebarAppStatus === "loading" ? (
<div className="flex-1 flex flex-col items-center justify-center">
<Spinner loading className="mb-4" />
</div>
) : shouldDisplayWildcardWarning ? (
<div className="flex-1 flex flex-col items-center justify-center">
<h3 className="m-0 font-medium text-content-primary text-base">
Error
</h3>
<div className="text-content-secondary text-sm text-center space-y-3">
<div className="px-4">
This application is not accessible because the wildcard access URL
is not configured.
</div>
<Button size="sm" variant="outline" asChild>
<RouterLink to={docs("/admin/networking/wildcard-access-url")}>
<SquareArrowOutUpRightIcon />
Learn more about wildcard access URL
</RouterLink>
</Button>
</div>
</div>
) : (
<div className="flex-1 flex flex-col items-center justify-center">
<h3 className="m-0 font-medium text-content-primary text-base">
Expand Down
42 changes: 42 additions & 0 deletionssite/src/pages/TaskPage/TaskWildcardWarning.tsx
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
import{Button}from"components/Button/Button";
import{useAuthenticated}from"hooks/useAuthenticated";
import{SquareArrowOutUpRightIcon}from"lucide-react";
import{LinkasRouterLink}from"react-router";
import{docs}from"utils/docs";

exportconstTaskWildcardWarning=()=>{
const{ permissions}=useAuthenticated();
constcanEditDeploymentConfig=Boolean(permissions.editDeploymentConfig);

return(
<divclassName="mx-auto my-auto flex flex-col items-center max-w-xl">
<h3className="font-medium text-content-primary text-base">Error</h3>
<divclassName="text-content-secondary text-sm text-center flex flex-col gap-3 items-center">
<divclassName="px-4">
This application has{" "}
<codeclassName="py-px px-1 bg-surface-tertiary rounded-sm text-content-primary">
subdomain = true
</code>
{canEditDeploymentConfig ?(
<>
, but subdomain applications are not configured. This application
won't be accessible until you configure the{" "}
<codeclassName="py-px px-1 bg-surface-tertiary rounded-sm text-content-primary whitespace-nowrap">
--wildcard-access-url
</code>{" "}
flag when starting the Coder server.
</>
) :(
", which requires a Coder deployment with a Wildcard Access URL configured. Please contact your administrator."
)}
</div>
<Buttonsize="sm"variant="outline"asChild>
<RouterLinkto={docs("/admin/networking/wildcard-access-url")}>
<SquareArrowOutUpRightIcon/>
Learn more about wildcard access URL
</RouterLink>
</Button>
</div>
</div>
);
};
Loading

[8]ページ先頭

©2009-2025 Movatter.jp