Skip to content

Commit 667d99a

Browse files
feat(getters): add getters for busy services
1 parent cfe0858 commit 667d99a

File tree

3 files changed

+54
-22
lines changed

3 files changed

+54
-22
lines changed

stores/cloud.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ export const use_cloud_store = defineStore('cloud', {
2626
viewer_url = viewer_url + '/ws'
2727
return viewer_url
2828
},
29+
api_busy: (state) => {
30+
return state.request_counter > 0
31+
}
2932
},
3033
actions: {
3134
async create_connexion () {

stores/viewer.js

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,128 +19,146 @@ export const use_viewer_store = defineStore('viewer', {
1919
async create_object_pipeline (params) {
2020
const websocket_store = use_websocket_store()
2121
if (websocket_store.client) {
22-
use_websocket_store().client
22+
websocket_store.start_request()
23+
websocket_store.client
2324
.getRemote()
2425
.vtk.create_object_pipeline(params)
2526
.catch(console.error);
27+
websocket_store.stop_request()
2628
}
2729
},
2830
async delete_object_pipeline (params) {
2931
const websocket_store = use_websocket_store()
3032
if (websocket_store.client) {
31-
use_websocket_store().client
33+
websocket_store.start_request()
34+
websocket_store.client
3235
.getRemote()
3336
.vtk.delete_object_pipeline(params)
3437
.catch(console.error);
38+
websocket_store.stop_request()
3539
}
3640
},
3741
async reset_camera () {
3842
const websocket_store = use_websocket_store()
3943
if (websocket_store.client) {
40-
use_websocket_store().client
44+
websocket_store.start_request()
45+
websocket_store.client
4146
.getRemote()
4247
.vtk.reset_camera()
4348
.catch(console.error);
49+
websocket_store.stop_request()
4450
}
4551
},
4652
async toggle_object_visibility (params) {
4753
const websocket_store = use_websocket_store()
4854
if (websocket_store.client) {
49-
use_websocket_store().client
55+
websocket_store.start_request()
56+
websocket_store.client
5057
.getRemote()
5158
.vtk.toggle_object_visibility(params)
5259
.catch(console.error);
60+
websocket_store.stop_request()
5361
}
5462
},
5563
async toggle_edge_visibility (params) {
5664
const websocket_store = use_websocket_store()
5765
if (websocket_store.client) {
58-
use_websocket_store().client
66+
websocket_store.start_request()
67+
websocket_store.client
5968
.getRemote()
6069
.vtk.toggle_edge_visibility(params)
6170
.catch(console.error);
71+
websocket_store.stop_request()
6272
}
6373
},
6474
async toggle_point_visibility (params) {
6575
const websocket_store = use_websocket_store()
6676
if (websocket_store.client) {
67-
use_websocket_store().client
77+
websocket_store.start_request()
78+
websocket_store.client
6879
.getRemote()
6980
.vtk.toggle_point_visibility(params)
7081
.catch(console.error);
82+
websocket_store.stop_request()
7183
}
7284
},
7385
async point_size (params) {
7486
const websocket_store = use_websocket_store()
7587
if (websocket_store.client) {
76-
use_websocket_store().client
88+
websocket_store.start_request()
89+
websocket_store.client
7790
.getRemote()
7891
.vtk.point_size(params)
7992
.catch(console.error);
93+
websocket_store.stop_request()
8094
}
8195
},
8296
async set_color (params) {
8397
const websocket_store = use_websocket_store()
8498
if (websocket_store.client) {
85-
use_websocket_store().client
99+
websocket_store.start_request()
100+
websocket_store.client
86101
.getRemote()
87102
.vtk.set_color(params)
88103
.catch(console.error);
104+
websocket_store.stop_request()
89105
}
90106
},
91107
async set_vertex_attribute (params) {
92108
const websocket_store = use_websocket_store()
93109
if (websocket_store.client) {
94-
use_websocket_store().client
110+
websocket_store.start_request()
111+
websocket_store.client
95112
.getRemote()
96113
.vtk.set_vertex_attribute(params)
97114
.catch(console.error);
115+
websocket_store.stop_request()
98116
}
99117
},
100118
async apply_textures (params) {
101119
const websocket_store = use_websocket_store()
102120
if (websocket_store.client) {
103-
websocket_store.$patch({ busy: true })
104-
use_websocket_store().client
121+
websocket_store.start_request()
122+
websocket_store.client
105123
.getRemote()
106124
.vtk.apply_textures(params)
107125
.catch(console.error);
108-
websocket_store.$patch({ busy: false })
126+
websocket_store.stop_request()
109127
}
110128
},
111129
async get_point_position (params) {
112130
const websocket_store = use_websocket_store()
113131
if (websocket_store.client) {
114-
websocket_store.$patch({ busy: true })
115-
const response = await use_websocket_store().client
132+
websocket_store.start_request()
133+
const response = await websocket_store.client
116134
.getRemote()
117135
.vtk.get_point_position(params)
118136
.catch(console.error);
119-
websocket_store.$patch({ busy: false })
137+
websocket_store.stop_request()
120138
return response
121139
}
122140
},
123141
async update_data (params) {
124142
const websocket_store = use_websocket_store()
125143
if (websocket_store.client) {
126-
websocket_store.$patch({ busy: true })
127-
const response = await use_websocket_store().client
144+
websocket_store.start_request()
145+
const response = await websocket_store.client
128146
.getRemote()
129147
.vtk.update_data(params)
130148
.catch(console.error);
131-
websocket_store.$patch({ busy: false })
149+
websocket_store.stop_request()
132150
return response
133151
}
134152
},
135153
async reset () {
136154
const websocket_store = use_websocket_store()
137155
if (websocket_store.client) {
138-
websocket_store.$patch({ busy: true })
139-
const response = await use_websocket_store().client
156+
websocket_store.start_request()
157+
const response = await websocket_store.client
140158
.getRemote()
141159
.vtk.reset()
142160
.catch(console.error);
143-
websocket_store.$patch({ busy: false })
161+
websocket_store.stop_request()
144162
return response
145163
}
146164
}

stores/websocket.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,14 @@ export const use_websocket_store = defineStore('websocket', {
1616
state: () => ({
1717
client: {},
1818
config: null,
19-
busy: false,
19+
request_counter: 0,
2020
is_client_created: false
2121
}),
22+
getters: {
23+
websocket_busy: (state) => {
24+
return state.request_counter > 0
25+
}
26+
},
2227
actions: {
2328
ws_connect () {
2429
const config = { application: 'cone' };
@@ -91,4 +96,10 @@ export const use_websocket_store = defineStore('websocket', {
9196
}
9297
},
9398
},
99+
start_request (state) {
100+
state.request_counter++
101+
},
102+
stop_request (state) {
103+
state.request_counter--
104+
}
94105
})

0 commit comments

Comments
 (0)