add nova
This commit is contained in:
40
nova/resources/js/mixins/Collapsable.js
Normal file
40
nova/resources/js/mixins/Collapsable.js
Normal file
@@ -0,0 +1,40 @@
|
||||
export default {
|
||||
data: () => ({ collapsed: false }),
|
||||
|
||||
created() {
|
||||
const value = localStorage.getItem(this.localStorageKey)
|
||||
|
||||
if (value !== 'undefined') {
|
||||
this.collapsed = JSON.parse(value) ?? this.collapsedByDefault
|
||||
}
|
||||
},
|
||||
|
||||
unmounted() {
|
||||
localStorage.setItem(this.localStorageKey, this.collapsed)
|
||||
},
|
||||
|
||||
methods: {
|
||||
toggleCollapse() {
|
||||
this.collapsed = !this.collapsed
|
||||
localStorage.setItem(this.localStorageKey, this.collapsed)
|
||||
},
|
||||
},
|
||||
|
||||
computed: {
|
||||
ariaExpanded() {
|
||||
return this.collapsed === false ? 'true' : 'false'
|
||||
},
|
||||
|
||||
shouldBeCollapsed() {
|
||||
return this.collapsed
|
||||
},
|
||||
|
||||
localStorageKey() {
|
||||
return `nova.navigation.${this.item.key}.collapsed`
|
||||
},
|
||||
|
||||
collapsedByDefault() {
|
||||
return false
|
||||
},
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user