OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-store / store / ui-desktop / ui-modal.reducer.js

135 lines · javascript ref:
import { createSelector as e, createSlice as o } from "@reduxjs/toolkit"
import {
  UI_MODAL_STATE_KEY as s,
  UI_STATE_KEY as a,
  UI_CHAT_MESSAGE_MODAL as t,
} from "./ui.constants"
import { switchRoomSubmit as l } from "../room"
import { appRoomInvitationLinkServed as i } from "../app/app.reducer"
import { checkDevicePermissionCompleted as n } from "../media"
export const UI_MODAL_INITIAL_STATE = {
  muteMemberToggleModal: null,
  removeMemberModal: null,
  reportModal: null,
  blockMemberModal: null,
  roleResponsibilitiesModal: null,
  allRolesResponsibilitiesModalOpen: !1,
  isMigrateRecoveryPhraseModalOpen: !1,
  isInitialRoomPairingModalOpen: !1,
  isUsernameSetupModalOpen: !1,
  isUserInfoEditingModalOpen: !1,
  isTosModalOpen: !1,
  isPrivacyStatementModalOpen: !1,
  chatMessageModal: { messageId: "", memberId: "", name: t.NONE },
  systemAccessPermissionModalOpen: { microphone: !1, camera: !1, screenShare: !1 },
}
export const uiModalSlice = o({
  name: s,
  initialState: UI_MODAL_INITIAL_STATE,
  reducers: {
    setUIMuteMemberToggleModal: (e, o) => {
      e.muteMemberToggleModal = o.payload
    },
    setUIRemoveMemberModal: (e, o) => {
      e.removeMemberModal = o.payload
    },
    setUIBlockMemberModal: (e, o) => {
      e.blockMemberModal = o.payload
    },
    setRoomListResponsibilitiesModal: (e, { payload: o }) => {
      e.roleResponsibilitiesModal = o
    },
    setAllRolesResponsibilitiesModalOpen: (e, { payload: o }) => {
      e.allRolesResponsibilitiesModalOpen = o
    },
    setIsInitialRoomPairingModalOpen: (e, { payload: o }) => {
      e.isInitialRoomPairingModalOpen = o
    },
    setIsUsernameSetupModalOpen: (e, { payload: o }) => {
      e.isUsernameSetupModalOpen = o
    },
    setMigrateRecoveryPhraseModalOpen: (e, o) => {
      e.isMigrateRecoveryPhraseModalOpen = o.payload
    },
    setIsUserInfoEditingModalOpen: (e, { payload: o }) => {
      e.isUserInfoEditingModalOpen = o
    },
    setIsTosModalOpen: (e, { payload: o }) => {
      e.isTosModalOpen = o
    },
    setIsPrivacyStatementModalOpen: (e, { payload: o }) => {
      e.isPrivacyStatementModalOpen = o
    },
    setUIChatMessageModal: (e, { payload: { messageId: o, memberId: s, name: a } }) => {
      e.chatMessageModal = { messageId: o, memberId: s, name: a }
    },
    resetUIChatMessageModal: (e) => {
      e.chatMessageModal = UI_MODAL_INITIAL_STATE.chatMessageModal
    },
    closeSystemAccessPermissionModal: (e) => {
      e.systemAccessPermissionModalOpen = {
        ...UI_MODAL_INITIAL_STATE.systemAccessPermissionModalOpen,
      }
    },
  },
  extraReducers: (e) => {
    e.addCase(i, (e) => {
      e.isInitialRoomPairingModalOpen = !0
    })
      .addCase(l, (e) => {
        e.isInitialRoomPairingModalOpen = !1
      })
      .addCase(
        n,
        (e, { payload: { permission: o, isGranted: s, showPermissionDeniedModal: a } }) => {
          const t = !s
          o &&
            e.systemAccessPermissionModalOpen[o] !== t &&
            a &&
            (e.systemAccessPermissionModalOpen = {
              ...UI_MODAL_INITIAL_STATE.systemAccessPermissionModalOpen,
              [o]: t,
            })
        },
      )
  },
})
export const getUIModalState = (e) => e[a][s]
export const getUIMuteMemberToggleModal = (e) => getUIModalState(e).muteMemberToggleModal
export const getUIRemoveMemberModal = (e) => getUIModalState(e).removeMemberModal
export const getUIChatMessageModal = (e) => getUIModalState(e).chatMessageModal
export const getUIBlockMemberModal = (e) => getUIModalState(e).blockMemberModal
export const getIsMigrateRecoveryPhraseModalOpen = (e) =>
  getUIModalState(e).isMigrateRecoveryPhraseModalOpen
export const getRoomListResponsibilitiesModal = (e) => getUIModalState(e).roleResponsibilitiesModal
export const getAllRolesResponsibilitiesModalOpen = (e) =>
  getUIModalState(e).allRolesResponsibilitiesModalOpen
export const getIsInitialRoomPairingModalOpen = (e) =>
  getUIModalState(e).isInitialRoomPairingModalOpen
export const getIsUsernameSetupModalOpen = (e) => getUIModalState(e).isUsernameSetupModalOpen
export const getIsUserInfoEditingModalOpen = (e) => getUIModalState(e).isUserInfoEditingModalOpen
export const getIsTosModalOpen = (e) => getUIModalState(e).isTosModalOpen
export const getIsPrivacyStatementModalOpen = (e) => getUIModalState(e).isPrivacyStatementModalOpen
export const getOpenSystemAccessPermission = e([getUIModalState], (e) => {
  const { systemAccessPermissionModalOpen: o } = e
  return Object.keys(o).find((e) => !0 === o[e]) || null
})
export const {
  setUIMuteMemberToggleModal: setUIMuteMemberToggleModal,
  setUIRemoveMemberModal: setUIRemoveMemberModal,
  setUIBlockMemberModal: setUIBlockMemberModal,
  setRoomListResponsibilitiesModal: setRoomListResponsibilitiesModal,
  setAllRolesResponsibilitiesModalOpen: setAllRolesResponsibilitiesModalOpen,
  setIsInitialRoomPairingModalOpen: setIsInitialRoomPairingModalOpen,
  setIsUsernameSetupModalOpen: setIsUsernameSetupModalOpen,
  setMigrateRecoveryPhraseModalOpen: setMigrateRecoveryPhraseModalOpen,
  setIsUserInfoEditingModalOpen: setIsUserInfoEditingModalOpen,
  setUIChatMessageModal: setUIChatMessageModal,
  setIsTosModalOpen: setIsTosModalOpen,
  setIsPrivacyStatementModalOpen: setIsPrivacyStatementModalOpen,
  resetUIChatMessageModal: resetUIChatMessageModal,
  closeSystemAccessPermissionModal: closeSystemAccessPermissionModal,
} = uiModalSlice.actions
export const getUIModalInitialState = uiModalSlice.getInitialState
export const uiModalReducer = uiModalSlice.reducer