Commit Graph

378 Commits

Author SHA1 Message Date
Eric van der Vlist fe9cc6437d Using atomWithHash to enable back/forward actions. 2022-11-01 17:58:57 +01:00
Eric van der Vlist e1583846ed Cleanup and doc. 2022-11-01 14:37:08 +01:00
Eric van der Vlist de69aff4c9 Removing nolonger used code 2022-11-01 14:23:18 +01:00
Eric van der Vlist 19062ac126 Removing a console.log() 2022-11-01 14:17:36 +01:00
Eric van der Vlist 50114598b2 Doc and cache improvement. 2022-11-01 14:16:36 +01:00
Eric van der Vlist 352cb0d870 Cleanup 2022-11-01 11:50:59 +01:00
Eric van der Vlist 04d2aa1ac1 More cleanup for the tiled layer cache. 2022-11-01 11:46:54 +01:00
Eric van der Vlist a6f10b9ee0 Implementing a cache cleanup method. 2022-10-31 22:14:28 +01:00
Eric van der Vlist 9f9576d2f6 Bug fix... 2022-10-31 21:40:10 +01:00
Eric van der Vlist 8deed17b05 Continuing to re-plug the handlers. 2022-10-31 21:01:56 +01:00
Eric van der Vlist eb1618d009 Re-pluging handlers (on LiveMap). 2022-10-31 18:05:58 +01:00
Eric van der Vlist 8341da64a3 Making a property optional 2022-10-31 15:08:50 +01:00
Eric van der Vlist 7b5abaccd3 Refactoring to split logic between `<Map>` and a brand new `<LiveMap>` component. 2022-10-31 15:02:46 +01:00
Eric van der Vlist 425ad06e33 Cleanup 2022-10-30 22:13:10 +01:00
Eric van der Vlist 0284cdbab9 Updating test snapshots. 2022-10-30 22:09:42 +01:00
Eric van der Vlist b0c7801cd1 Using `<TiledLayer>` in `<layerStack>`. 2022-10-30 22:06:55 +01:00
Eric van der Vlist ef35ffca32 Adding a component to take care of translations and scalings around `<TileSet>` components (not used yeti but should simplify `<LayerStack>`). 2022-10-30 21:35:32 +01:00
Eric van der Vlist 7322e5f5c4 Memoising `<TileSet>` 2022-10-30 20:23:12 +01:00
Eric van der Vlist edca3f0d1b Trying to simplify. 2022-10-30 20:18:21 +01:00
Eric van der Vlist 7f9400b395 Removing the tileFactory from components props (to limit re-renderings). 2022-10-29 21:16:50 +02:00
Eric van der Vlist c800235ebb Doc 2022-10-20 16:58:33 +02:00
Eric van der Vlist d970b288e4 Using a global variable to cache <Tile>s for <TiledLayer>s. 2022-10-20 16:21:27 +02:00
Eric van der Vlist 3dee9e90d7 Starting to implement a LayerStack component 2022-10-19 18:35:20 +02:00
Eric van der Vlist 4238ce0938 Using maps instead of objects to store tiles and removing the reinititialization when TiledLayer properties are updated. 2022-10-19 14:53:22 +02:00
Eric van der Vlist b5dd10e920 Adding tests for the <Map> component. 2022-10-19 13:55:44 +02:00
Eric van der Vlist b3a8f60f1e Doc 2022-10-19 13:04:56 +02:00
Eric van der Vlist acbefa983d Using Jotai between <Map> and <Handlers> (TODO: adapt Handlers.test.tsx) 2022-10-19 11:17:24 +02:00
Eric van der Vlist 552a49e0d6 Doc 2022-10-18 20:40:12 +02:00
Eric van der Vlist 4f069ad63f Adding touch handlers. 2022-10-18 18:47:40 +02:00
Eric van der Vlist f1ad35a479 Adding double click and wheel handlers 2022-10-18 17:42:11 +02:00
Eric van der Vlist 4f64d9906c Using useRef instead of useState in <Handler/> (no need to re-render when mouse state is updated). 2022-10-18 17:18:11 +02:00
Eric van der Vlist d758775ab7 Testing mouseMove throttling 2022-10-18 17:11:07 +02:00
Eric van der Vlist 016f99daf6 Idem with <Tile/> 2022-10-18 16:57:18 +02:00
Eric van der Vlist a7f78e0fa9 Avoid uncessessary rerendering (see https://medium.com/swlh/making-stupid-react-smart-in-re-rendering-5f04b5bab327 ). 2022-10-18 16:52:24 +02:00
Eric van der Vlist ab5c8ff6bb Simple implementation of event handler throttling. 2022-10-18 14:24:21 +02:00
Eric van der Vlist 963f6037ca Managing TiledLayer from Map. 2022-10-18 13:57:46 +02:00
Eric van der Vlist 7912d0bfe8 ntegration and bug fix 2022-10-18 13:45:16 +02:00
Eric van der Vlist 90e2c833a2 Adding some tests for <Handlers/> 2022-10-18 11:44:50 +02:00
Eric van der Vlist da50441abc Re-implementing the mouse handlers. 2022-10-18 10:10:23 +02:00
Eric van der Vlist 16097c1e2e Testing negative indices fot TiledLayer components. 2022-10-17 23:04:58 +02:00
Eric van der Vlist 0d927c72cd Tests and doc 2022-10-17 22:37:07 +02:00
Eric van der Vlist 460bfbf6e5 Doc 2022-10-17 21:31:21 +02:00
Eric van der Vlist 42e2d7c2c7 Adding the Tile component. 2022-10-17 21:23:57 +02:00
Eric van der Vlist f6a0eb8963 Making sure TiledLaer's are reinitialized if their keyObject change.s 2022-10-17 20:52:10 +02:00
Eric van der Vlist ffa58ee303 Bug fix. 2022-10-17 18:30:26 +02:00
Eric van der Vlist a5dc279e4e Adding the notion of TileFactory 2022-10-17 18:17:13 +02:00
Eric van der Vlist cf50675077 Testing TiledLayer re-rendering. 2022-10-17 17:56:03 +02:00
Eric van der Vlist 36418a3e3c Making TiledLayer more generic. 2022-10-17 17:48:30 +02:00
Eric van der Vlist b3e1e4de73 Adding docuri's and unit tests. 2022-10-17 17:15:24 +02:00
Eric van der Vlist 0b7de58a4e Check spelling 2022-10-17 13:47:35 +02:00
Eric van der Vlist fcef58f4df Adding typedoc in the loop 2022-10-17 12:04:25 +02:00
Eric van der Vlist 9c1f4aeb2f Empty Map component. 2022-10-17 10:37:26 +02:00
Eric van der Vlist a4bd11aab0 Restarting from scratch 2022-10-17 10:08:00 +02:00
Eric van der Vlist ed951208e8 Adding a few files which are currently not used before a huge refactoring... 2022-10-17 09:41:27 +02:00
Eric van der Vlist ce074b5d22 Stupib bug sorting notes. 2022-10-11 23:32:37 +02:00
Eric van der Vlist 61d3373c89 Missing file... 2022-10-11 23:21:59 +02:00
Eric van der Vlist dca68e17e4 Refactoring to see if (and how easy) it is to use the same chat component (with its properties) in 2 different contextes. 2022-10-11 23:18:23 +02:00
Eric van der Vlist 9bb2f48d4a Pretty nice (IMHO) version of avatars for locations... 2022-10-11 22:15:21 +02:00
Eric van der Vlist 9ce7f33cb4 Still working on avatars for locations. 2022-10-11 19:25:02 +02:00
Eric van der Vlist d1da0a110d Starting to implement avatars for locations (WIP). 2022-10-11 17:38:23 +02:00
Eric van der Vlist 6954c473ee Also moving the map center to the newest location when recording tracks (must think more carefully of somethin better for #12). 2022-10-11 16:16:06 +02:00
Eric van der Vlist 57d17a1fa6 Requesting a wake lock so that the screen is not dimmedwhileusing the app. 2022-10-11 16:12:45 +02:00
Eric van der Vlist 304c4d38b7 Reinitializing noteIndex when fetching new notes (to avoid out of length indexes). 2022-10-11 14:15:46 +02:00
Eric van der Vlist 5a7402313e Improved version of OSM notes shown as chat messages. 2022-10-10 22:08:50 +02:00
Eric van der Vlist 6c0d3bfb11 Better presentation of OSM notes. 2022-10-10 19:13:14 +02:00
Eric van der Vlist bdc527ae05 Removing the "i" symbol on the reticle. 2022-10-10 11:57:08 +02:00
Eric van der Vlist 3b86f143c7 Fetching OSM notes (more work needed to dosplai them). 2022-10-10 11:54:28 +02:00
Eric van der Vlist 1b0ab84923 Querying nominatim reverse (OSM) to get addresses. 2022-10-09 22:11:03 +02:00
Eric van der Vlist 05c560285a Disabling pointer events on GPX tracks. 2022-10-09 20:59:43 +02:00
Eric van der Vlist f9a6fb1d18 Adding a modal to display inforlation about a location. 2022-10-09 18:55:21 +02:00
Eric van der Vlist 0762a4da7a Reticle (improved) 2022-10-09 11:29:43 +02:00
Eric van der Vlist 27305c4b21 Still playing with the reticle... 2022-10-08 23:59:09 +02:00
Eric van der Vlist 77f5ab3996 Storing window's innerheight and innerwidth in redux' state to make it easier to follow for components. 2022-10-08 20:45:44 +02:00
Eric van der Vlist e206d905b7 Expermienting a reticle. 2022-10-08 20:31:29 +02:00
Eric van der Vlist 5822198f92 Localization (and language chooser)... 2022-10-08 17:33:32 +02:00
Eric van der Vlist 653574025e i18n 2022-10-07 21:24:10 +02:00
Eric van der Vlist 2612d7a3b4 I18n using react-localization (#8) 2022-10-04 19:04:49 +02:00
Eric van der Vlist 16e439db41 Localization, WIP, (#8) 2022-10-04 12:44:41 +02:00
Eric van der Vlist 330b4bb721 Cleanup. 2022-10-04 11:18:22 +02:00
Eric van der Vlist 2376d4daba Cosmetics 2022-10-04 07:54:32 +02:00
Eric van der Vlist c0015a7cfa Creating a mechanism to store settings both in the database and in redux. 2022-10-03 21:08:27 +02:00
Eric van der Vlist 07edc22d31 Trying a different DB config. 2022-10-03 16:04:43 +02:00
Eric van der Vlist 3b23094de5 Restoring JSON sample 2022-10-03 15:37:43 +02:00
Eric van der Vlist 062288ebdc Fixing a bug in the GPX importer library (#19) 2022-10-03 15:37:10 +02:00
Eric van der Vlist 0d1cdf39de Testing DocURI (#4 and #15) 2022-10-03 11:08:47 +02:00
Eric van der Vlist 0a11ccbdb4 Removing Virtuoso which gave more troubles than benefits and starting to use IonCards in the tracks browser (#16). 2022-10-03 00:18:53 +02:00
Eric van der Vlist cb1c38a9fb Using Virtuoso (for scrolling) and IonCards to start improving the track browser (#16) 2022-10-02 23:26:56 +02:00
Eric van der Vlist 52b03d8331 Regression for the GPX export when running in a browser. 2022-10-02 23:26:18 +02:00
Eric van der Vlist d85f5d3f95 Increased height for thetrack browser (#16) and testing the onClick handler on paths (#17) 2022-10-02 22:29:10 +02:00
Eric van der Vlist d8cad992d8 Renaming a component source file 2022-10-02 22:09:48 +02:00
Eric van der Vlist 7036589a44 Changing the stroke wdith for the tracks. 2022-10-02 22:05:00 +02:00
Eric van der Vlist 11c2a1713f Firstattempt to reduce te number of points when recording a track (#13): the minimal distance is now 10m and a filter with a minimal time of 15s has been added.
This should now be tested on the road !
2022-10-02 21:52:02 +02:00
Eric van der Vlist 924dd47395 Move the current location on the map while recording (#12) 2022-10-02 21:00:38 +02:00
Eric van der Vlist e103e928b6 Renaming... 2022-10-02 20:40:27 +02:00
Eric van der Vlist 9c004c8021 Changing the icon used for thecurrent location. 2022-10-02 19:09:03 +02:00
Eric van der Vlist 269f35a0a5 Storing the GPX export (#9) in Download directory and checking if the file allready exiss. 2022-10-02 18:22:49 +02:00
Eric van der Vlist 0b96918f3d Using the FileOpener plugin to open the GPX file after export (#9). 2022-10-02 17:16:41 +02:00
Eric van der Vlist ca28d767c0 Hybrid implementation for GPXexport (#9) using the capacitor FileSystem plugin when needed. The export is done in the Documents/Download folder and there is no notification (yet). 2022-10-02 16:37:06 +02:00
Eric van der Vlist cb4a257003 First version with a GPX export (#9) that works in a browser but, unfortunately, doesn't wotk on Adroid ! 2022-10-02 12:45:08 +02:00
Eric van der Vlist 93054115a5 Figuring how files can be downloaded to implement GPXexport (#9). Also changing the icon used for GPX import. 2022-10-02 00:00:36 +02:00
Eric van der Vlist ea97d6bc09 Adding / updating tile servers and changing the order of zoom in/out in the mouse wheel handler. 2022-09-28 13:38:38 +02:00
Eric van der Vlist 2fe7452811 Adding the possibility to delete tracks, moving the import button into the track browser, changing the background geolocation precision to 5m and adding a couple of calls to db.compact() and db.viewCleanup(). 2022-09-28 09:46:57 +02:00
Eric van der Vlist 2a0dbef552 Beginning to implement a dialog to browse within the tracks. 2022-09-27 23:58:58 +02:00
Eric van der Vlist 5119354137 Creating a library for modal animations. 2022-09-27 22:06:20 +02:00
Eric van der Vlist 3235d9ae70 Basic dialog to start/pause/stop and clear track recording. 2022-09-27 21:53:52 +02:00
Eric van der Vlist d71881dc02 Adding a check to reevaluate the map if min/max zoom levels are different in choosen tile servers. 2022-09-27 18:03:43 +02:00
Eric van der Vlist 59fbe4aa3f Improving the tile server chooser (#7) 2022-09-27 17:34:17 +02:00
Eric van der Vlist f5ce103cb3 Checking zoom and tiles boundaries (#6) 2022-09-27 15:10:23 +02:00
Eric van der Vlist ac67a063c2 First steps at supporting other map tile servers (#7) 2022-09-27 12:01:26 +02:00
Eric van der Vlist 32f147bdb6 Different colors for the current GPX track and other tracks. 2022-09-27 09:40:49 +02:00
Eric van der Vlist 0f0f1c8639 Smoother stroke edges and different color for GPX tracks 2022-09-27 09:10:08 +02:00
Eric van der Vlist 6e9fc21830 Storing track points independently from their tracks (#3). Also adding some basic tests for gpx database operations. 2022-09-26 21:48:46 +02:00
Eric van der Vlist e1da4a1e4a Cleanup indexes at start time and waith till the cleanup is done before rendering the whiteboard. 2022-09-26 11:51:27 +02:00
Eric van der Vlist fafde7b831 Starting to refactor to store track points independently from their tracks (WIP) (#3) 2022-09-26 01:46:19 +02:00
Eric van der Vlist aea83fac5d Testing error status on db.get(). 2022-09-25 18:54:13 +02:00
Eric van der Vlist b7e1a318a8 Adding error log messages. 2022-09-25 18:47:37 +02:00
Eric van der Vlist 20ae635d3f Storing the current track in pouchdb. 2022-09-25 08:46:05 +02:00
Eric van der Vlist 82997cd53f Re-implementing the background geolocation (not yet stored in a track) 2022-09-24 18:56:41 +02:00
Eric van der Vlist eae6296c2a Using pouchdb instead of redux to store tracks. 2022-09-24 17:08:53 +02:00
Eric van der Vlist 52ca7e3fe7 Removing localforage and friends. 2022-09-24 10:31:40 +02:00
Eric van der Vlist 2831f901a7 Changing components stacking. 2022-09-24 00:29:42 +02:00
Eric van der Vlist 548d4a43cb Using CordovaSQLiteDriver whenever possible. 2022-09-23 23:39:53 +02:00
Eric van der Vlist d0bac1c509 Storing imported tracks in local "forage". 2022-09-23 22:34:59 +02:00
Eric van der Vlist bb2130793d Using UUIDs to identify tracks (instead of a numerical index) to make it easier to synchronize databases. 2022-09-23 15:07:39 +02:00
Eric van der Vlist a212841c6c Supporting multiple tracks. 2022-09-23 15:01:02 +02:00
Eric van der Vlist 3af532de54 Cosmetics 2022-09-22 23:22:20 +02:00
Eric van der Vlist 3856e4b516 Displaying a GPX track 2022-09-22 23:05:50 +02:00
Eric van der Vlist a559a37952 Parsing GPX files. 2022-09-22 21:50:39 +02:00
Eric van der Vlist c545ff1d15 Adding a file chooser to import GPX files 2022-09-22 15:47:41 +02:00
Eric van der Vlist 7447cfd128 Using Ionic components. 2022-09-22 13:52:08 +02:00
Eric van der Vlist 18c2819da9 Displaying the current location on the whiteboard. 2022-09-21 16:17:43 +02:00
Eric van der Vlist f0cf255f14 Changed the zoom relative level for the SVG overlay to avoid issues at higher zoom levels (probably due to rounding errors). 2022-09-21 15:47:57 +02:00
Eric van der Vlist 7808b7db7e Implementing a SVG layout (aka whiteboard). 2022-09-21 00:23:42 +02:00
Eric van der Vlist 92700c3964 Fixing compilation warnings. 2022-09-20 17:38:24 +02:00
Eric van der Vlist 46cffdcc4c Button to center the map on the current location. 2022-09-20 17:29:02 +02:00
Eric van der Vlist 88755e35f9 Changing the scale step for double click and mouse wheel events. 2022-09-14 20:41:31 +02:00
Eric van der Vlist 4204168a3f Taking scale into account while reevaluating the state. 2022-09-14 20:36:43 +02:00
Eric van der Vlist 67e4d13989 Adding some first unit test and managing translations with scale=1 2022-09-14 17:50:27 +02:00
Eric van der Vlist 3a7d4987a3 Refactoring to take advantage of Immer's drafts 2022-09-14 11:52:37 +02:00
Eric van der Vlist d5196f4340 Re-implementing basic scale and shift actions (without reevaluating the scope). 2022-09-14 11:21:39 +02:00
Eric van der Vlist 2eb9a6cb47 Adding scale support in the computeStateFromScope method. 2022-09-14 10:26:27 +02:00
Eric van der Vlist 4687624259 Fixing an obvious bug 2022-09-14 10:08:14 +02:00
Eric van der Vlist 4bbb642b41 Cosmetic (reformat) 2022-09-14 10:03:49 +02:00
Eric van der Vlist db0761efd1 Refactoring (in progress) to put most of the logic in Redux reducers. 2022-09-13 18:17:08 +02:00
Eric van der Vlist fd79fba51f Using tiles. 2022-09-12 16:45:27 +02:00
Eric van der Vlist c4bd74a598 Handling wheel events 2022-09-12 15:58:10 +02:00
Eric van der Vlist b81b5e509e Renaming src/components/slippy/index.tsx -> src/components/slippy/sleepy.tsx 2022-09-12 15:31:02 +02:00
Eric van der Vlist 75b4bb2e2b Moving the underlying map out of the slippy component and handling window resize events. 2022-09-12 15:10:12 +02:00
Eric van der Vlist 2207ae1652 Moving slippy components in their own directory. 2022-09-12 09:17:06 +02:00
Eric van der Vlist d4f3e96743 Using redux selector in layer rather than viewport. 2022-09-12 09:01:54 +02:00
Eric van der Vlist ec0883ac54 *Not* using redux for mouseState. 2022-09-12 08:53:11 +02:00
Eric van der Vlist 3421686f1f Using Redux to provide application wise slippy context. 2022-09-12 00:45:40 +02:00
Eric van der Vlist 716d05fb3e Starting again with what has been developed as sandbox/map. 2022-09-11 20:01:12 +02:00
Eric van der Vlist 2b1066fd5b Still implementing mouse handlers. 2022-09-06 23:46:08 +02:00
Eric van der Vlist ec48c63667 Staring to implement mouse handlers. 2022-09-06 19:24:30 +02:00
Eric van der Vlist af226285be Debouncing resize events 2022-09-06 11:44:36 +02:00
Eric van der Vlist 4e26d94843 Correct algorithm for centering tiles. 2022-09-06 11:39:27 +02:00
Eric van der Vlist 9e8aec244e Attempt to create a new, more react friendly slippy map library. 2022-09-06 00:08:17 +02:00
Eric van der Vlist a154a5aa44 Refactoring (moving geolocation in a library) 2022-09-04 22:45:20 +02:00
Eric van der Vlist d015c4f1b9 Working around the fact that react's strict mode initializes compenents twice... 2022-09-04 21:08:31 +02:00
Eric van der Vlist 5867338836 Introducing redux to manage tracks. 2022-09-04 19:28:20 +02:00
Eric van der Vlist b01870d234 Changing the overlays order so that controls are on top of tracks. 2022-09-03 23:39:58 +02:00
Eric van der Vlist f7b59e5ead Reanbling background geolocation. 2022-09-03 23:31:45 +02:00
Eric van der Vlist a8da543228 Refactoring live-overlay which was using Pigeon's GeoJson component to create a GPXOverlay. 2022-09-03 23:15:29 +02:00
Eric van der Vlist 194b46bad0 First working example with background geolocation, that is: working on Android, not tested on iOS and needing a fallback on the web. 2022-09-02 23:41:55 +02:00
Eric van der Vlist ff32b75480 Moving things around between map and overlay components. 2022-09-02 17:56:10 +02:00
Eric van der Vlist 95205bb49f Adding a sample GeoJson overlay (and figuring out a dirty way to tunnel mapState and latLngToPixel between Pigeon components). 2022-09-02 15:56:41 +02:00
Eric van der Vlist 3dfbd648b7 Reformating 2022-09-02 11:05:50 +02:00
Eric van der Vlist 8ec7e7d045 Adding zoom control 2022-09-01 22:37:46 +02:00
Eric van der Vlist d8c3035bb2 Trying to control the center and zoom of pigeon maps (doesn't work on my phone) 2022-09-01 21:30:31 +02:00
Eric van der Vlist a0ee63ef09 "Trying pigeon-maps as an alternative to react-leaflet +leaflet and it seems much easier (and reactive). 2022-09-01 19:05:23 +02:00
Eric van der Vlist 01fc789614 Moving the map in a component and, trying to make it live, seeing that react-leaflet isn't really... reactive !
(See https://stackoverflow.com/questions/65763931/react-leaflet-update-map-center - basically: most of the map properties are immutable)
2022-09-01 18:48:29 +02:00
Eric van der Vlist 1f53fbd3be Updating index.tsx to reflect changes between React 17 and 18. 2022-09-01 18:47:36 +02:00
Eric van der Vlist 6e419839e9 Basic leaflet example shamelessly stolen from various places on the web. 2022-08-31 22:03:27 +02:00
Eric van der Vlist 0860516d66 Project config and more cleanup. 2022-08-31 20:22:00 +02:00
Eric van der Vlist 432e36f9e9 Cleaned up initial source. 2022-08-31 15:30:20 +02:00
Eric van der Vlist 6079ec1577 Cleaned up initial source. 2022-08-31 15:28:20 +02:00
Eric van der Vlist 58d441f91e Initial commit 2022-08-31 14:35:20 +02:00