Skip to content

Commit f88c794

Browse files
authored
Merge pull request #168 from Geode-solutions/fix_viewer_size
fix(viewer): Fix the viewer responsive
2 parents 5eb1323 + d8cc179 commit f88c794

File tree

2 files changed

+40
-32
lines changed

2 files changed

+40
-32
lines changed

components/RemoteRenderingView.vue

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<ClientOnly>
3-
<div style="position: relative; width: 100%; height: 100%">
3+
<div style="position: relative; width: 100%; height: calc(100vh - 80px)">
44
<view-toolbar />
55
<slot name="ui"></slot>
66
<v-col
@@ -22,12 +22,17 @@
2222

2323
<script setup>
2424
import vtkRemoteView from "@kitware/vtk.js/Rendering/Misc/RemoteView"
25-
import { useElementSize } from "@vueuse/core"
25+
import { useElementSize, useWindowSize } from "@vueuse/core"
2626
import viewer_schemas from "@geode/opengeodeweb-viewer/schemas.json"
2727
2828
const viewer_store = use_viewer_store()
2929
const { client, is_running, picking_mode } = storeToRefs(viewer_store)
3030
31+
const viewer = ref(null)
32+
const { width, height } = useElementSize(viewer)
33+
34+
const { width: windowWidth, height: windowHeight } = useWindowSize()
35+
3136
function get_x_y(event) {
3237
if (picking_mode.value === true) {
3338
const { offsetX, offsetY } = event
@@ -43,36 +48,38 @@
4348
viewId: { type: String, default: "-1" },
4449
})
4550
46-
const viewer = ref(null)
47-
const { width, height } = useElementSize(viewer)
48-
49-
function resize() {
50-
view.getCanvasView().setSize(0, 0)
51-
view.resize()
52-
}
53-
54-
watch(picking_mode, (value) => {
55-
const cursor = value == true ? "crosshair" : "pointer"
56-
view.getCanvasView().setCursor(cursor)
57-
})
58-
watch(width, (value) => {
59-
resize()
60-
})
61-
watch(height, (value) => {
62-
resize()
63-
})
6451
const { viewId } = toRefs(props)
6552
const connected = ref(false)
6653
6754
const view = vtkRemoteView.newInstance({
6855
rpcWheelEvent: "viewport.mouse.zoom.wheel",
6956
})
70-
// default of 0.5 causes 2x size labels on high-DPI screens. 1 good for demo, not for production.
57+
7158
if (location.hostname.split(".")[0] === "localhost") {
7259
view.setInteractiveRatio(1)
7360
}
7461
75-
watch(client, (new_client) => {
62+
function resize() {
63+
if (view) {
64+
view.getCanvasView().setSize(0, 0)
65+
view.resize()
66+
}
67+
}
68+
69+
watch([windowWidth, windowHeight], () => {
70+
resize()
71+
})
72+
73+
watch(picking_mode, (value) => {
74+
const cursor = value ? "crosshair" : "pointer"
75+
view.getCanvasView().setCursor(cursor)
76+
})
77+
78+
watch([width, height], () => {
79+
resize()
80+
})
81+
82+
watch(client, () => {
7683
connect()
7784
})
7885
@@ -83,16 +90,6 @@
8390
}
8491
})
8592
86-
onMounted(async () => {
87-
if (process.client) {
88-
window.addEventListener("resize", resize)
89-
await nextTick()
90-
view.setContainer(viewer.value.$el)
91-
connect()
92-
resize()
93-
}
94-
})
95-
9693
function connect() {
9794
if (!is_running.value) {
9895
return
@@ -103,6 +100,16 @@
103100
connected.value = true
104101
view.render()
105102
}
103+
104+
onMounted(async () => {
105+
if (process.client) {
106+
window.addEventListener("resize", resize)
107+
await nextTick()
108+
view.setContainer(viewer.value.$el)
109+
connect()
110+
resize()
111+
}
112+
})
106113
</script>
107114

108115
<style scoped>

test/components/FileSelector.nuxt.test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ describe("FileSelector.vue", async () => {
123123
await flushPromises()
124124

125125
const file_uploader = wrapper.findComponent(FileUploader)
126+
console.log("wrapper", wrapper)
126127
expect(wrapper.vm.props.files).toEqual(files)
127128
const upload_files = vi.spyOn(file_uploader.vm, "upload_files")
128129
expect(upload_files).not.toHaveBeenCalled()

0 commit comments

Comments
 (0)