UNPKG

warped_bloc_react

Version:
30 lines (27 loc) 1.06 kB
import BlocState from "../../core/states/BlocState"; import InitialState from "../../core/states/InitialState"; import ErrorState from "../../core/states/ErrorState"; import LoadingState from "../../core/states/LoadingState"; import { DefaultCubit } from "./DefaultCubit" import AsyncCubit, { CallbackType, ErrCallbackType } from "./interface/AsyncCubit"; export const DefaultAsyncCubit = (state?: BlocState): AsyncCubit => { let cubit = DefaultCubit<BlocState>(state ?? new InitialState()); const handleDefaultStates = async (callback: CallbackType, errorCallback?: ErrCallbackType, showLoading: boolean = true,) => { if (showLoading) { cubit.emit(new LoadingState()); } try { await callback(); } catch (e) { if (errorCallback) { errorCallback(e) } else { cubit.emit(new ErrorState<any>("Error Has Occured")); } } } return { ...cubit, handleDefaultStates, } }