@hhgtech/hhg-components
Version:
Hello Health Group common components
167 lines (166 loc) • 5.9 kB
TypeScript
import { CareLocaleType, City, SearchBarTabSectionApi, SearchCityByGeoIpApi, SearchBarSectionItemApi, PopularKeySearchItemApi, Specialty } from "../../../interfaces/types";
import { GeoLocationPermission, GPSType } from "../../../../interfaces/types";
import { FocusedType, FocusedSpecialtyType } from "./types";
export type ReducerState = {
isMobile: boolean;
isDebug: boolean;
navigateTo: null | string;
geoLocationPermission: GeoLocationPermission;
geoLocationCoordinates: null | GPSType;
searchLocationKeywords: string;
searchSpecialtyKeywords: string;
searchKeywords: string;
focused: FocusedType;
focusedSpecialty: FocusedSpecialtyType;
selectedLocation: City | null;
selectedSpecialty: Specialty | null;
defaultCity: City | null;
initialCities: City[];
cities: City[];
searchResults: SearchBarTabSectionApi;
initialSearchResults: SearchBarTabSectionApi;
isLoadingCities: boolean;
isLoadingSearchResults: boolean;
isMobileModalOpened: boolean;
initialSelectedCity: City | null;
autoCompleteDisabled: boolean;
inputSearchPlaceholder: string;
locale: CareLocaleType;
allSpecialties: SearchBarSectionItemApi[];
popularKeys: PopularKeySearchItemApi[];
};
export declare const initialState: ReducerState;
export declare enum ActionTypes {
NavigateTo = "navigate to url",
ClickOutsideInputLocation = "click outside input location",
ClickOutsideInputSearch = "click outside input search",
ClickOutsideInputSearchSpecialty = "click outside input search specialty",
ClickOutsideInputSpecialty = "click outside input specialty",
SelectCurrentLocation = "select current location",
FocusInputLocation = "focus input location",
FocusInputSearch = "focus input search",
FocusInputSearchSpecialty = "focus input search specialty",
ChangeInputLocation = "change input location",
ChangeInputSearch = "change input search",
ClearInputLocation = "clear input location",
ClearInputSearch = "clear input search",
SelectLocation = "select location",
SelectSpecialty = "select specialty",
FetchCitiesStart = "fetch cities start",
FetchCitiesFinish = "fetch cities finish",
FetchSearchResultsStart = "fetch search results start",
FetchSearchResultsComplete = "fetch search results complete",
FetchSearchResultsFinish = "fetch search results finish",
FetchCitiesByGeoIpComplete = "fetch cities by geo IP finish",
FetchCitiesByKeywordComplete = "fetch cities by keyword finish",
DisplayInitialCities = "display initial cities",
DisplayInitialSearchResults = "display initial search results",
UpdateInitialSearchResults = "update initial search results",
GrantGeoLocationPermission = "grant geolocation permission",
DenyGeoLocationPermission = "deny geolocation permission",
OpenMobileModal = "open mobile modal",
CloseMobileModal = "close mobile modal",
UpdateInitialSearchValue = "update initial search value",
SelectSearchResult = "select search result",
SetInputSearchPlaceholder = "set input search placeholder",
FocusInputSpecialty = "focus input specialty",
FetchAllSpecialties = "fetch all specialty",
FetchPopularKeys = "fetch popular key by type"
}
export type Action = {
type: ActionTypes.NavigateTo;
payload: string;
} | {
type: ActionTypes.ClickOutsideInputLocation;
} | {
type: ActionTypes.ClickOutsideInputSpecialty;
} | {
type: ActionTypes.ClickOutsideInputSearch;
} | {
type: ActionTypes.ClickOutsideInputSearchSpecialty;
} | {
type: ActionTypes.FocusInputLocation;
} | {
type: ActionTypes.FocusInputSpecialty;
} | {
type: ActionTypes.FocusInputSearch;
} | {
type: ActionTypes.FocusInputSearchSpecialty;
} | {
type: ActionTypes.ChangeInputLocation;
payload: string;
} | {
type: ActionTypes.ChangeInputSearch;
payload: string;
} | {
type: ActionTypes.ClearInputLocation;
} | {
type: ActionTypes.ClearInputSearch;
} | {
type: ActionTypes.SelectCurrentLocation;
payload: City;
} | {
type: ActionTypes.SelectLocation;
payload: City;
} | {
type: ActionTypes.SelectSpecialty;
payload: Specialty;
} | {
type: ActionTypes.FetchCitiesStart;
} | {
type: ActionTypes.FetchCitiesFinish;
} | {
type: ActionTypes.FetchSearchResultsStart;
} | {
type: ActionTypes.FetchSearchResultsComplete;
payload: {
searches: SearchBarSectionItemApi[];
key: string;
};
} | {
type: ActionTypes.FetchSearchResultsFinish;
} | {
type: ActionTypes.FetchCitiesByGeoIpComplete;
payload: SearchCityByGeoIpApi;
} | {
type: ActionTypes.FetchCitiesByKeywordComplete;
payload: City[];
} | {
type: ActionTypes.DisplayInitialCities;
} | {
type: ActionTypes.DisplayInitialSearchResults;
} | {
type: ActionTypes.UpdateInitialSearchResults;
payload: {
searches: SearchBarSectionItemApi[];
key: string;
};
} | {
type: ActionTypes.GrantGeoLocationPermission;
payload: GPSType;
} | {
type: ActionTypes.DenyGeoLocationPermission;
} | {
type: ActionTypes.OpenMobileModal;
} | {
type: ActionTypes.CloseMobileModal;
} | {
type: ActionTypes.UpdateInitialSearchValue;
payload: string;
} | {
type: ActionTypes.SelectSearchResult;
payload: {
name: string;
url: string;
};
} | {
type: ActionTypes.SetInputSearchPlaceholder;
payload: string;
} | {
type: ActionTypes.FetchAllSpecialties;
payload: SearchBarSectionItemApi[];
} | {
type: ActionTypes.FetchPopularKeys;
payload: PopularKeySearchItemApi[];
};
export declare function reducer(state: ReducerState, action: Action): ReducerState;