Files
speckle-server/packages/frontend-2/components/viewer/settings/Menu.vue
T
andrewwallacespeckle 9f4b0c99da Dialog Consistency Task (#1852)
* Fixing up "Manage Project" & "New Project" Dialogs

* Dialog Updates

* Updates from tickets

* Remove sidepanel

* Remove max-height prop from Dialog component

* Updates to Profile Dialog

* Props for Buttons in Dialog. Attachment Dialog

* Remove margin to show issue with dialogs

* Update to stories

* Responsive updates

* Fix overflow on MoveTo

* Use Dialog header prop

* Dialog updates

* Responsive Changes

* Responsive fixes

* Small responsive change

* Fixes

* Type based declaration

* Last fixes

* Small darkmode fixes

* Updated type

* Update

* Updates from PR comments

* Fix storybook issues

* Updates from PR

* Updates from PR

* Changes from Agi

* Turntable mode Toggle

* Fix dialog shadows on scroll

* Fix invite autocomplete

* Changes from PR Comments

* Small styling updates

* Responsive views

* Adjust Danger zones

* Fix typo

* New Webhook Icon. Swap icon prop to slot.

* Adjust Icon weights

* FE2-TASK-27

* FE2-TASK-26

* FE2-TASK-28
2023-11-07 11:18:25 +00:00

54 lines
1.4 KiB
Vue

<template>
<ViewerControlsButtonToggle
v-tippy="'Free Orbit'"
flat
:active="!localViewerSettings.turntableMode"
secondary
@click="toggleTurntableMode()"
>
<IconFreeOrbit class="h-5 w-5" />
</ViewerControlsButtonToggle>
</template>
<script setup lang="ts">
import { useSynchronizedCookie } from '~~/lib/common/composables/reactiveCookie'
import { useInjectedViewer } from '~~/lib/viewer/composables/setup'
type ViewerUserSettings = {
turntableMode: boolean
}
const localViewerSettings = useSynchronizedCookie<ViewerUserSettings>(
`localViewerSettings`,
{
default: () => {
return { turntableMode: false }
}
}
)
const { instance } = useInjectedViewer()
const setViewerCameraHandlerControlsMaxPolarAngle = (angle: number) => {
instance.cameraHandler.controls.maxPolarAngle = angle
}
const toggleTurntableMode = () => {
localViewerSettings.value = {
...localViewerSettings.value,
turntableMode: !localViewerSettings.value.turntableMode
}
if (localViewerSettings.value.turntableMode) {
setViewerCameraHandlerControlsMaxPolarAngle(Math.PI / 2)
} else {
setViewerCameraHandlerControlsMaxPolarAngle(Math.PI)
}
}
onMounted(() => {
if (localViewerSettings.value.turntableMode) {
setViewerCameraHandlerControlsMaxPolarAngle(Math.PI / 2)
} else {
setViewerCameraHandlerControlsMaxPolarAngle(Math.PI)
}
})
</script>