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