|
@@ -66,6 +66,7 @@ import { useFocusEffect } from '@react-navigation/native';
|
|
|
import { openstreetmapUrl } from 'src/constants/constants';
|
|
|
import { fetchCountryUserData } from '@api/countries';
|
|
|
import EditModal from '../TravelsScreen/Components/EditSlowModal';
|
|
|
+import { SQLiteDatabase } from 'expo-sqlite/legacy';
|
|
|
|
|
|
const localTileDir = `${FileSystem.cacheDirectory}tiles/background`;
|
|
|
const localGridDir = `${FileSystem.cacheDirectory}tiles/grid`;
|
|
@@ -149,6 +150,23 @@ const MapScreen: React.FC<MapScreenProps> = ({ navigation, route }) => {
|
|
|
const [userInfoData, setUserInfoData] = useState<any>(null);
|
|
|
|
|
|
const [initialRegion, setInitialRegion] = useState(INITIAL_REGION);
|
|
|
+ const [db1, setDb1] = useState<SQLiteDatabase | null>(null);
|
|
|
+ const [db2, setDb2] = useState<SQLiteDatabase | null>(null);
|
|
|
+ const [db3, setDb3] = useState<SQLiteDatabase | null>(null);
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+ const loadDatabases = async () => {
|
|
|
+ const firstDb = await getFirstDatabase();
|
|
|
+ const secondDb = await getSecondDatabase();
|
|
|
+ const countriesDb = await getCountriesDatabase();
|
|
|
+
|
|
|
+ setDb1(firstDb);
|
|
|
+ setDb2(secondDb);
|
|
|
+ setDb3(countriesDb);
|
|
|
+ };
|
|
|
+
|
|
|
+ loadDatabases();
|
|
|
+ }, []);
|
|
|
|
|
|
useFocusEffect(
|
|
|
useCallback(() => {
|
|
@@ -440,7 +458,7 @@ const MapScreen: React.FC<MapScreenProps> = ({ navigation, route }) => {
|
|
|
const { latitude, longitude } = event.nativeEvent.coordinate;
|
|
|
const point = turf.point([longitude, latitude]);
|
|
|
|
|
|
- let db = getSecondDatabase();
|
|
|
+ let db = db2;
|
|
|
let tableName = 'places';
|
|
|
let foundRegion: any;
|
|
|
|
|
@@ -448,7 +466,7 @@ const MapScreen: React.FC<MapScreenProps> = ({ navigation, route }) => {
|
|
|
|
|
|
if (type === 1) {
|
|
|
foundRegion = regions ? findRegionInDataset(regions, point) : null;
|
|
|
- db = getFirstDatabase();
|
|
|
+ db = db1;
|
|
|
tableName = 'regions';
|
|
|
|
|
|
if (foundRegion) {
|
|
@@ -461,7 +479,7 @@ const MapScreen: React.FC<MapScreenProps> = ({ navigation, route }) => {
|
|
|
setMarkers([]);
|
|
|
setProcessedMarkers([]);
|
|
|
|
|
|
- db = getCountriesDatabase();
|
|
|
+ db = db3;
|
|
|
tableName = 'countries';
|
|
|
|
|
|
await getData(db, countryId, tableName, handleRegionData)
|
|
@@ -495,7 +513,7 @@ const MapScreen: React.FC<MapScreenProps> = ({ navigation, route }) => {
|
|
|
|
|
|
if (!foundRegion) {
|
|
|
foundRegion = regions ? findRegionInDataset(regions, point) : null;
|
|
|
- db = getFirstDatabase();
|
|
|
+ db = db1;
|
|
|
tableName = 'regions';
|
|
|
}
|
|
|
|
|
@@ -575,10 +593,10 @@ const MapScreen: React.FC<MapScreenProps> = ({ navigation, route }) => {
|
|
|
cancelTokenRef.current = true;
|
|
|
const db =
|
|
|
type === 'regions'
|
|
|
- ? getFirstDatabase()
|
|
|
+ ? db1
|
|
|
: type === 'countries'
|
|
|
- ? getCountriesDatabase()
|
|
|
- : getSecondDatabase();
|
|
|
+ ? db3
|
|
|
+ : db2;
|
|
|
|
|
|
if (type === 'countries') {
|
|
|
setSelectedRegion(null);
|