UNPKG

@hhgtech/hhg-components

Version:
167 lines (166 loc) • 5.9 kB
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;