Skip to content

Commit 36ba04d

Browse files
committed
Layout, fix send reset bug
1 parent eef229e commit 36ba04d

File tree

2 files changed

+131
-130
lines changed

2 files changed

+131
-130
lines changed

site/src/xServices/pagination/paginationXService.ts

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,34 +14,33 @@ export type PaginationEvent =
1414

1515
export type PaginationMachineRef = ActorRefFrom<typeof paginationMachine>
1616

17-
export const paginationMachine = createMachine(
17+
export const paginationMachine =
18+
/** @xstate-layout N4IgpgJg5mDOIC5QAcCGUCWA7VAXDA9lgLKoDGAFtmAMQByAogBoAqA+gAoCCA4gwNoAGALqIUBWBnxExIAB6IATADZBAOgAcGgCwBWDYMEHBAdm2KANCACeiEwEZ7axboCcbkw8-3XGgL5+VmiYONIk5FRYtBwASgwAagCSAPIAqgDKnLwCIrLIElKEWLIKCAC09hrKarq6AMwarsraGormuiYaVrYIDk4u7q7e3r4BQejYeEWklNQ0PMlsLIvcfEKiSCD5kmElduq69vrKyiaCjqfu3YgauupatYp1eia+o4FbE6HTEXNx6Qx2KschtxDsintyvZqlVzmdGs0tIpbtcENplIoanV7M8jrpFCZntoAh8sAQIHA8l8pkQZpEwGoAE5gVAQHpgwoyTalZSuNTuV6CFzabSCFqdVFmdTPMU+dHnZrKMafEI08KzKJ5Aq7blKJwC1xC3QisUaCU2RDKQ5qGXaOWqaHokl+IA */
19+
createMachine(
1820
{
19-
id: "paginationMachine",
20-
predictableActionArguments: true,
21-
tsTypes: {} as import("./paginationXService.typegen").Typegen0,
22-
schema: {
23-
context: {} as PaginationContext,
24-
events: {} as PaginationEvent,
21+
tsTypes: {} as import("./paginationXService.typegen").Typegen0,
22+
schema: { context: {} as PaginationContext, events: {} as PaginationEvent },
23+
predictableActionArguments: true,
24+
id: "paginationMachine",
25+
initial: "ready",
26+
on: {
27+
NEXT_PAGE: {
28+
actions: ["assignNextPage", "updateURL", "sendRefreshData"],
2529
},
26-
initial: "idle",
27-
on: {
28-
NEXT_PAGE: {
29-
actions: ["assignNextPage", "updateURL", "sendRefreshData"],
30-
},
31-
PREVIOUS_PAGE: {
32-
actions: ["assignPreviousPage", "updateURL", "sendRefreshData"],
33-
},
34-
GO_TO_PAGE: {
35-
actions: ["assignPage", "updateURL", "sendRefreshData"],
36-
},
37-
RESET_PAGE: {
38-
actions: ["resetPage", "updateURL", "sendRefreshData"],
39-
},
30+
PREVIOUS_PAGE: {
31+
actions: ["assignPreviousPage", "updateURL", "sendRefreshData"],
32+
},
33+
GO_TO_PAGE: {
34+
actions: ["assignPage", "updateURL", "sendRefreshData"],
4035
},
41-
states: {
42-
idle: {},
36+
RESET_PAGE: {
37+
actions: ["logReset", "resetPage", "updateURL", "sendRefreshData"],
4338
},
4439
},
40+
states: {
41+
ready: {},
42+
},
43+
},
4544
{
4645
actions: {
4746
sendRefreshData: (_) => sendParent("REFRESH_DATA"),

site/src/xServices/workspaces/workspacesXService.ts

Lines changed: 109 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -221,134 +221,136 @@ interface WorkspacesContext {
221221
}
222222

223223
type WorkspacesEvent =
224-
| { type: "REFRESH_DATA"; limit: number; offset: number }
224+
| { type: "REFRESH_DATA" }
225225
| { type: "UPDATE_VERSION"; workspaceId: string }
226226
| { type: "UPDATE_FILTER"; query?: string }
227227

228228
export const workspacesMachine =
229-
/** @xstate-layout N4IgpgJg5mDOIC5QHcD2AnA1rADgQwGM4BlAFz1LACYA6A1AVwDtSaZTSBLJqAYUZYBiCKiZga3AG6pM49gHUM2fEVj9mpANoAGALqJQOVLE5dRBkAA9EAFgDstABw2AbI5cBmAKx27L7QCMXjYANCAAnogeAbTaXgCcdl4BflRUSR52AL5ZYWhYuIQk5JS09BpsYBzcfAKkgmDo6Bg0OAA2FABmGAC2laSKBSpw6iw6+kggRiZmTBbWCPY2NDGO2olB7gHajmGRi+srdom+8QGOFzaOOXlKhapkFNQ0+cpFsDSw5OhcPAAKeCg3AonFEgnGFmmplBc0mCw8LjsNAuLiCNkyNm0Vw8e0Qdm0sRcNgSVDc8WSNgCNxAr3uxSetFpww+7F+UEGb1UwlE4ikMjkVQ5dNgEMmUNm80QVHi2hoRO0STS2Ku8VxCG22hcNHi8UcyR8rkcaWyuRpd2Zj1KL3N736bKFzO5YgkTGksn6DvemgCE0Mxmh5jhUucyPcjmiVC8-g8NljaoCMWWjhS53lCS8cWpTPelue2dUdpqnq5jWa6FaHVI3XQfQUNtUor9MxhkoQXmS2tJLi8jjOMoCcYiiHiVGWHgja1J8U8VGupvz9KtC4+DBwEBBPGLYAASmBOrAnbzXfyaKv15Qt7v942pv6JUGEPEY3LoplNR4Zd4XGryY4aHZUyodZNUSI0s3rRc8wgj5kDwUwABVUCvdA4AACy3A9LC+J4aDwTpKHQAAKDNtG0ABKQRl1zRloJeODSEQ5C0Iwm9xRbB8yTlaUEwSWMCRcb8hwQI0AhoAlyQAgIYz1cChhzEooLkrltwAUQAMVU4gAAkAH0ABEAEF4IM1i73Y0AFmJDwaCoAJP38Xt-HSNV8UJYlkgA7QPGTLxZM5SCqEEABVP5DPglSdIANRU7diAASQAeQAOVM5tAws4cUjE-wfDcK4gMyNUCpWC4UkciNdSpedoOo4LQqMiK1LigAZcLt1SgNYQy9UEyRM5zm8uJIxiQT9js+IaG8U5jkRbZpTnU0mFQCA4AsKiFLKOoJAgNowEhMz0qsPEQz1OJMSk9MrjVGMkXxfEe1jAJuzyvzhWougttZGpRlIfa0q6o6EGOOVAl1Gx0lRSM9Wu2z-xOcHk3OOwLg8V6LQ2j6ND+zrW2iEG7OcCGYgeuwiqoay4kSTFI11HUBLR+SGWtJS4E+b42QBIEmBBQ62MOhZkzldEYyJDze1JoTuy8GzjnB2MRxRGwGYeDHl0LTdoOx+9uo8ICbMh3V8Skuxxxc8MaC8aUrhsGVpW8qhlYC5n-JXNcN3ZCCr3gMUDoBhZPGWWdtm8LwPHWcdQiEhN0RWIC0mCKMBx7R3YHetXYIQpC9xQ2B0M1n3-tbdxrPHM4paCbjRsQESxKt3sUm7Zw51uFnU9V-Omxxh9xyFiPRbKxI1SjLV0ifEcSPiWMleq1vqK18zAYAWieybdUCHxyccOxKVD+Nn0p7eR3sYC0hyHIgA */
229+
/** @xstate-layout N4IgpgJg5mDOIC5QHcD2AnA1rADgQwGM4BlAFz1LADoDUBXAO1KoEsIAbMAYgFUAFACIBBACoBRAPoAxAJIAZcQCUA2gAYAuolA5UsFqRaoGWkAA9EARgCsANioBmAEw37q+1YDsLgBwAWbx4ANCAAnohOVFZWjvYeFr5WAJxeThYAvmnBaFi4hCTklDT0TFQwpAYMUADCxaRcEEbULAwAbqiY1GUA6hjY+ESwNYykappIIDp6BkYm5gi+Ho5UjraOqhaq3jYbNsFhCNa+VDYJqp72iX423jEZWb25A2QU1LTDpWDlzdW1XGDo6AwVBw7AoADMMABbD6kHo5fpwIZMUYmSb6QzGcZzGyORJUDYJOIeKzeWKJPaIFZWKjeRKqYluOJWXw2VQ2O4gbJ9PKwZ6FLmPOBUWDkdAVKB8PBQZoUDFcFHjNHTTGgOYAWm8Fjx9i1jl8Tn83gC5NCiDVvgsy1UiUcjg8HiNuKNxI5AoRvIK1DdPJh4rh3IG9UarFa7U6n39gtgCu0unRMyxZts1McG281tShosFIORqoxNJLkcpL8Fscroe7r5XsrPrKftrgYaDCaoY6MMj7uUFjGsamGNmZq2lsSvlU-isGZsiSs9hzxY8VDOtrpNg8l2tvgr8J51ao3oGvu+nZ5fwBQJB4KhHcbcBjEzjysHCDVzKW10SFnsmuLiSc3hzPMYk2VNfH8BYom3AN8hefdb1gKg6BwCBZUqE8iEUMAwVgIMWxDNp2yQlDKHQsBMOw+8lQHRMX1cOx1hZDZU1sDZ7DnU0EDYpYwM3CwthiB1vCsKCoz3A8hWQPB9BEVByPQOAAAtSJw0wRVgvAwUodAAApJ1UVQAEouHEj1YJM-cpNIGS5MU5TKMfajVSTO0l3WGJ3CSUlEhNfYLmONlNVpVMHRsZkRKrT04J3QNFDEKRYuIAAJCRhBEIR7P7BMnJfadvAcWl9Q2cdxzXHNzUtNYbTtQSnQCYTMk5eDq14QRREkAA1MRFGIGQAHkADkMvjFUzHCalokSE54k8L8LC8MrnCWG4-EWNj4gtDwMgahhUAgOATBMvc3hKNhOFRBystG+ZR0iekyQ8a1WKsHMHqXX87TXGwcXscLd0i47mHrb4kVIc7MpG7FqU-G1SVY+xWWeji+KWJJthtM4GQSLcGsO-7ajB4bnzmqhoeLHU3Hhs4ytsKgwK8MmDRtX6nki8y1LFb5JWlBhZUuqjLvVI07GsS4Vj8TxfE-Mr4lUZY-0m+wwOcM5fHLHGmtZ+CjzQ+CCafGiNRnZYhPcNj9TWPj5zsVGtW8i1xfcdl1eimD+S1ojUKgUjyPgRULohs04ktKw01V5lSScHNFbxac31yvivGsZnXZrF2EMk6TZKw+TYCU3W-fB581XcS1FnXe0blcDwxyCDi2OWcvcU-L6ziSZPTLdtO9ccq61VHexjdnWdFacdYAI4tUVzli4i0VrY2R+53oI7sBu4Fs1vIqk3h-Nseyp1PLcRn1w7QsaxvC2tIgA */
230230
createMachine(
231231
{
232-
tsTypes: {} as import("./workspacesXService.typegen").Typegen1,
233-
schema: {
234-
context: {} as WorkspacesContext,
235-
events: {} as WorkspacesEvent,
236-
services: {} as {
237-
getWorkspaces: {
238-
data: TypesGen.Workspace[]
239-
}
240-
getWorkspacesCount: {
241-
data: { count: number }
242-
}
243-
updateWorkspaceRefs: {
244-
data: {
245-
refsToKeep: WorkspaceItemMachineRef[]
246-
newWorkspaces: TypesGen.Workspace[]
247-
}
248-
}
249-
},
250-
},
251-
predictableActionArguments: true,
252-
id: "workspacesState",
232+
tsTypes: {} as import("./workspacesXService.typegen").Typegen1,
233+
schema: {
234+
context: {} as WorkspacesContext,
235+
events: {} as WorkspacesEvent,
236+
services: {} as {
237+
getWorkspaces: {
238+
data: TypesGen.Workspace[]
239+
}
240+
getWorkspacesCount: {
241+
data: { count: number }
242+
}
243+
updateWorkspaceRefs: {
244+
data: {
245+
refsToKeep: WorkspaceItemMachineRef[]
246+
newWorkspaces: TypesGen.Workspace[]
247+
}
248+
}
249+
},
250+
},
251+
predictableActionArguments: true,
252+
id: "workspacesState",
253+
on: {
254+
UPDATE_VERSION: {
255+
actions: "triggerUpdateVersion",
256+
},
257+
},
258+
type: "parallel",
259+
states: {
260+
count: {
261+
initial: "gettingCount",
253262
on: {
254-
UPDATE_VERSION: {
255-
actions: "triggerUpdateVersion",
263+
UPDATE_FILTER: {
264+
target: ".gettingCount",
265+
actions: ["assignFilter", "sendResetPage"],
256266
},
257267
},
258-
type: "parallel",
259268
states: {
260-
count: {
261-
initial: "gettingCount",
262-
states: {
263-
idle: {
264-
on: {
265-
UPDATE_FILTER: {
266-
target: "gettingCount",
267-
actions: ["assignFilter", "sendResetPage"],
268-
}
269-
}
270-
},
271-
gettingCount: {
272-
entry: "clearGetCountError",
273-
invoke: {
274-
src: "getWorkspacesCount",
275-
id: "getWorkspacesCount",
276-
onDone: [
277-
{
278-
target: "idle",
279-
actions: "assignCount",
280-
},
281-
],
282-
onError: [
283-
{
284-
target: "idle",
285-
actions: "assignGetCountError",
286-
},
287-
],
269+
idle: {
270+
},
271+
gettingCount: {
272+
entry: "clearGetCountError",
273+
invoke: {
274+
src: "getWorkspacesCount",
275+
id: "getWorkspacesCount",
276+
onDone: [
277+
{
278+
target: "idle",
279+
actions: "assignCount",
288280
},
289-
},
281+
],
282+
onError: [
283+
{
284+
target: "idle",
285+
actions: "assignGetCountError",
286+
},
287+
],
290288
},
291289
},
292-
workspaces: {
293-
initial: "startingPagination",
294-
states: {
295-
startingPagination: {
296-
entry: "assignPaginationRef",
297-
always: "gettingWorkspaces" // TODO
298-
},
299-
gettingWorkspaces: {
300-
entry: "clearGetWorkspacesError",
301-
invoke: {
302-
src: "getWorkspaces",
303-
id: "getWorkspaces",
304-
onDone: [
305-
{
306-
target: "waitToRefreshWorkspaces",
307-
cond: "isEmpty",
308-
actions: "assignWorkspaceRefs",
309-
},
310-
{
311-
target: "updatingWorkspaceRefs",
312-
},
313-
],
314-
onError: [
315-
{
316-
target: "waitToRefreshWorkspaces",
317-
actions: "assignGetWorkspacesError",
318-
},
319-
],
290+
},
291+
},
292+
workspaces: {
293+
initial: "startingPagination",
294+
states: {
295+
startingPagination: {
296+
entry: "assignPaginationRef",
297+
always: {
298+
target: "gettingWorkspaces",
299+
},
300+
},
301+
gettingWorkspaces: {
302+
entry: "clearGetWorkspacesError",
303+
invoke: {
304+
src: "getWorkspaces",
305+
id: "getWorkspaces",
306+
onDone: [
307+
{
308+
target: "waitToRefreshWorkspaces",
309+
cond: "isEmpty",
310+
actions: "assignWorkspaceRefs",
320311
},
321-
},
322-
updatingWorkspaceRefs: {
323-
invoke: {
324-
src: "updateWorkspaceRefs",
325-
id: "updateWorkspaceRefs",
326-
onDone: [
327-
{
328-
target: "waitToRefreshWorkspaces",
329-
actions: "assignUpdatedWorkspaceRefs",
330-
},
331-
],
312+
{
313+
target: "updatingWorkspaceRefs",
332314
},
333-
},
334-
waitToRefreshWorkspaces: {
335-
after: {
336-
"5000": {
337-
target: "#workspacesState.workspaces.gettingWorkspaces",
338-
actions: [],
339-
internal: false,
340-
},
315+
],
316+
onError: [
317+
{
318+
target: "waitToRefreshWorkspaces",
319+
actions: "assignGetWorkspacesError",
341320
},
342-
},
321+
],
322+
},
323+
},
324+
updatingWorkspaceRefs: {
325+
invoke: {
326+
src: "updateWorkspaceRefs",
327+
id: "updateWorkspaceRefs",
328+
onDone: [
329+
{
330+
target: "waitToRefreshWorkspaces",
331+
actions: "assignUpdatedWorkspaceRefs",
332+
},
333+
],
343334
},
344-
on: {
345-
REFRESH_DATA: {
346-
target: ".gettingWorkspaces",
335+
},
336+
waitToRefreshWorkspaces: {
337+
after: {
338+
"5000": {
339+
target: "#workspacesState.workspaces.gettingWorkspaces",
340+
actions: [],
341+
internal: false,
347342
},
348343
},
349344
},
350345
},
346+
on: {
347+
REFRESH_DATA: {
348+
target: ".gettingWorkspaces",
349+
},
350+
},
351351
},
352+
},
353+
},
352354
{
353355
guards: {
354356
isEmpty: (context) => !context.workspaceRefs,
@@ -369,7 +371,7 @@ export const workspacesMachine =
369371
assignFilter: assign({
370372
filter: (context, event) => event.query ?? context.filter,
371373
}),
372-
sendResetPage: () => send("RESET_PAGE", { to: workspacePaginationId }),
374+
sendResetPage: send({ type: "RESET_PAGE" }, { to: workspacePaginationId }),
373375
assignGetWorkspacesError: assign({
374376
getWorkspacesError: (_, event) => event.data,
375377
}),

0 commit comments

Comments
 (0)