Skip to content

show manual list instead of identities in group carg to avoid confusion#1760

Merged
simo6529 merged 5 commits intomainfrom
simo6529/groups-identities-label
Jan 19, 2026
Merged

show manual list instead of identities in group carg to avoid confusion#1760
simo6529 merged 5 commits intomainfrom
simo6529/groups-identities-label

Conversation

@simo6529
Copy link
Copy Markdown
Collaborator

@simo6529 simo6529 commented Jan 19, 2026

Summary by CodeRabbit

  • New Features

    • Wallet configuration items now always display (showing "No manual list" when empty) and include tooltips for extra context.
    • Group view now shows "Source: filters + optional manual list" under group names.
  • Style

    • Renamed "Identities" label to "Manual list" for clarity.
    • Added muted visual state for empty/manual-list items and improved value styling for readability.

✏️ Tip: You can customize this high-level summary in your review settings.

Signed-off-by: Simo <simo@6529.io>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 19, 2026

Warning

Rate limit exceeded

@simo6529 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 17 minutes and 4 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 60729aa and 5d04d29.

📒 Files selected for processing (1)
  • components/groups/page/list/card/GroupCardConfigs.tsx
📝 Walkthrough

Walkthrough

Renames the "Identities" label to "Manual list", ensures the wallets config is always rendered (shows "No manual list" when empty), adds tooltip and muted styling to config items, replaces resize useEffect with ResizeObserver fallback, and updates tests and a content line in the group card.

Changes

Cohort / File(s) Summary
Manual List Configuration & UI
components/groups/page/list/card/GroupCardConfigs.tsx, components/groups/page/list/card/GroupCardConfig.tsx
Added optional tooltip and muted props to GroupCardConfigProps; introduced MANUAL_LIST_TOOLTIP; renamed label to "Manual list"; getWalletsConfig always returns a config (shows "No manual list" when empty) with tooltip/muted handling; value rendering gains conditional muted vs. bold styling; replaced resize useEffect with ResizeObserver + fallback; className and layout tweaks.
Card Content Display
components/groups/page/list/card/GroupCardContent.tsx
Added the paragraph "Source: filters + optional manual list" under the group name.
Tests
__tests__/components/groups/page/list/card/GroupCardConfigs.test.tsx
Updated test descriptions, formatting, and expectations for wallets/manual-list behavior when group is undefined (expects "No manual list" instead of "0"); minor mock/format adjustments.

Sequence Diagram(s)

(Skipped — changes are UI/display, local component updates and a ResizeObserver replacement; no multi-component sequential flow requiring visualization.)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • ragnep

Poem

🐰 I hopped in with a label new,
A tooltip soft and muted hue,
When wallets hide and counts are nil,
"No manual list" sits calm and still,
A tiny tweak — the card feels true.

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: renaming the 'Identities' label to 'Manual list' in group card configs to improve clarity.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
components/groups/page/list/card/GroupCardConfigs.tsx (1)

235-283: Fix invalid Tailwind class token on left scroll button.

tw-border-white/ is not a valid Tailwind opacity token; should be tw-border-white/5 to match the right scroll button.

🛠️ Suggested fix
-            className="tw-border-white/ tw-absolute tw-left-0 tw-top-1/2 tw-z-30 tw-inline-flex tw-h-7 tw-w-7 -tw-translate-x-3 tw-translate-y-[-50%] tw-items-center tw-justify-center tw-rounded-full tw-border tw-border-solid tw-bg-iron-800 tw-text-white tw-transition tw-duration-200 tw-ease-out focus-visible:tw-outline focus-visible:tw-outline-2 focus-visible:tw-outline-offset-2 focus-visible:tw-outline-primary-500 desktop-hover:hover:tw-bg-white/10"
+            className="tw-border-white/5 tw-absolute tw-left-0 tw-top-1/2 tw-z-30 tw-inline-flex tw-h-7 tw-w-7 -tw-translate-x-3 tw-translate-y-[-50%] tw-items-center tw-justify-center tw-rounded-full tw-border tw-border-solid tw-bg-iron-800 tw-text-white tw-transition tw-duration-200 tw-ease-out focus-visible:tw-outline focus-visible:tw-outline-2 focus-visible:tw-outline-offset-2 focus-visible:tw-outline-primary-500 desktop-hover:hover:tw-bg-white/10"
🤖 Fix all issues with AI agents
In `@components/groups/page/list/card/GroupCardConfigs.tsx`:
- Around line 61-63: The returned string currently always includes a leading
space before "identity" when direction is falsy; change the template to only
prepend the direction label plus a trailing space when direction is present so
that with direction = null you get "identity: X" instead of " identity: X".
Update the return expression that uses direction, directionLabels, and identity
to conditionally include `${directionLabels[direction]} ` (note the space) only
when direction is truthy.

Comment thread components/groups/page/list/card/GroupCardConfigs.tsx Outdated
Signed-off-by: Simo <simo@6529.io>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@components/groups/page/list/card/GroupCardConfigs.tsx`:
- Line 243: The Tailwind class string in the left scroll button contains an
incomplete token `tw-border-white/` which lacks an opacity value and will be
ignored; update the className in the GroupCardConfigs component (the left scroll
button JSX element) to use a valid opacity token (e.g., change
`tw-border-white/` to `tw-border-white/5` to match the right button on line 278)
so both scroll buttons have consistent border styling.
🧹 Nitpick comments (3)
components/groups/page/list/card/GroupCardConfigs.tsx (3)

90-93: Consider simplifying the category check.

The typeof rep.category?.length === "number" check is defensive but unnecessary if rep.category is always a string. A simpler truthy check would suffice:

-    const category =
-      typeof rep.category?.length === "number" && rep.category.length > 0
-        ? `category: ${rep.category}`
-        : null;
+    const category = rep.category ? `category: ${rep.category}` : null;

If the type can be something other than string | null | undefined, the current approach is fine.


154-165: Consider reducing duplication with getWalletsConfig(0).

The fallback config duplicates the logic in getWalletsConfig when count is 0. You could simplify:

   const getConfigs = (): GroupCardConfigProps[] => {
     if (!group) {
-      return [
-        {
-          key: GroupDescriptionType.WALLETS,
-          value: "No manual list",
-          label: "Manual list",
-          tooltip: MANUAL_LIST_TOOLTIP,
-          muted: true,
-        },
-      ];
+      return [getWalletsConfig(0)];
     }

This keeps the empty-state logic in one place.


206-231: Cleanup removes listener unconditionally.

Line 229 removes the resize listener even when ResizeObserver was used. While harmless (no-op), it's cleaner to track which path was taken:

♻️ Suggested improvement
   useEffect(() => {
     checkForHiddenContent();
 
     const container = containerRef.current;
-    const canObserve =
-      typeof ResizeObserver !== "undefined" && !!containerRef.current;
-
-    const observer = canObserve
-      ? new ResizeObserver(() => checkForHiddenContent())
-      : null;
+    const canObserve = typeof ResizeObserver !== "undefined" && !!container;
+    let observer: ResizeObserver | null = null;
+    let usedFallback = false;
 
-    if (observer && container) {
+    if (canObserve) {
+      observer = new ResizeObserver(() => checkForHiddenContent());
       observer.observe(container);
     } else {
-      // Fallback: still respond to window resizes
+      usedFallback = true;
       window.addEventListener("resize", checkForHiddenContent);
     }
 
     return () => {
-      if (observer && container) {
+      if (observer) {
         observer.unobserve(container);
         observer.disconnect();
       }
-      window.removeEventListener("resize", checkForHiddenContent);
+      if (usedFallback) {
+        window.removeEventListener("resize", checkForHiddenContent);
+      }
     };
   }, []);

Also, !!containerRef.current on line 211 can be simplified to !!container since it's already captured.

Comment thread components/groups/page/list/card/GroupCardConfigs.tsx Outdated
Signed-off-by: Simo <simo@6529.io>
@sonarqubecloud
Copy link
Copy Markdown

@simo6529 simo6529 merged commit 3e39616 into main Jan 19, 2026
7 checks passed
@simo6529 simo6529 deleted the simo6529/groups-identities-label branch January 19, 2026 13:37
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.

2 participants