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