Skip to content

Commit 76071b9

Browse files
committed
Finish adding count to xservice
1 parent 13256ce commit 76071b9

File tree

1 file changed

+120
-74
lines changed

1 file changed

+120
-74
lines changed

site/src/xServices/workspaces/workspacesXService.ts

Lines changed: 120 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -218,97 +218,143 @@ type WorkspacesEvent =
218218
| { type: "PREVIOUS" }
219219
| { type: "GO_TO_PAGE"; page: number }
220220

221-
export const workspacesMachine = createMachine(
221+
export const workspacesMachine =
222+
/** @xstate-layout N4IgpgJg5mDOIC5QHcD2AnA1rADgQwGM4BlAFz1LADpk8BLUgFVQCUwAzdOACwHUNs+IrADEAD1jlKVPO0roAFAFYADGoCUItFlyESU6rQbM2nHvx1C4AbRUBdRKBypYDOqgB2jkGMQBGAGYANgCqFQAmAE4-cIAOOPDwoIB2ZIAaEABPRHCVKljAv2S-EMiClSUAFliAXxqM7UE9WDIKanYwUgJuOg8oKgJUAFcPUioYUlJeqABhYdGRCE9qXoA3VExqCYsm4TmR0lsHJBBnVynPb18ESsq8uOLk2KCVSqVY4qUM7IQAyqoApElOFKskgpEUn5avUQI1dMJWtIOl0en0BvMxhMpn19gswOh0BgqDgADYUdgYAC2406O3hcFxh3s3jObkuJ2ufyUVEiAXi4QCySUAWBARF3xyaiowuqZShQSCiUidQaAnpLQMVGR3WmNDVVlgVCGOAgFGmdKsplESw8Kw8602RpNbQteitRxZLjZXg5iFitwByTKARUQVulQCiQlCBeeX9sWifihhXBKth+uaiPanR1aLhBppk3NGeEi2WVDWGy2tJLNmZJ1ZFx9oGub25f0jyQqSiUQvi0aUiqoiXCfnecT8kRUwTT+czmu1qP6c+EhexUFdpZtdod1dIm5sfmOTi9TauiFukWlCb5097-tD0cqQ57dw+8cCz9ntY1bS1OaXPVLGaNdi2A0t8UJdBiTJUgKXQalth-D0G1Pdxmx8fximHF5O1uVJKgFAJoxCZIqChPlIhBUMngib9wP0P9F2mMtbSoSQ-xXRikQA6YUJPc50PPBBAhSYcQWBJJcmBfsshyIpxNHLsCiUIFIyCejdm4sARAAcQAUUYAB9XgAHkWAAaWIAAFABBGZ9OIfjTjQ9kW0QABaQiwmKadkhDQjgmSSpow8gIx3Ivkg17KIwSUPxNPVLMRAAVWsgARWzGH0oyADV9JYYgAElTIAOWcxshN9BB4jIsdhReSpIgjJrwlCkU-CoYKlQqQVYniRKDWS0r9IADUYCrXIw64Sm5XsFSSHtR1BQJ2r8f5Xg+KIww+YogiUQb5zaERrJYfTcpKlKnPrATvWEwV-nBUdR0HZqRTDNaNuqZJtu+vaDphLjf0oPTTKMxgwbsgzJsEtzMIQd4gi6ypRNBO4BWeT6wm+37dtmuoYQ8VAIDgbwgazGh6CYVgOC4WA+B-T1Yem-wxUe3sij6uIOujUSeSCKF-MFXlAmBQ6EQXXi0UGA5QJxDEmbu6q-mHVT+oTEIYkIkK5N+K9ARUeIIlHNQRUqcXtP-FFdRl0YqG3RWz2qkIkdeP5XmKEEFujUckZ+0dnj5DGewCC3geza3pYV1DmeEjzAmRlQkz8acgg+ebQqqKhGqFCNIkiIUkmhVUGPDq3c2XH8nVNdcDytR2qvcmrIx5TmhUBJIk6+XXbliLrB369SDZTgGS60svmLzKusTA8eG7hzl-l7YoqKIxUShKJ83n7tOnnC7bwkHMOKcnyvS-t5Z55ZhBin+ajfIxsUIWjfy5pSXlFVDAfQ8Bn8T6ls+c8Y5KybvHUIhE4gqFSAqPqfIdY-HejvWIlFqh8gesfSWkcoBXzjgLROydU7pzBKFdaoQc6XjBOGEUGC2g4OqvHFQV5gpJyTIQoUxDdZeVeJFD4zUIypGKD-OoQA */
223+
createMachine(
222224
{
223-
tsTypes: {} as import("./workspacesXService.typegen").Typegen1,
224-
schema: {
225-
context: {} as WorkspacesContext,
226-
events: {} as WorkspacesEvent,
227-
services: {} as {
228-
getWorkspaces: {
229-
data: TypesGen.Workspace[]
230-
}
225+
tsTypes: {} as import("./workspacesXService.typegen").Typegen1,
226+
schema: {
227+
context: {} as WorkspacesContext,
228+
events: {} as WorkspacesEvent,
229+
services: {} as {
230+
getWorkspaces: {
231+
data: TypesGen.Workspace[]
232+
}
231233
getWorkspacesCount: {
232234
data: { count: number }
233235
}
234-
updateWorkspaceRefs: {
235-
data: {
236-
refsToKeep: WorkspaceItemMachineRef[]
237-
newWorkspaces: TypesGen.Workspace[]
238-
}
236+
updateWorkspaceRefs: {
237+
data: {
238+
refsToKeep: WorkspaceItemMachineRef[]
239+
newWorkspaces: TypesGen.Workspace[]
239240
}
240-
},
241+
}
241242
},
242-
predictableActionArguments: true,
243-
id: "workspacesState",
244-
on: {
245-
GET_WORKSPACES: {
246-
actions: "assignFilter",
247-
target: "gettingWorkspaces",
248-
internal: false,
249-
},
250-
UPDATE_VERSION: {
251-
actions: "triggerUpdateVersion",
252-
},
253-
NEXT: {
254-
actions: ["assignNextPage", "onPageChange"],
255-
target: "gettingWorkspaces",
256-
},
257-
PREVIOUS: {
258-
actions: ["assignPreviousPage", "onPageChange"],
259-
target: "gettingWorkspaces",
260-
},
261-
GO_TO_PAGE: {
262-
actions: ["assignPage", "onPageChange"],
263-
target: "gettingWorkspaces",
243+
},
244+
predictableActionArguments: true,
245+
id: "workspacesState",
246+
on: {
247+
GET_WORKSPACES: {
248+
target: ".fetching",
249+
actions: "assignFilter",
250+
},
251+
UPDATE_VERSION: {
252+
actions: "triggerUpdateVersion",
253+
},
254+
NEXT: {
255+
target: ".fetching",
256+
actions: ["assignNextPage", "onPageChange"],
257+
},
258+
PREVIOUS: {
259+
target: ".fetching",
260+
actions: ["assignPreviousPage", "onPageChange"],
261+
},
262+
GO_TO_PAGE: {
263+
target: ".fetching",
264+
actions: ["assignPage", "onPageChange"],
265+
},
266+
},
267+
initial: "fetching",
268+
states: {
269+
waitToRefreshWorkspaces: {
270+
after: {
271+
"5000": {
272+
target: "#workspacesState.fetching",
273+
actions: [],
274+
internal: false,
275+
},
264276
},
265277
},
266-
initial: "gettingWorkspaces",
267-
states: {
268-
gettingWorkspaces: {
269-
entry: "clearGetWorkspacesError",
270-
invoke: {
271-
src: "getWorkspaces",
272-
id: "getWorkspaces",
273-
onDone: [
274-
{
275-
actions: "assignWorkspaceRefs",
276-
cond: "isEmpty",
277-
target: "waitToRefreshWorkspaces",
278-
},
279-
{
280-
target: "updatingWorkspaceRefs",
278+
fetching: {
279+
type: "parallel",
280+
states: {
281+
count: {
282+
initial: "gettingCount",
283+
states: {
284+
gettingCount: {
285+
entry: "clearGetCountError",
286+
invoke: {
287+
src: "getWorkspacesCount",
288+
id: "getWorkspacesCount",
289+
onDone: [
290+
{
291+
target: "done",
292+
actions: "assignCount",
293+
},
294+
],
295+
onError: [
296+
{
297+
target: "done",
298+
actions: "assignGetCountError",
299+
},
300+
],
301+
},
281302
},
282-
],
283-
onError: [
284-
{
285-
actions: "assignGetWorkspacesError",
286-
target: "waitToRefreshWorkspaces",
303+
done: {
304+
type: "final",
287305
},
288-
],
306+
},
289307
},
290-
},
291-
updatingWorkspaceRefs: {
292-
invoke: {
293-
src: "updateWorkspaceRefs",
294-
id: "updateWorkspaceRefs",
295-
onDone: [
296-
{
297-
actions: "assignUpdatedWorkspaceRefs",
298-
target: "waitToRefreshWorkspaces",
308+
workspaces: {
309+
initial: "gettingWorkspaces",
310+
states: {
311+
updatingWorkspaceRefs: {
312+
invoke: {
313+
src: "updateWorkspaceRefs",
314+
id: "updateWorkspaceRefs",
315+
onDone: [
316+
{
317+
target: "done",
318+
actions: "assignUpdatedWorkspaceRefs"
319+
},
320+
],
321+
},
322+
},
323+
gettingWorkspaces: {
324+
entry: "clearGetWorkspacesError",
325+
invoke: {
326+
src: "getWorkspaces",
327+
id: "getWorkspaces",
328+
onDone: [
329+
{
330+
target: "done",
331+
cond: "isEmpty",
332+
actions: "assignWorkspaceRefs",
333+
},
334+
{
335+
target: "updatingWorkspaceRefs",
336+
},
337+
],
338+
onError: [
339+
{
340+
target: "done",
341+
actions: "assignGetWorkspacesError",
342+
},
343+
],
344+
},
345+
},
346+
done: {
347+
type: "final",
299348
},
300-
],
301-
},
302-
},
303-
waitToRefreshWorkspaces: {
304-
after: {
305-
"5000": {
306-
target: "gettingWorkspaces",
307349
},
308350
},
309351
},
352+
onDone: {
353+
target: "waitToRefreshWorkspaces",
354+
},
310355
},
311356
},
357+
},
312358
{
313359
guards: {
314360
isEmpty: (context) => !context.workspaceRefs,

0 commit comments

Comments
 (0)