Skip to content

Conversation

@lollipopkit
Copy link
Owner

@lollipopkit lollipopkit commented Sep 1, 2025

Fixes #878

Summary by Sourcery

Fix the private key selection UI on the server edit page by replacing the old radio list with choice chips supporting edit and add actions, and update generated provider hashes.

Bug Fixes:

  • Allow selecting and clearing a private key in the server edit page

Enhancements:

  • Replace radio-based key list with a ChoiceChip-based interface inside an expandable tile
  • Add inline edit and add buttons for managed private keys

Build:

  • Regenerate Riverpod provider hash values

@sourcery-ai
Copy link

sourcery-ai bot commented Sep 1, 2025

Reviewer's Guide

Refactors the private key selection UI in the server edit page to use a ChoiceChip-based, clearable selection inside an ExpandTile and updates generated Riverpod provider hashes.

Class diagram for updated private key selection UI components

classDiagram
    class _ServerEditPageState {
      +_buildKeyAuth()
      -previous: RadioGroup<int>, ListTile
      +now: ExpandTile, ChoiceChipX<int>, clearable selection
    }
    class ChoiceChipX {
      +label
      +state
      +value
      +onSelected(idx, on)
    }
    class ExpandTile {
      +leading
      +initiallyExpanded
      +childrenPadding
      +title
      +children
    }
    _ServerEditPageState --> ChoiceChipX
    _ServerEditPageState --> ExpandTile
Loading

File-Level Changes

Change Details Files
Refactor private key selection UI with chips and expandable tile
  • Introduce consistent padding and wrap chips in a Choice builder
  • Replace RadioGroup/ListTile approach with ChoiceChipX components
  • Implement clearable single selection via internal state listener
  • Wrap selection and action buttons inside an ExpandTile
  • Add edit and add buttons aligned in a row based on selection
lib/view/page/server/edit.dart
Update generated provider hash values
  • Regenerate hash for PrivateKeyNotifier
  • Regenerate hash for ServersNotifier
  • Regenerate hash for SnippetNotifier
lib/data/provider/private_key.g.dart
lib/data/provider/server/all.g.dart
lib/data/provider/snippet.g.dart

Assessment against linked issues

Issue Objective Addressed Explanation
#878 Allow users to select a private key on the server edit page.

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey there - I've reviewed your changes - here's some feedback:

  • This new _buildKeyAuth method is quite large—consider extracting the chip selector and button row into separate widgets to keep it more readable and maintainable.
  • Using -1 as a sentinel value for “no selection” can be brittle—consider making _keyIdx.value a nullable int so null naturally represents no selection.
  • If you have many keys, the Wrap of chips might overflow on smaller screens—consider making that section scrollable or limiting chip width to improve responsiveness.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- This new `_buildKeyAuth` method is quite large—consider extracting the chip selector and button row into separate widgets to keep it more readable and maintainable.
- Using `-1` as a sentinel value for “no selection” can be brittle—consider making `_keyIdx.value` a nullable int so `null` naturally represents no selection.
- If you have many keys, the Wrap of chips might overflow on smaller screens—consider making that section scrollable or limiting chip width to improve responsiveness.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@lollipopkit lollipopkit merged commit ee22cdb into main Sep 1, 2025
1 check passed
@lollipopkit lollipopkit deleted the lollipopkit/issue878 branch September 1, 2025 05:05
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.

bug: private key can't be selected in edit page

2 participants