Vue computed method not firing the second time

I have a slight issue with one of my Vue components computed property.

It gets called here:

<GMap class="c-splitview__map" :markers="getMarkers" :position="currentPosition" :zoom="currentZoom" v-if="currentPosition" />
<div class="m-storefinder__placeholder" v-else>
  <h1 class="o-headline">{{$tc("storefinder.emptyDeeplink")}}</h1>
</div>

Data() looks like this:

data() {
  return {
    numberOfRestaurants : null,
    currentRestaurant: null,
    showRestaurants: false,
    lastLocation : null,
    storeWasOpen: false,
    instanceData: false,
    currentSearch: '',
    searchRadius: 10,
    restaurants: [],
    searchPosition: {
      lat: null,
      lon: null
    },
    store : false
  }
},

And the Computed method looks like this:

computed: {
  currentPosition () {
    if(this.storeWasOpen){
      this.storeWasOpen = false;
      return this.get_last_location()
    }

    if (this.currentRestaurant) {
      return this.currentRestaurant.address.location
    } else if (this.searchPosition.lat && this.searchPosition.lon) {
      return this.searchPosition;
    } else {
      return null;
    }
  },
}

The problem is, when it gets called first time, it works fine, however, when it gets called the second time, the function does not get called at all.

So the scenario is:

  • User searches for a restaurant on the GMAP
  • The map with the restaurants loads
  • User clicks on one of the restaurants (pins) User clicks back on the map
  • Now user tries searching for a new location
  • The map loads the new location but the map does not relocate to the new coordinates but stays in the same place the user searched from

I think it has something to do with the way computed methods can be written, but I am not sure what am I missing.