Removing localforage and friends.

This commit is contained in:
vdv committed 2022-09-24 10:31:40 +02:00
1 parent 2831f901a7
commit 52ca7e3fe7
6 files changed
+938 -155

No files matched your search

+2 -4
View File
@@ -1,4 +1,5 @@
import { IonApp, setupIonicReact } from '@ionic/react';
import store from './store/index';
import { Provider } from 'react-redux';
@@ -22,16 +23,13 @@ import '@ionic/react/css/display.css';
import './theme/variables.css';
import Map from './components/map/map';
import DbContextProvider from './db/db-context-provider';
setupIonicReact();
const App: React.FC = () => (
<IonApp>
<Provider store={store}>
<DbContextProvider>
<Map />
</DbContextProvider>
<Map />
</Provider>
</IonApp>
);
-1
View File
@@ -19,7 +19,6 @@ import {
} from '@ionic/react';
import GpxImport from './gpx-import';
import Track from './track';
import Tracks from './tracks';
const Map: react.FC<{}> = (props: {}) => {
+1 -22
View File
@@ -1,30 +1,9 @@
import React, { useContext, useEffect } from 'react';
import React, { } from 'react';
import { DbContext } from '../../db/db-context-provider';
import { lat2tile, lon2tile } from '../../lib/geo';
import { zoom0 } from '../../store/map';
const Track: React.FC<{ track: any; id: string }> = (props) => {
const dbContext = useContext(DbContext);
useEffect(() => {
const store = dbContext.tracksStore;
const checkDb = async () => {
store.getItem(props.id).then((value) => {
if (value === null) {
store.setItem(props.id, props.track).then((value) => {
console.log(
`Track ${props.id} saved in the ${store.driver()} Database.`
);
});
}
});
};
if (dbContext.ready) {
checkDb();
}
}, [dbContext, props]);
const trkseg = props.track.track.trk[0].trkseg[0];
const d = trkseg.trkpt.reduce(
(previous: string, current: any, index: number) => {
-42
View File
@@ -1,42 +0,0 @@
import react, { useEffect, useState } from 'react';
import * as CordovaSQLiteDriver from 'localforage-cordovasqlitedriver';
import localforage from 'localforage';
const initialDbContext = { ready: false, tracksStore: localforage };
export const DbContext = react.createContext(initialDbContext);
const DbContextProvider: react.FC<{
children?: JSX.Element;
}> = (props: { children?: JSX.Element }) => {
const [store, setStore] = useState(localforage);
const [ready, setReady] = useState(false);
useEffect(() => {
localforage.defineDriver(CordovaSQLiteDriver).then(() => {
const config = {
name: 'dyomedea',
driver: [
CordovaSQLiteDriver._driver,
localforage.INDEXEDDB,
localforage.WEBSQL,
localforage.LOCALSTORAGE,
],
};
const newStore = localforage.createInstance({
storeName: 'tracks',
...config,
});
setStore(newStore);
setReady(true);
});
}, []);
return (
<DbContext.Provider value={{ ready, tracksStore: store }}>
{props.children}
</DbContext.Provider>
);
};
export default DbContextProvider;