sidebars.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /* eslint no-param-reassign: 0 */
  2. const state = {
  3. sidebars: {
  4. station: {
  5. songslist: false,
  6. users: false
  7. }
  8. },
  9. currentlyActive: {}
  10. };
  11. const getters = {};
  12. const actions = {
  13. toggleSidebar: ({ commit }, data) => {
  14. commit("toggleSidebar", data);
  15. },
  16. openSidebar: ({ commit }, data) => {
  17. commit("openSidebar", data);
  18. },
  19. closeCurrentSidebar: ({ commit }) => {
  20. commit("closeCurrentSidebar");
  21. }
  22. };
  23. const mutations = {
  24. toggleSidebar(state, data) {
  25. const { sector, sidebar } = data;
  26. if (
  27. state.currentlyActive.sidebar &&
  28. state.currentlyActive.sidebar !== sidebar
  29. ) {
  30. state.sidebars[state.currentlyActive.sector][
  31. state.currentlyActive.sidebar
  32. ] = false;
  33. state.currentlyActive = {};
  34. }
  35. state.sidebars[sector][sidebar] = !state.sidebars[sector][sidebar];
  36. if (state.sidebars[sector][sidebar])
  37. state.currentlyActive = { sector, sidebar };
  38. },
  39. openSidebar(state, data) {
  40. const { sector, sidebar } = data;
  41. state.sidebars[sector][sidebar] = true;
  42. state.currentlyActive = { sector, sidebar };
  43. },
  44. closeCurrentSidebar(state) {
  45. const { sector, sidebar } = state.currentlyActive;
  46. state.sidebars[sector][sidebar] = false;
  47. state.currentlyActive = {};
  48. }
  49. };
  50. export default {
  51. namespaced: true,
  52. state,
  53. getters,
  54. actions,
  55. mutations
  56. };