import SearchBar from 'components/search_bar/search_bar.vue' import { useInterfaceStore } from 'src/stores/interface' import ConfirmModal from '../confirm_modal/confirm_modal.vue' import { library } from '@fortawesome/fontawesome-svg-core' import { faBell, faBullhorn, faCog, faComments, faHome, faInfoCircle, faSearch, faSignInAlt, faSignOutAlt, faTachometerAlt, faUserPlus, } from '@fortawesome/free-solid-svg-icons' library.add( faSignInAlt, faSignOutAlt, faHome, faComments, faBell, faUserPlus, faBullhorn, faSearch, faTachometerAlt, faCog, faInfoCircle, ) export default { components: { SearchBar, ConfirmModal, }, data: () => ({ searchBarHidden: true, supportsMask: window.CSS && window.CSS.supports && (window.CSS.supports('mask-size', 'contain') || window.CSS.supports('-webkit-mask-size', 'contain') || window.CSS.supports('-moz-mask-size', 'contain') || window.CSS.supports('-ms-mask-size', 'contain') || window.CSS.supports('-o-mask-size', 'contain')), showingConfirmLogout: false, }), computed: { enableMask() { return this.supportsMask && this.$store.state.instance.logoMask }, logoStyle() { return { visibility: this.enableMask ? 'hidden' : 'visible', } }, logoMaskStyle() { return this.enableMask ? { 'mask-image': `url(${this.$store.state.instance.logo})`, } : { 'background-color': this.enableMask ? '' : 'transparent', } }, logoBgStyle() { return Object.assign( { margin: `${this.$store.state.instance.logoMargin} 0`, opacity: this.searchBarHidden ? 1 : 0, }, this.enableMask ? {} : { 'background-color': this.enableMask ? '' : 'transparent', }, ) }, logo() { return this.$store.state.instance.logo }, sitename() { return this.$store.state.instance.name }, hideSitename() { return this.$store.state.instance.hideSitename }, logoLeft() { return this.$store.state.instance.logoLeft }, currentUser() { return this.$store.state.users.currentUser }, privateMode() { return this.$store.state.instance.private }, shouldConfirmLogout() { return this.$store.getters.mergedConfig.modalOnLogout }, }, methods: { scrollToTop() { window.scrollTo(0, 0) }, showConfirmLogout() { this.showingConfirmLogout = true }, hideConfirmLogout() { this.showingConfirmLogout = false }, logout() { if (!this.shouldConfirmLogout) { this.doLogout() } else { this.showConfirmLogout() } }, doLogout() { this.$router.replace('/main/public') this.$store.dispatch('logout') this.hideConfirmLogout() }, onSearchBarToggled(hidden) { this.searchBarHidden = hidden }, openSettingsModal() { useInterfaceStore().openSettingsModal('user') }, openAdminModal() { useInterfaceStore().openSettingsModal('admin') }, }, }