Skip to content

Expose state in URL#112

Merged
paolosimone merged 4 commits into
mainfrom
state-in-url
Nov 9, 2025
Merged

Expose state in URL#112
paolosimone merged 4 commits into
mainfrom
state-in-url

Conversation

@paolosimone
Copy link
Copy Markdown
Owner

Serialize user's search/filter in the URL so that it can be easily shared and/or bookmarked

@paolosimone paolosimone requested a review from Copilot November 9, 2025 09:49
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR updates project dependencies and refactors the application state management to add URL fragment state persistence. The main change splits the ApplicationState.ts file into a modular structure and introduces URL hash-based state serialization for search and JQ filter parameters.

  • Dependency updates across multiple packages (esbuild, eslint, tailwindcss, vite, and related tooling)
  • Refactored application state management into separate modules with URL fragment state support
  • Added serialization/deserialization logic for persisting state in URL hash
  • Minor code quality improvements (using window.location instead of location)

Reviewed Changes

Copilot reviewed 7 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
extension/yarn.lock Updated numerous dependencies including @emnapi, @esbuild, @eslint, @rollup, @tailwindcss, @types, and build tools to their latest versions
extension/package.json Bumped versions for dev dependencies (eslint, tailwindcss, typescript-eslint, vite) and react-window
extension/src/viewer/state/ApplicationState/index.ts New barrel export file for the ApplicationState module
extension/src/viewer/state/ApplicationState/URLFragmentState.ts New file implementing URL hash serialization/deserialization for application state with type-safe serializers
extension/src/viewer/state/ApplicationState/ApplicationState.ts Refactored from parent directory with added URL fragment state integration for persisting state in URL
extension/src/viewer/state/ApplicationState.ts Removed - functionality moved to modular structure
extension/src/options/components/EnumSelect.tsx Extracted enum type definitions to global scope (StringEnumType, ValueOf)
extension/src/global.d.ts Added global type definitions for StringEnumType and ValueOf to be reused across the codebase
extension/src/content/Activator.ts Changed location to window.location for better clarity and explicitness

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread extension/src/viewer/state/ApplicationState/URLFragmentState.ts Outdated
@paolosimone paolosimone requested a review from Copilot November 9, 2025 10:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 8 out of 10 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread extension/src/viewer/state/ApplicationState/ApplicationState.ts
Comment thread extension/src/viewer/state/ApplicationState/ApplicationState.ts
@paolosimone paolosimone merged commit 85850e5 into main Nov 9, 2025
6 checks passed
@paolosimone paolosimone deleted the state-in-url branch November 9, 2025 10:06
@paolosimone paolosimone linked an issue Nov 9, 2025 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Use fragments to include filters in the URI

2 participants