diff --git a/README.md b/README.md index 1cd7845..5acdaf9 100644 --- a/README.md +++ b/README.md @@ -102,9 +102,7 @@ is:open -author:app/dependabot label:"priority" See [GitHub's search syntax documentation](https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests) for all available qualifiers. -## 🏗️ Architecture - -### Technology Stack +## 🏗️ Technology Stack - **[WXT](https://wxt.dev/)** - Cross-browser extension framework - **[Svelte 5](https://svelte.dev/)** - Reactive UI framework with runes API @@ -112,66 +110,6 @@ See [GitHub's search syntax documentation](https://docs.github.com/en/search-git - **[Tailwind CSS 4](https://tailwindcss.com/)** - Utility-first styling - **[Vite](https://vitejs.dev/)** - Fast build tool -### Project Structure - -``` -pullscope/ -├── src/ -│ ├── entrypoints/ # Extension entry points -│ │ ├── background.ts # Background service worker -│ │ ├── content.ts # Content script loader -│ │ ├── content/ -│ │ │ └── GithubPRFilter.svelte # Main content script -│ │ ├── popup/ -│ │ │ ├── popup.ts # Popup entry -│ │ │ └── Popup.svelte # Popup UI -│ │ └── options/ -│ │ ├── options.ts # Options page entry -│ │ └── Options.svelte # Options UI -│ ├── lib/ -│ │ ├── types/ # TypeScript types -│ │ │ └── filter.ts -│ │ ├── stores/ # Svelte stores -│ │ │ └── filters.ts # Filter state management -│ │ ├── utils/ # Utility functions -│ │ │ ├── logger.ts # Logging framework -│ │ │ ├── dom.ts # DOM utilities -│ │ │ └── validation.ts # Filter validation -│ │ ├── components/ # Shared UI components -│ │ │ ├── ErrorDisplay.svelte -│ │ │ ├── Toast.svelte -│ │ │ └── FilterEditor.svelte -│ │ ├── github.ts # GitHub integration -│ │ └── storage.ts # Storage API wrapper -│ └── assets/ # Icons and images -├── wxt.config.ts # WXT configuration -├── tailwind.config.ts # Tailwind configuration -└── tsconfig.json # TypeScript configuration -``` - -### Key Components - -**Filter Store** (`src/lib/stores/filters.ts`) - -- Centralized state management -- Automatic sync with browser storage -- Real-time updates across components -- Storage change listener for cross-tab sync - -**GitHub Integration** (`src/lib/github.ts`) - -- Multiple fallback selectors for robustness -- Token-based duplicate detection -- Form submission triggering -- Proper event dispatching - -**Content Script** (`src/entrypoints/content/GithubPRFilter.svelte`) - -- Waits for DOM elements to load -- Debounced URL change handler -- Real-time filter toggle listener -- Toast notifications - ## 🤝 Contributing Contributions are welcome! Please feel free to submit a Pull Request.