1
- import { useActor } from "@xstate/react" ;
2
1
import { useDashboard } from "components/Dashboard/DashboardProvider" ;
3
2
import dayjs from "dayjs" ;
4
3
import { useFeatureVisibility } from "hooks/useFeatureVisibility" ;
@@ -34,6 +33,7 @@ import { templateVersion, templateVersions } from "api/queries/templates";
34
33
import { Alert } from "components/Alert/Alert" ;
35
34
import { Stack } from "components/Stack/Stack" ;
36
35
import { useWorkspaceBuildLogs } from "hooks/useWorkspaceBuildLogs" ;
36
+ import { useDecreaseDeadline , useIncreaseDeadline } from "./scheduleControls" ;
37
37
38
38
interface WorkspaceReadyPageProps {
39
39
workspaceState : StateFrom < typeof workspaceMachine > ;
@@ -56,9 +56,6 @@ export const WorkspaceReadyPage = ({
56
56
isLoadingMoreBuilds,
57
57
hasMoreBuilds,
58
58
} : WorkspaceReadyPageProps ) : JSX . Element => {
59
- const [ _ , bannerSend ] = useActor (
60
- workspaceState . children [ "scheduleBannerMachine" ] ,
61
- ) ;
62
59
const { buildInfo } = useDashboard ( ) ;
63
60
const featureVisibility = useFeatureVisibility ( ) ;
64
61
const {
@@ -121,10 +118,8 @@ export const WorkspaceReadyPage = ({
121
118
} = useMutation ( {
122
119
mutationFn : restartWorkspace ,
123
120
} ) ;
124
- // keep banner machine in sync with workspace
125
- useEffect ( ( ) => {
126
- bannerSend ( { type : "REFRESH_WORKSPACE" , workspace } ) ;
127
- } , [ bannerSend , workspace ] ) ;
121
+ const decreaseDeadline = useDecreaseDeadline ( workspace ) ;
122
+ const increaseDeadline = useIncreaseDeadline ( workspace ) ;
128
123
129
124
return (
130
125
< >
@@ -144,18 +139,8 @@ export const WorkspaceReadyPage = ({
144
139
145
140
< Workspace
146
141
scheduleProps = { {
147
- onDeadlineMinus : ( hours : number ) => {
148
- bannerSend ( {
149
- type : "DECREASE_DEADLINE" ,
150
- hours,
151
- } ) ;
152
- } ,
153
- onDeadlinePlus : ( hours : number ) => {
154
- bannerSend ( {
155
- type : "INCREASE_DEADLINE" ,
156
- hours,
157
- } ) ;
158
- } ,
142
+ onDeadlineMinus : decreaseDeadline ,
143
+ onDeadlinePlus : increaseDeadline ,
159
144
maxDeadlineDecrease : getMaxDeadlineChange ( deadline , getMinDeadline ( ) ) ,
160
145
maxDeadlineIncrease : getMaxDeadlineChange (
161
146
getMaxDeadline ( workspace ) ,
0 commit comments