Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
make own interface that compatible with GeolocationPositionError and PositionError.

It is the easiest way to avoid errors in typescript 4.1
  • Loading branch information
xobotyi authored and eaglus committed Jan 21, 2021
1 parent 22b15c7 commit 60aab87
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions src/useGeolocation.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
import { useEffect, useState } from 'react';

/**
* @desc Made compatible with {GeolocationPositionError} and {PositionError} cause
* PositionError been renamed to GeolocationPositionError in typescript 4.1.x and making
* own compatible interface is most easiest way to avoid errors.
*/
export interface IGeolocationPositionError {
readonly code: number;
readonly message: string;
readonly PERMISSION_DENIED: number;
readonly POSITION_UNAVAILABLE: number;
readonly TIMEOUT: number;
}

export interface GeoLocationSensorState {
loading: boolean;
accuracy: number | null;
Expand All @@ -10,7 +23,7 @@ export interface GeoLocationSensorState {
longitude: number | null;
speed: number | null;
timestamp: number | null;
error?: Error | PositionError;
error?: Error | IGeolocationPositionError;
}

const useGeolocation = (options?: PositionOptions): GeoLocationSensorState => {
Expand Down Expand Up @@ -43,7 +56,7 @@ const useGeolocation = (options?: PositionOptions): GeoLocationSensorState => {
});
}
};
const onEventError = (error: PositionError) =>
const onEventError = (error: IGeolocationPositionError) =>
mounted && setState((oldState) => ({ ...oldState, loading: false, error }));

useEffect(() => {
Expand Down

0 comments on commit 60aab87

Please sign in to comment.