Skip to content

Commit

Permalink
fix: #1646
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 committed Jan 8, 2021
1 parent 12894dc commit ebc7094
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 ebc7094

Please sign in to comment.