mirror of
https://github.com/filebrowser/filebrowser.git
synced 2025-05-08 19:22:57 +00:00

Former-commit-id: ec2f7562e0830ebb98bc7b4d997d74f2e6d685a6 [formerly 281a652559131d195b76feefef5cf0303d312b1e] [formerly 11a192c2d6f5d9667c55fdcf3f028391f70f6793 [formerly d3d3cb3d4f43761db209450673554814094d37cf]] Former-commit-id: a55ef038e404c2e9b97a802bfbf562fac02a98cc [formerly 033ded413b4f7bd21b7ff60feced6b590203cc16] Former-commit-id: 6fc7fedc5fc087790102a07c3db3060e82400411
37 lines
1010 B
Vue
37 lines
1010 B
Vue
<template>
|
|
<button @click="change" :aria-label="$t('buttons.switchView')" :title="$t('buttons.switchView')" class="action" id="switch-view-button">
|
|
<i class="material-icons">{{ icon }}</i>
|
|
<span>{{ $t('buttons.switchView') }}</span>
|
|
</button>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapState, mapMutations } from 'vuex'
|
|
import { updateUser } from '@/utils/api'
|
|
|
|
export default {
|
|
name: 'switch-button',
|
|
computed: {
|
|
...mapState(['user']),
|
|
icon: function () {
|
|
if (this.user.viewMode === 'mosaic') return 'view_list'
|
|
return 'view_module'
|
|
}
|
|
},
|
|
methods: {
|
|
...mapMutations(['updateUser']),
|
|
change: function (event) {
|
|
// If we are on mobile we should close the dropdown.
|
|
this.$store.commit('closeHovers')
|
|
|
|
let user = {...this.user}
|
|
user.viewMode = (this.icon === 'view_list') ? 'list' : 'mosaic'
|
|
|
|
updateUser(user, 'partial').then(() => {
|
|
this.updateUser({ viewMode: user.viewMode })
|
|
}).catch(this.$showError)
|
|
}
|
|
}
|
|
}
|
|
</script>
|