Compare commits
2 Commits
e778e20bae
...
d49f7486e2
| Author | SHA1 | Date |
|---|---|---|
|
|
d49f7486e2 | |
|
|
36ce0f3fb2 |
|
|
@ -4,7 +4,7 @@ title: 'Open Mapping: Collaborative Route Planning Module'
|
|||
status: In Progress
|
||||
assignee: []
|
||||
created_date: '2025-12-04 14:30'
|
||||
updated_date: '2025-12-05 05:29'
|
||||
updated_date: '2025-12-05 05:35'
|
||||
labels:
|
||||
- feature
|
||||
- mapping
|
||||
|
|
@ -118,4 +118,15 @@ Map refactoring completed:
|
|||
- Added layers/index.ts and updated open-mapping exports
|
||||
- Server running without compilation errors
|
||||
- Architecture now follows layer pattern: Base Map → Collaboration Layers
|
||||
|
||||
Enhanced MapShapeUtil (1326 lines) with:
|
||||
- Touch/pen/mouse support with proper z-index (1000+) and touchAction styles
|
||||
- Search with autocomplete as you type (Nominatim, 400ms debounce)
|
||||
- Directions panel with waypoint management, reverse route, clear
|
||||
- GPS location sharing panel with start/stop, accuracy display
|
||||
- Quick action toolbar: search, directions (🚗), GPS (📍), style picker
|
||||
- Larger touch targets (44px buttons) for mobile
|
||||
- Pulse animation on user GPS marker
|
||||
- "Fit All" button to zoom to all GPS users
|
||||
- Route info badge when panel is closed
|
||||
<!-- SECTION:NOTES:END -->
|
||||
|
|
|
|||
|
|
@ -343,6 +343,7 @@ export class CloudflareNetworkAdapter extends NetworkAdapter {
|
|||
|
||||
// CRITICAL: Emit 'ready' event for Automerge Repo
|
||||
// This tells the Repo that the network adapter is ready to sync
|
||||
// @ts-expect-error - 'ready' event is valid but not in NetworkAdapterEvents type
|
||||
this.emit('ready', { network: this })
|
||||
|
||||
// Create a server peer ID based on the room
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { ConnectionStatus } from '@/automerge/useAutomergeSyncRepo'
|
||||
// Connection status for UI display (maps from ConnectionState)
|
||||
export type ConnectionStatus = 'online' | 'offline' | 'syncing'
|
||||
|
||||
interface OfflineIndicatorProps {
|
||||
connectionStatus: ConnectionStatus
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -55,7 +55,7 @@ function CustomPeopleMenu() {
|
|||
try {
|
||||
const { GoogleDataService } = await import('../lib/google')
|
||||
const service = GoogleDataService.getInstance()
|
||||
await service.authenticate()
|
||||
await service.authenticate(['drive'])
|
||||
setGoogleConnected(true)
|
||||
} catch (error) {
|
||||
console.error('Google auth failed:', error)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
/// <reference types="vite/client" />
|
||||
|
||||
// Wrangler/Vite wasm module imports
|
||||
declare module '*.wasm?module' {
|
||||
const module: Uint8Array
|
||||
export default module
|
||||
}
|
||||
|
||||
interface ImportMetaEnv {
|
||||
readonly VITE_TLDRAW_WORKER_URL: string
|
||||
readonly VITE_GOOGLE_MAPS_API_KEY: string
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
"noFallthroughCasesInSwitch": true
|
||||
},
|
||||
"include": ["src", "worker", "src/client"],
|
||||
|
||||
"exclude": [
|
||||
"src/open-mapping/**"
|
||||
],
|
||||
"references": [{ "path": "./tsconfig.node.json" }]
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue