Skip to content

Commit

Permalink
fix(MyLocation): user location functionality (#364)
Browse files Browse the repository at this point in the history
the show my location functionality was broken, prob. due to dependency
updates, the slot property was not working anymore.

It was changed to use templates, #activator and v-on as described in the
vuetify 1.5 docs:
https://v15.vuetifyjs.com/en/components/lists#examples

Minor style change to use "dropdown" menu instead of separate buttons.
  • Loading branch information
TheGreatRefrigerator committed May 30, 2023
2 parents 6e4d420 + 8fa67ac commit 5e41779
Showing 1 changed file with 46 additions and 28 deletions.
74 changes: 46 additions & 28 deletions src/fragments/map-view/components/my-location/MyLocation.vue
Original file line number Diff line number Diff line change
@@ -1,34 +1,52 @@
<template>
<div style="height:0">
<v-menu class="my-location-floating-menu" style="box-shadow:none" transition="slide-y-transition" v-model="menuOpen" attach="body"
:close-on-click="true"
top offset-y
:close-on-content-click="true" >

<v-btn slot="activator" v-if="locationActive"
v-smart-tooltip="{show: toolTipVisible, text: $t('myLocation.myPositionToolTip'), position: 'left', dark: true, showOnce: true, name: 'useMyLocation', forceShow: showTooltip}" small fab
class="my-location-btn" @click.stop="activatorClicked()"
:title="$t('myLocation.stopShowingCurrentLocation')">
<v-icon large :color="continuously === true ? 'primary' : 'dark'" >my_location</v-icon>
</v-btn>
<v-btn slot="activator" @click.stop="activatorClicked()" v-else
small fab class="my-location-btn"
v-smart-tooltip="{show: toolTipVisible, text: $t('myLocation.myPositionToolTip'), dark: true, showOnce: true, name: 'useMyLocation', forceShow: showTooltip}"
:title="$t('myLocation.showCurrentLocation')">
<v-menu border-radius top offset-y style="box-shadow:none" transition="slide-y-transition"
v-model="menuOpen"
close-on-click
close-on-content-click>
<template #activator="{ on: menu }">
<v-btn v-if="locationActive"
v-on="menu"
small fab
class="my-location-btn" @click.stop="activatorClicked()"
:title="$t('myLocation.stopShowingCurrentLocation')">
<v-icon large :color="continuously === true ? 'primary' : 'dark'" >my_location</v-icon>
</v-btn>
<v-btn @click.stop="activatorClicked()"
v-on="menu"
v-else
small fab class="my-location-btn"
:title="$t('myLocation.showCurrentLocation')">
<v-icon large color="dark" >person_pin_circle</v-icon>
</v-btn>

<v-list v-if="!locationActive" light style="background:transparent; box-shadow:none" class="input-pop-up-list">
<div class="text-xs-right">
<v-btn round style="text-transform:initial" :title="$t('myLocation.continuouslyLocation')" @click="setLocationFromBrowser(true)" >{{$t('myLocation.continuously')}}
<v-icon color="primary" >autorenew</v-icon>
</v-btn>
</div>
<div class="text-xs-right">
<v-btn round style="text-transform:initial" :title="$t('myLocation.onlyOnceLocation')" @click="setLocationFromBrowser()" >{{$t('myLocation.onlyOnce')}}
<v-icon color="primary" >play_for_work</v-icon>
</v-btn>
</div>
</v-btn>
</template>
<v-list v-if="!locationActive" light style="border-radius: 20px" class="input-pop-up-list">
<v-list-tile key="1" @click="setLocationFromBrowser(true)">
<v-tooltip top>
<template v-slot:activator="{ on }">
<v-list-tile-content v-on="on">
<v-list-tile-title v-text="$t('myLocation.continuously')"/>
</v-list-tile-content>
</template>
<span>{{$t('myLocation.continuouslyLocation')}}</span>
</v-tooltip>
<v-list-tile-avatar>
<v-icon color="primary">autorenew</v-icon>
</v-list-tile-avatar>
</v-list-tile>
<v-list-tile key="2" @click="setLocationFromBrowser()">
<v-tooltip top>
<template v-slot:activator="{ on }">
<v-list-tile-content v-on="on">
<v-list-tile-title v-text="$t('myLocation.onlyOnce')"/>
</v-list-tile-content>
</template>
<span>{{$t('myLocation.onlyOnceLocation')}}</span>
</v-tooltip>
<v-list-tile-avatar>
<v-icon color="primary">play_for_work</v-icon>
</v-list-tile-avatar>
</v-list-tile>
</v-list>
</v-menu>
</div>
Expand Down

0 comments on commit 5e41779

Please sign in to comment.