import React, { createContext, useState } from 'react'; import geo, { getPosition } from '../../services/geo'; import { getUserTerritories } from '../user/api'; import pointInPolygon from './pointInPolygon'; interface RideStateContextContextInterface { } export const RideStateContextContext = createContext(null); const RideStateContextContextProvider = ({ children }: { children: any }) => { const [territory, setTerritory] = useState(null); const [showOutOfTerritory, setShowOutOfTerritory] = useState(false); const loadTerritory = async (checkTerritory = false) => { let t = territory; if (!t) { t = await getUserTerritories(); setTerritory(t); } if (checkTerritory) { const position = await getPosition(); const isInsidePoly = await pointInPolygon(t, position); setShowOutOfTerritory(!isInsidePoly); } return t; }; const initGeoService = async () => { await geo.initAsync(); await loadTerritory(true); }; return ( {children} ); }; export default RideStateContextContextProvider;