How deepender25/edge-drop works
Edge-Drop is a Windows Electron clipboard shelf: copied content is captured into persistent history, exposed through an edge-activated panel or hotkey, then pasted, previewed, searched, or dragged into other applications. The graph preserves the main capture, state, UI, and drag path alongside documented settings, onboarding, tray/update, and link-preview capabilities. Evidence is limited to the README and indexed source references plus the excerpts; several subsystem links are therefore documented or left unasserted.
Main entry points: index.ts Electron main · App.tsx Renderer root · Panel.tsx Shelf panel · state.ts Main state
Components 29
Capture and history
- Clipboard watcher
electron/clipboard/ClipboardWatcher.ts - Clipboard formats
electron/clipboard/formats.ts - Main state
electron/main/state.ts - Item history
electron/store/ItemStore.ts - Settings
electron/store/settings.ts - Data paths
electron/store/paths.ts
Desktop shell
- Electron main
electron/main/index.ts - Shelf window
electron/main/window.ts - IPC handlers
electron/main/ipc.ts - Preload bridge
electron/preload/index.ts - Native drag
electron/main/drag.ts - Drag staging
electron/main/stagedTemp.ts
Shelf experience
- Renderer root
src/App.tsx - UI state
src/store/appStore.ts - Shelf panel
src/components/Panel.tsx - Cards and menus
src/components/ClipboardItem.tsx - Shelf search
src/components/ShelfSearch.tsx - Edge activation
src/hooks/useEdgeHover.ts - Item preview
src/components/PreviewFlyout.tsx - Item filtering
src/hooks/useFilteredItems.ts - Drag initiation
src/hooks/useDragOut.ts
Product features
- Welcome tour
src/onboarding/tour.ts - Settings UI
src/components/Settings.tsx - Tray controls
electron/main/tray.ts - App updater
electron/main/updater.ts - Offline link details
src/lib/urlPreview.ts - Link preview card
src/components/LinkPreviewCard.tsx
Other components
- User
- Desktop apps
Connections 29
- User → Clipboard watcher: copies content
README.md - Clipboard watcher → Clipboard formats: decodes formats
- Main state → Clipboard watcher: watches clipboard
electron/main/state.ts - Main state → Item history: updates history
electron/main/state.ts - Main state → Settings: loads settings
electron/main/state.ts - Item history → Data paths: persists files
electron/store/ItemStore.ts - Electron main → Main state: loads state
electron/main/index.ts - Electron main → Shelf window: starts window
electron/main/index.ts - Electron main → IPC handlers: registers handlers
electron/main/index.ts - Shelf window → Renderer root: hosts renderer
- IPC handlers → Preload bridge: serves bridge calls
- Preload bridge → UI state: exposes actions
electron/preload/index.ts - Renderer root → UI state: hydrates and subscribes
src/App.tsx - Renderer root → Shelf panel: renders
src/App.tsx - Renderer root → Edge activation: activates edge behavior
src/App.tsx - Shelf panel → Cards and menus: shows items
- Shelf panel → Shelf search: offers search
- Shelf panel → Item filtering: filters history
- Cards and menus → Item preview: opens preview
- Cards and menus → Drag initiation: starts drag
- Drag initiation → UI state: records drag request
src/hooks/useDragOut.ts - Drag initiation → Preload bridge: sends drag request
src/hooks/useDragOut.ts - Native drag → Drag staging: stages payloads
electron/main/drag.ts - Native drag → Desktop apps: drags into apps
- Settings UI → UI state: updates preferences
- Tray controls → Electron main: controls app
electron/main/index.ts - Electron main → Welcome tour: launches tour
- Electron main → App updater: manages updates
electron/main/index.ts - Link preview card → Offline link details: parses link locally
src/components/LinkPreviewCard.tsx