logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://anongit.hacktivis.me/git/pleroma-fe.git/

desktop_nav.js (3092B)


  1. import SearchBar from 'components/search_bar/search_bar.vue'
  2. import ConfirmModal from '../confirm_modal/confirm_modal.vue'
  3. import { library } from '@fortawesome/fontawesome-svg-core'
  4. import {
  5. faSignInAlt,
  6. faSignOutAlt,
  7. faHome,
  8. faComments,
  9. faBell,
  10. faUserPlus,
  11. faBullhorn,
  12. faSearch,
  13. faTachometerAlt,
  14. faCog,
  15. faInfoCircle
  16. } from '@fortawesome/free-solid-svg-icons'
  17. import { useInterfaceStore } from 'src/stores/interface'
  18. library.add(
  19. faSignInAlt,
  20. faSignOutAlt,
  21. faHome,
  22. faComments,
  23. faBell,
  24. faUserPlus,
  25. faBullhorn,
  26. faSearch,
  27. faTachometerAlt,
  28. faCog,
  29. faInfoCircle
  30. )
  31. export default {
  32. components: {
  33. SearchBar,
  34. ConfirmModal
  35. },
  36. data: () => ({
  37. searchBarHidden: true,
  38. supportsMask: window.CSS && window.CSS.supports && (
  39. window.CSS.supports('mask-size', 'contain') ||
  40. window.CSS.supports('-webkit-mask-size', 'contain') ||
  41. window.CSS.supports('-moz-mask-size', 'contain') ||
  42. window.CSS.supports('-ms-mask-size', 'contain') ||
  43. window.CSS.supports('-o-mask-size', 'contain')
  44. ),
  45. showingConfirmLogout: false
  46. }),
  47. computed: {
  48. enableMask () { return this.supportsMask && this.$store.state.instance.logoMask },
  49. logoStyle () {
  50. return {
  51. visibility: this.enableMask ? 'hidden' : 'visible'
  52. }
  53. },
  54. logoMaskStyle () {
  55. return this.enableMask
  56. ? {
  57. 'mask-image': `url(${this.$store.state.instance.logo})`
  58. }
  59. : {
  60. 'background-color': this.enableMask ? '' : 'transparent'
  61. }
  62. },
  63. logoBgStyle () {
  64. return Object.assign({
  65. margin: `${this.$store.state.instance.logoMargin} 0`,
  66. opacity: this.searchBarHidden ? 1 : 0
  67. }, this.enableMask
  68. ? {}
  69. : {
  70. 'background-color': this.enableMask ? '' : 'transparent'
  71. })
  72. },
  73. logo () { return this.$store.state.instance.logo },
  74. sitename () { return this.$store.state.instance.name },
  75. hideSitename () { return this.$store.state.instance.hideSitename },
  76. logoLeft () { return this.$store.state.instance.logoLeft },
  77. currentUser () { return this.$store.state.users.currentUser },
  78. privateMode () { return this.$store.state.instance.private },
  79. shouldConfirmLogout () {
  80. return this.$store.getters.mergedConfig.modalOnLogout
  81. }
  82. },
  83. methods: {
  84. scrollToTop () {
  85. window.scrollTo(0, 0)
  86. },
  87. showConfirmLogout () {
  88. this.showingConfirmLogout = true
  89. },
  90. hideConfirmLogout () {
  91. this.showingConfirmLogout = false
  92. },
  93. logout () {
  94. if (!this.shouldConfirmLogout) {
  95. this.doLogout()
  96. } else {
  97. this.showConfirmLogout()
  98. }
  99. },
  100. doLogout () {
  101. this.$router.replace('/main/public')
  102. this.$store.dispatch('logout')
  103. this.hideConfirmLogout()
  104. },
  105. onSearchBarToggled (hidden) {
  106. this.searchBarHidden = hidden
  107. },
  108. openSettingsModal () {
  109. useInterfaceStore().openSettingsModal('user')
  110. },
  111. openAdminModal () {
  112. useInterfaceStore().openSettingsModal('admin')
  113. }
  114. }
  115. }