import { useAsync, UseAsyncResult } from './use-async'; import { useSDKModel } from './use-models'; import { EnumModel } from '../models'; import { ApiKeys } from '../types'; export const useEnumModel = (classProp: string) => { const model = (useSDKModel(classProp)); return { model, getAll: useGetAll(model), }; }; const useGetAll = (model: EnumModel) => (): UseAsyncResult => { return useAsync(model.getAll.bind(model)); }; export const useCurrencies = () => { return useEnumModel(ApiKeys.CURRENCIES); }; export const useCountries = () => { return useEnumModel(ApiKeys.COUNTRIES); }; export const useMarkets = () => { return useEnumModel(ApiKeys.MARKETS); }; export const useEmploymentTypes = () => { return useEnumModel(ApiKeys.EMPLOYMENT_TYPES); }; export const useCreditTypes = () => { return useEnumModel(ApiKeys.CREDIT_TYPES); }; export const useGenders = () => { return useEnumModel(ApiKeys.GENDERS); }; export const useKycPurposes = () => { return useEnumModel(ApiKeys.KYC_PURPOSES); }; export const useKycSources = () => { return useEnumModel(ApiKeys.KYC_SOURCES); };