import { createSlice, PayloadAction } from "@reduxjs/toolkit";

interface ModalState {
    ReelDetail: any;
    AddPostModal: boolean;
    ShareStory: boolean;
    Story: boolean;
    AddStory: boolean;
    ViewStory: boolean;
    ViewOtherUsersStory: boolean;
    DeleteMyStory: boolean;
    DeleteMyStoryConfirmation: boolean;
    TagPeople: boolean; 
    TaggedPeopleList: boolean;
    PostTagPeople: boolean;
    ShareReel: boolean;
    SharePost: boolean;
    ReelReportText: boolean;
    OpenVideoFromChat: boolean;
    OpenImageFromChat: boolean;
    DeletePost: boolean;
    Language: boolean;
    ReelReportSuccess: boolean;
    BlockConfirmation: boolean;
    UserAccountSwitcher: boolean;
    ChatPopup: boolean;
    UnblockConfirmation: boolean;
    PostReportSuccess: boolean;
    LikeModal: boolean;
    
}

const initialState: ModalState = {
    AddPostModal: false,
    ShareStory: false,
    Story: false,
    AddStory: false,
    ViewStory: false,
    ViewOtherUsersStory: false,
    DeleteMyStoryConfirmation: false,
    DeleteMyStory: false,
    TagPeople: false,
    TaggedPeopleList: false,
    PostTagPeople: false,
    ShareReel: false,
    SharePost: false,
    ReelReportText: false,
    OpenVideoFromChat: false,
    OpenImageFromChat: false,
    DeletePost: false,
    Language: false,
    ReelReportSuccess: false,
    BlockConfirmation: false,
    UserAccountSwitcher: false,
    ChatPopup: false,
    UnblockConfirmation: false,
    PostReportSuccess: false,
    LikeModal: false,
    
}

const modalSlice = createSlice({
    name: "modals",
    initialState,
    reducers: {
        showModal: (state, action: PayloadAction<keyof ModalState>) => {
            state[action.payload] = true;
        },
        hideModal: (state, action: PayloadAction<keyof ModalState>) => {
            state[action.payload] = false;
        },
    },
});

export const { showModal, hideModal } = modalSlice.actions;
export default modalSlice.reducer;