|
14 | 14 | " |
15 | 15 | class="pa-0" |
16 | 16 | @click="get_x_y" |
17 | | - @keydown.esc="app_store.toggle_picking_mode(false)" |
| 17 | + @keydown.esc="viewer_store.toggle_picking_mode(false)" |
18 | 18 | /> |
19 | 19 | </div> |
20 | 20 | </ClientOnly> |
|
25 | 25 | import { useElementSize, useWindowSize } from "@vueuse/core" |
26 | 26 | import viewer_schemas from "@geode/opengeodeweb-viewer/schemas.json" |
27 | 27 |
|
28 | | - const viewer_store = use_viewer_store() |
29 | | - const { client, is_running, picking_mode } = storeToRefs(viewer_store) |
| 28 | + const props = defineProps({ |
| 29 | + viewId: { type: String, default: "-1" }, |
| 30 | + }) |
30 | 31 |
|
31 | | - const viewer = ref(null) |
| 32 | + const viewer_store = use_viewer_store() |
| 33 | + const viewer = useTemplateRef("viewer") |
32 | 34 | const { width, height } = useElementSize(viewer) |
33 | 35 |
|
34 | 36 | const { width: windowWidth, height: windowHeight } = useWindowSize() |
|
44 | 46 | } |
45 | 47 | } |
46 | 48 |
|
47 | | - const props = defineProps({ |
48 | | - viewId: { type: String, default: "-1" }, |
49 | | - }) |
50 | | -
|
51 | | - const { viewId } = toRefs(props) |
52 | 49 | const connected = ref(false) |
53 | | -
|
54 | 50 | const view = vtkRemoteView.newInstance({ |
55 | 51 | rpcWheelEvent: "viewport.mouse.zoom.wheel", |
56 | 52 | }) |
|
70 | 66 | resize() |
71 | 67 | }) |
72 | 68 |
|
73 | | - watch(picking_mode, (value) => { |
74 | | - const cursor = value ? "crosshair" : "pointer" |
75 | | - view.getCanvasView().setCursor(cursor) |
76 | | - }) |
| 69 | + watch( |
| 70 | + () => viewer_store.picking_mode, |
| 71 | + (value) => { |
| 72 | + const cursor = value ? "crosshair" : "pointer" |
| 73 | + view.getCanvasView().setCursor(cursor) |
| 74 | + }, |
| 75 | + ) |
77 | 76 |
|
78 | 77 | watch([width, height], () => { |
79 | 78 | resize() |
80 | 79 | }) |
81 | 80 |
|
82 | | - watch(client, () => { |
83 | | - connect() |
84 | | - }) |
85 | | -
|
86 | | - watch(viewId, (id) => { |
87 | | - if (connected.value) { |
88 | | - view.setViewId(id) |
89 | | - view.render() |
90 | | - } |
91 | | - }) |
| 81 | + watch( |
| 82 | + () => viewer_store.client, |
| 83 | + () => { |
| 84 | + connect() |
| 85 | + }, |
| 86 | + ) |
| 87 | +
|
| 88 | + watch( |
| 89 | + () => props.viewId, |
| 90 | + (id) => { |
| 91 | + if (connected.value) { |
| 92 | + view.setViewId(id) |
| 93 | + view.render() |
| 94 | + } |
| 95 | + }, |
| 96 | + ) |
92 | 97 |
|
93 | 98 | function connect() { |
94 | 99 | if (!is_running.value) { |
95 | 100 | return |
96 | 101 | } |
97 | 102 | const session = client.value.getConnection().getSession() |
98 | 103 | view.setSession(session) |
99 | | - view.setViewId(viewId.value) |
| 104 | + view.setViewId(props.viewId) |
100 | 105 | connected.value = true |
101 | 106 | view.render() |
102 | 107 | } |
|
0 commit comments