UNPKG

@hhgtech/hhg-components

Version:
128 lines (127 loc) 4.43 kB
import { CareLocaleType, City, SearchBarSectionApi, SearchCityByGeoIpApi } from "../../../interfaces/types"; import { GeoLocationPermission, GPSType } from "../../../../interfaces/types"; import { FocusedType } from "./types"; export type ReducerState = { isMobile: boolean; isDebug: boolean; navigateTo: null | string; geoLocationPermission: GeoLocationPermission; geoLocationCoordinates: null | GPSType; searchLocationKeywords: string; searchKeywords: string; focused: FocusedType; selectedLocation: City | null; defaultCity: City | null; initialCities: City[]; cities: City[]; searchResults: SearchBarSectionApi[]; initialSearchResults: SearchBarSectionApi[]; isLoadingCities: boolean; isLoadingSearchResults: boolean; isMobileModalOpened: boolean; initialSelectedCity: City | null; autoCompleteDisabled: boolean; inputSearchPlaceholder: string; locale: CareLocaleType; }; export declare const initialState: ReducerState; export declare enum ActionTypes { NavigateTo = "navigate to url", ClickOutsideInputLocation = "click outside input location", ClickOutsideInputSearch = "click outside input search", SelectCurrentLocation = "select current location", FocusInputLocation = "focus input location", FocusInputSearch = "focus input search", ChangeInputLocation = "change input location", ChangeInputSearch = "change input search", ClearInputLocation = "clear input location", ClearInputSearch = "clear input search", SelectLocation = "select location", 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", 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" } export type Action = { type: ActionTypes.NavigateTo; payload: string; } | { type: ActionTypes.ClickOutsideInputLocation; } | { type: ActionTypes.ClickOutsideInputSearch; } | { type: ActionTypes.FocusInputLocation; } | { type: ActionTypes.FocusInputSearch; } | { 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.FetchCitiesStart; } | { type: ActionTypes.FetchCitiesFinish; } | { type: ActionTypes.FetchSearchResultsStart; } | { type: ActionTypes.FetchSearchResultsComplete; payload: SearchBarSectionApi[]; } | { type: ActionTypes.FetchSearchResultsFinish; } | { type: ActionTypes.FetchCitiesByGeoIpComplete; payload: SearchCityByGeoIpApi; } | { type: ActionTypes.FetchCitiesByKeywordComplete; payload: City[]; } | { type: ActionTypes.DisplayInitialCities; } | { type: ActionTypes.DisplayInitialSearchResults; } | { 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; }; export declare function reducer(state: ReducerState, action: Action): ReducerState;