diff --git a/site/src/components/WorkspaceStatusBadge/WorkspaceStatusBadge.stories.tsx b/site/src/components/WorkspaceStatusBadge/WorkspaceStatusBadge.stories.tsx index be1aad94e0..b98b10f437 100644 --- a/site/src/components/WorkspaceStatusBadge/WorkspaceStatusBadge.stories.tsx +++ b/site/src/components/WorkspaceStatusBadge/WorkspaceStatusBadge.stories.tsx @@ -9,7 +9,6 @@ import { MockStartingWorkspace, MockStoppedWorkspace, MockStoppingWorkspace, - MockWorkspaceImpendingDeletion, MockWorkspace, } from "testHelpers/entities" import { @@ -75,8 +74,3 @@ export const Pending = Template.bind({}) Pending.args = { workspace: MockPendingWorkspace, } - -export const ImpendingDeletion = Template.bind({}) -ImpendingDeletion.args = { - workspace: MockWorkspaceImpendingDeletion, -} diff --git a/site/src/components/WorkspaceStatusBadge/WorkspaceStatusBadge.tsx b/site/src/components/WorkspaceStatusBadge/WorkspaceStatusBadge.tsx index 0768173cd4..368110b872 100644 --- a/site/src/components/WorkspaceStatusBadge/WorkspaceStatusBadge.tsx +++ b/site/src/components/WorkspaceStatusBadge/WorkspaceStatusBadge.tsx @@ -10,6 +10,7 @@ import { FC, PropsWithChildren } from "react" import { makeStyles } from "@mui/styles" import { combineClasses } from "utils/combineClasses" import { displayImpendingDeletion } from "utils/workspace" +import { useDashboard } from "components/Dashboard/DashboardProvider" const LoadingIcon: FC = () => { return @@ -92,18 +93,34 @@ export type WorkspaceStatusBadgeProps = { className?: string } +const ImpendingDeletionBadge: FC< + PropsWithChildren> +> = ({ className }) => { + const { entitlements, experiments } = useDashboard() + const allowAdvancedScheduling = + entitlements.features["advanced_template_scheduling"].enabled + // This check can be removed when https://github.com/coder/coder/milestone/19 + // is merged up + const allowWorkspaceActions = experiments.includes("workspace_actions") + + if (!allowAdvancedScheduling || !allowWorkspaceActions) { + return null + } + return ( + } + text="Impending deletion" + type="error" + /> + ) +} + export const WorkspaceStatusBadge: FC< PropsWithChildren > = ({ workspace, className }) => { if (displayImpendingDeletion(workspace)) { - return ( - } - text="Impending deletion" - type="error" - /> - ) + return } const { text, icon, type } = getStatus(workspace.latest_build.status) diff --git a/site/src/testHelpers/entities.ts b/site/src/testHelpers/entities.ts index 9df3cc527e..c9458a79af 100644 --- a/site/src/testHelpers/entities.ts +++ b/site/src/testHelpers/entities.ts @@ -806,12 +806,6 @@ export const MockPendingWorkspace: TypesGen.Workspace = { }, } -export const MockWorkspaceImpendingDeletion: TypesGen.Workspace = { - ...MockWorkspace, - id: "test-workspace-impending-deletion", - deleting_at: new Date().toISOString(), -} - // just over one page of workspaces export const MockWorkspacesResponse: TypesGen.WorkspacesResponse = { workspaces: range(1, 27).map((id: number) => ({ diff --git a/site/src/utils/workspace.ts b/site/src/utils/workspace.ts index 5e101209a7..44bd1e6c9c 100644 --- a/site/src/utils/workspace.ts +++ b/site/src/utils/workspace.ts @@ -202,24 +202,6 @@ export const displayImpendingDeletion = (workspace: TypesGen.Workspace) => { if (!workspace.deleting_at) { return false } - - console.log("today", today) - console.log("workspace.deletingAt", new Date(workspace.deleting_at)) - console.log( - "set", - new Date( - today.setDate(today.getDate() - IMPENDING_DELETION_DISPLAY_THRESHOLD), - ), - ) - - console.log( - "compare", - new Date(workspace.deleting_at) <= - new Date( - today.setDate(today.getDate() + IMPENDING_DELETION_DISPLAY_THRESHOLD), - ), - ) - return ( new Date(workspace.deleting_at) <= new Date(