import { InitialChannelConversation } from 'api' import { useAppDispatch } from 'domains/store' import { addEvent, clearAllUploads, clearEvents, clearFeatures, clearIdleDetachCountdown, clearResumeConversationPrompt, decrementIdleDetachCountdownCounter, hideOption, initIdleDetachCountdown, initResumeConversationPrompt, registerUpload, setActiveEntryType, setActiveService, setBlockAutoEntrySwitch, setEventsRead, setFeatureEnabledState, setFeatures, setHeaderSubTitle, setHeaderTitle, setInitialState, setIsLoading, setLoadedImageEventIds, setParticipant, setSeamlyContainerElement, setServiceDataItem, setServiceEntryMetadata, setUploadComplete, setUploadError, setUploadProgress, setUserEntryType, setUserSelectedOption, setUserSelectedOptions, showOption, stopIdleDetachCountdownCounter, } from 'domains/store/slice' import { ChannelEvent, CurrentUploadPayload, MessageParticipant, ServiceInfo, } from 'domains/store/store.types' export const useSeamlyActions = () => { const dispatch = useAppDispatch() return { addEvent: (event: ChannelEvent) => dispatch(addEvent(event)), clearEvents: () => dispatch(clearEvents()), setEventsRead: (payload: string[]) => dispatch(setEventsRead(payload)), setLoadedImageEventIds: (ids: string[]) => dispatch(setLoadedImageEventIds(ids)), setIsLoading: (isLoading: boolean) => dispatch(setIsLoading(isLoading)), setParticipant: (participant: MessageParticipant) => dispatch(setParticipant(participant)), setHeaderTitle: (title: string) => dispatch(setHeaderTitle(title)), setHeaderSubTitle: (title: string) => dispatch(setHeaderSubTitle(title)), setActiveService: (service: ServiceInfo['activeServiceSessionId']) => dispatch(setActiveService(service)), initIdleDetachCountdown: (payload) => dispatch(initIdleDetachCountdown(payload)), decrementIdleDetachCountdownCounter: () => dispatch(decrementIdleDetachCountdownCounter()), stopIdleDetachCountdownCounter: () => dispatch(stopIdleDetachCountdownCounter()), clearIdleDetachCountdown: () => dispatch(clearIdleDetachCountdown()), initResumeConversationPrompt: () => dispatch(initResumeConversationPrompt()), clearResumeConversationPrompt: () => dispatch(clearResumeConversationPrompt()), setServiceDataItem: (payload) => dispatch(setServiceDataItem(payload)), setFeatures: (payload) => dispatch(setFeatures(payload)), setFeatureEnabledState: (payload) => dispatch(setFeatureEnabledState(payload)), clearFeatures: () => dispatch(clearFeatures()), setInitialState: (initialState: InitialChannelConversation) => dispatch(setInitialState(initialState)), setUserSelectedOptions: (payload) => dispatch(setUserSelectedOptions(payload)), setUserSelectedOption: (payload) => dispatch(setUserSelectedOption(payload)), showOption: (payload) => dispatch(showOption(payload)), hideOption: () => dispatch(hideOption()), setServiceEntryMetadata: (payload) => dispatch(setServiceEntryMetadata(payload)), setBlockAutoEntrySwitch: (payload) => dispatch(setBlockAutoEntrySwitch(payload)), setActiveEntryType: (payload) => dispatch(setActiveEntryType(payload)), setUserEntryType: (payload) => dispatch(setUserEntryType(payload)), registerUpload: (payload: Omit) => dispatch(registerUpload(payload)), setUploadProgress: ( payload: Omit, ) => dispatch(setUploadProgress(payload)), setUploadComplete: (payload: string) => dispatch(setUploadComplete(payload)), setUploadError: (payload) => dispatch(setUploadError(payload)), clearAllUploads: () => dispatch(clearAllUploads()), setSeamlyContainerElement: (payload) => dispatch(setSeamlyContainerElement(payload)), } }