Skip to content

Commit 955af30

Browse files
committed
Remove unused isAutoBuild from the state
1 parent 12efe74 commit 955af30

File tree

2 files changed

+48
-31
lines changed

2 files changed

+48
-31
lines changed

ui/frontend/actions.ts

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
clippyRequestSelector,
88
formatRequestSelector,
99
getCrateType,
10-
isAutoBuildSelector,
1110
runAsTest,
1211
useWebsocketSelector,
1312
} from './selectors';
@@ -145,7 +144,7 @@ export const WebSocketError = z.object({
145144
export type WebSocketError = z.infer<typeof WebSocketError>;
146145

147146
const ExecuteExtra = z.object({
148-
isAutoBuild: z.boolean(),
147+
sequenceNumber: z.number(),
149148
});
150149
type ExecuteExtra = z.infer<typeof ExecuteExtra>;
151150

@@ -223,22 +222,14 @@ interface ExecuteResponseBody {
223222
stderr: string;
224223
}
225224

226-
interface ExecuteSuccess extends ExecuteResponseBody {
227-
isAutoBuild: boolean;
228-
}
229-
230225
const requestExecute = () =>
231226
createAction(ActionType.ExecuteRequest);
232227

233-
const receiveExecuteSuccess = ({ stdout, stderr, isAutoBuild }: ExecuteSuccess) =>
234-
createAction(ActionType.ExecuteSucceeded, { stdout, stderr, isAutoBuild });
228+
const receiveExecuteSuccess = ({ stdout, stderr }: ExecuteResponseBody) =>
229+
createAction(ActionType.ExecuteSucceeded, { stdout, stderr });
235230

236-
const receiveExecuteFailure = ({
237-
error, isAutoBuild,
238-
}: {
239-
error?: string, isAutoBuild: boolean,
240-
}) =>
241-
createAction(ActionType.ExecuteFailed, { error, isAutoBuild });
231+
const receiveExecuteFailure = ({ error }: { error?: string }) =>
232+
createAction(ActionType.ExecuteFailed, { error });
242233

243234
function jsonGet(urlObj: string | UrlObject) {
244235
const urlStr = url.format(urlObj);
@@ -315,19 +306,17 @@ const performCommonExecute = (crateType: string, tests: boolean): ThunkAction =>
315306
const state = getState();
316307
const { code, configuration: { channel, mode, edition } } = state;
317308
const backtrace = state.configuration.backtrace === Backtrace.Enabled;
318-
const isAutoBuild = isAutoBuildSelector(state);
319-
320309

321310
if (useWebsocketSelector(state)) {
322-
return dispatch(wsExecuteRequest(channel, mode, edition, crateType, tests, code, backtrace, { isAutoBuild }));
311+
return dispatch(wsExecuteRequest(channel, mode, edition, crateType, tests, code, backtrace));
323312
} else {
324313
dispatch(requestExecute());
325314

326315
const body: ExecuteRequestBody = { channel, mode, edition, crateType, tests, code, backtrace };
327316

328317
return jsonPost<ExecuteResponseBody>(routes.execute, body)
329-
.then(json => dispatch(receiveExecuteSuccess({ ...json, isAutoBuild })))
330-
.catch(json => dispatch(receiveExecuteFailure({ ...json, isAutoBuild })));
318+
.then(json => dispatch(receiveExecuteSuccess(json)))
319+
.catch(json => dispatch(receiveExecuteFailure(json)));
331320
}
332321
};
333322

@@ -509,16 +498,31 @@ const PRIMARY_ACTIONS: { [index in PrimaryAction]: () => ThunkAction } = {
509498
[PrimaryActionCore.Wasm]: performCompileToNightlyWasmOnly,
510499
};
511500

501+
let sequenceNumber = 0;
502+
const nextSequenceNumber = () => sequenceNumber++;
503+
const makeExtra = (): ExecuteExtra => ({
504+
sequenceNumber: nextSequenceNumber(),
505+
});
506+
512507
const wsExecuteRequest = (
513508
channel: Channel,
514509
mode: Mode,
515510
edition: Edition,
516511
crateType: string,
517512
tests: boolean,
518513
code: string,
519-
backtrace: boolean,
520-
extra: ExecuteExtra,
521-
) => createAction(ActionType.WSExecuteRequest, { channel, mode, edition, crateType, tests, code, backtrace, extra });
514+
backtrace: boolean
515+
) =>
516+
createAction(ActionType.WSExecuteRequest, {
517+
channel,
518+
mode,
519+
edition,
520+
crateType,
521+
tests,
522+
code,
523+
backtrace,
524+
extra: makeExtra(),
525+
});
522526

523527
export const performPrimaryAction = (): ThunkAction => (dispatch, getState) => {
524528
const state = getState();

ui/frontend/reducers/output/execute.ts

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,46 @@ import { finish, start } from './sharedStateManagement';
33

44
const DEFAULT: State = {
55
requestsInProgress: 0,
6-
isAutoBuild: false,
76
};
87

98
interface State {
9+
sequenceNumber?: number;
1010
requestsInProgress: number;
1111
stdout?: string;
1212
stderr?: string;
1313
error?: string;
14-
isAutoBuild: boolean;
1514
}
1615

1716
export default function execute(state = DEFAULT, action: Action) {
1817
switch (action.type) {
1918
case ActionType.ExecuteRequest:
20-
case ActionType.WSExecuteRequest:
2119
return start(DEFAULT, state);
20+
case ActionType.WSExecuteRequest: {
21+
const { extra: { sequenceNumber } } = action;
22+
if (sequenceNumber >= (state.sequenceNumber ?? 0)) {
23+
const requestsInProgress = 1; // Only tracking one request
24+
return {...state, sequenceNumber, requestsInProgress };
25+
} else {
26+
return state;
27+
}
28+
}
2229
case ActionType.ExecuteSucceeded: {
23-
const { stdout = '', stderr = '', isAutoBuild } = action;
24-
return finish(state, { stdout, stderr, isAutoBuild });
30+
const { stdout = '', stderr = '' } = action;
31+
return finish(state, { stdout, stderr });
2532
}
2633
case ActionType.ExecuteFailed: {
27-
const { error, isAutoBuild } = action;
28-
return finish(state, { error, isAutoBuild });
34+
const { error } = action;
35+
return finish(state, { error });
2936
}
3037
case ActionType.WSExecuteResponse: {
31-
const { stdout, stderr, extra: { isAutoBuild } } = action;
32-
return finish(state, { stdout, stderr, isAutoBuild });
38+
const { stdout, stderr, extra: { sequenceNumber } } = action;
39+
40+
if (sequenceNumber >= (state.sequenceNumber ?? 0)) {
41+
const requestsInProgress = 0; // Only tracking one request
42+
return { ...state, stdout, stderr, requestsInProgress };
43+
} else {
44+
return state;
45+
}
3346
}
3447
default:
3548
return state;

0 commit comments

Comments
 (0)