Skip to content

fix(FR-2817): unclip folder-status invitation badge and add /data invitation entry point#7261

Merged
graphite-app[bot] merged 1 commit into
mainfrom
05-06-fix_fr-2817_unclip_folder-status_invitation_badge_and_add__data_invitation_entry_point
May 12, 2026
Merged

fix(FR-2817): unclip folder-status invitation badge and add /data invitation entry point#7261
graphite-app[bot] merged 1 commit into
mainfrom
05-06-fix_fr-2817_unclip_folder-status_invitation_badge_and_add__data_invitation_entry_point

Conversation

@ironAiken2
Copy link
Copy Markdown
Contributor

@ironAiken2 ironAiken2 commented May 6, 2026

Resolves #7251(FR-2817)

Summary

Two regressions surfaced after the storage-status widget moved to the dashboard:

  1. The red +N badge over 초대된 폴더 was placed with a negative Y-offset (-token.sizeXS) that pushed it above the dashboard card body, where it was clipped by the card's overflow.
  2. The /data page offered no in-page entry point to view / accept / reject pending invitations — users could only reach the existing invitation modal via the (clipped) badge from the dashboard.

Changes

  • StorageStatusPanelCard: drop the negative Y offset on the invitation Badge (now offset={[-token.sizeXS, 0]}) so it overlays the title's top-right corner inside the card body bounds.
  • VFolderNodeListPage (/data): surface pending invitations via the BAITabs tabBarExtraContent slot as a BAILink labeled Pending invitations (N), rendered only when useVFolderInvitations() reports any pending invitation. Clicking it sets ?invitation=true, which the existing global FolderInvitationResponseModalOpener already binds to to open the accept/reject modal — no new modal/component needed. The card header extra now only carries Create Folder.
  • i18n: correct the Korean translation of data.invitation.PendingInvitations from 받은 초대장 (Received invitations) to 응답 대기 중인 초대 (Awaiting-response invitations) so it matches the English Pending invitations. Other locales were already semantically correct and left unchanged.

Verification

  • Relay: PASS
  • Lint: PASS
  • Format: PASS
  • TypeScript: pre-existing failures only on main (unrelated to this change; tracked separately under FR-2816).

Test environment

You can use the test server at 10.122.10.107 for review/QA.

Manual smoke test

  • Have at least one pending vfolder invitation.
  • Open the dashboard → the +N badge over 초대된 폴더 is no longer clipped at the top of the card.
  • Open /data → a Pending invitations (N) link appears in the tab bar's right-side extra area (next to the Active / Trash bin tabs), shown only when there are pending invitations. Click → the invitation modal opens with accept / reject actions.

Copilot AI review requested due to automatic review settings May 6, 2026 07:09
Copy link
Copy Markdown
Contributor Author

ironAiken2 commented May 6, 2026


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • flow:merge-queue - adds this PR to the back of the merge queue
  • flow:hotfix - for urgent changes, fast-track this PR to the front of the merge queue

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has required the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

Coverage Report for react-coverage (./react)

Status Category Percentage Covered / Total
🔵 Lines 6.46% 1783 / 27588
🔵 Statements 5.31% 1978 / 37205
🔵 Functions 5.18% 296 / 5707
🔵 Branches 3.72% 1293 / 34751
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
react/src/components/StorageStatusPanelCard.tsx 0% 0% 0% 0% 25-199
react/src/pages/VFolderNodeListPage.tsx 0% 0% 0% 0% 50-617
Generated in workflow #547 for commit 82d550b by the Vitest Coverage Report Action

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 improves the visibility and discoverability of vfolder invitation status in the WebUI by (1) adjusting invitation badge positioning to avoid clipping and (2) adding a “Pending invitations” entry point in the /data (VFolder list) page that opens the existing invitation response modal via a query param.

Changes:

  • Add a pending-invitations button (with count badge) to VFolderNodeListPage that sets ?invitation=true to open the invitation modal.
  • Adjust invitation badge offset in StorageStatusPanelCard to prevent the badge from being clipped.
  • Add the new i18n string key data.invitation.PendingInvitations across supported locales.

Reviewed changes

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

Show a summary per file
File Description
resources/i18n/de.json Adds data.invitation.PendingInvitations translation.
resources/i18n/el.json Adds data.invitation.PendingInvitations translation.
resources/i18n/en.json Adds data.invitation.PendingInvitations translation.
resources/i18n/es.json Adds data.invitation.PendingInvitations translation.
resources/i18n/fi.json Adds data.invitation.PendingInvitations translation.
resources/i18n/fr.json Adds data.invitation.PendingInvitations translation.
resources/i18n/id.json Adds data.invitation.PendingInvitations translation.
resources/i18n/it.json Adds data.invitation.PendingInvitations translation.
resources/i18n/ja.json Adds data.invitation.PendingInvitations translation.
resources/i18n/ko.json Adds data.invitation.PendingInvitations translation (Korean wording may need adjustment).
resources/i18n/mn.json Adds data.invitation.PendingInvitations translation.
resources/i18n/ms.json Adds data.invitation.PendingInvitations translation.
resources/i18n/pl.json Adds data.invitation.PendingInvitations translation.
resources/i18n/pt-BR.json Adds data.invitation.PendingInvitations translation.
resources/i18n/pt.json Adds data.invitation.PendingInvitations translation.
resources/i18n/ru.json Adds data.invitation.PendingInvitations translation.
resources/i18n/th.json Adds data.invitation.PendingInvitations translation.
resources/i18n/tr.json Adds data.invitation.PendingInvitations translation.
resources/i18n/vi.json Adds data.invitation.PendingInvitations translation.
resources/i18n/zh-CN.json Adds data.invitation.PendingInvitations translation.
resources/i18n/zh-TW.json Adds data.invitation.PendingInvitations translation.
react/src/pages/VFolderNodeListPage.tsx Adds the pending-invitations button with badge and query-param entry point (invitation=true).
react/src/components/StorageStatusPanelCard.tsx Updates badge offset to avoid clipping.

Comment thread resources/i18n/ko.json Outdated
@ironAiken2 ironAiken2 force-pushed the 05-06-fix_fr-2817_unclip_folder-status_invitation_badge_and_add__data_invitation_entry_point branch from 4e81cde to a3f77c1 Compare May 7, 2026 06:20
@ironAiken2 ironAiken2 force-pushed the 05-06-fix_fr-2817_unclip_folder-status_invitation_badge_and_add__data_invitation_entry_point branch from a3f77c1 to 3416562 Compare May 8, 2026 06:23
Copy link
Copy Markdown
Contributor

@nowgnuesLee nowgnuesLee left a comment

Choose a reason for hiding this comment

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

LGTM

@graphite-app
Copy link
Copy Markdown

graphite-app Bot commented May 12, 2026

Merge activity

…itation entry point (#7261)

Resolves #7251(FR-2817)

## Summary

Two regressions surfaced after the storage-status widget moved to the dashboard:

1. The red `+N` badge over `초대된 폴더` was placed with a negative Y-offset (`-token.sizeXS`) that pushed it above the dashboard card body, where it was clipped by the card's overflow.
2. The `/data` page offered no in-page entry point to view / accept / reject pending invitations — users could only reach the existing invitation modal via the (clipped) badge from the dashboard.

## Changes

- **`StorageStatusPanelCard`**: drop the negative Y offset on the invitation `Badge` (now `offset={[-token.sizeXS, 0]}`) so it overlays the title's top-right corner inside the card body bounds.
- **`VFolderNodeListPage`** (`/data`): surface pending invitations via the `BAITabs` `tabBarExtraContent` slot as a `BAILink` labeled `Pending invitations (N)`, rendered only when `useVFolderInvitations()` reports any pending invitation. Clicking it sets `?invitation=true`, which the existing global `FolderInvitationResponseModalOpener` already binds to to open the accept/reject modal — no new modal/component needed. The card header `extra` now only carries `Create Folder`.
- **i18n**: correct the Korean translation of `data.invitation.PendingInvitations` from `받은 초대장` (Received invitations) to `응답 대기 중인 초대` (Awaiting-response invitations) so it matches the English `Pending invitations`. Other locales were already semantically correct and left unchanged.

## Verification

- Relay: PASS
- Lint: PASS
- Format: PASS
- TypeScript: pre-existing failures only on `main` (unrelated to this change; tracked separately under FR-2816).

## Test environment

You can use the test server at `10.122.10.107` for review/QA.

## Manual smoke test

- Have at least one pending vfolder invitation.
- Open the dashboard → the `+N` badge over `초대된 폴더` is no longer clipped at the top of the card.
- Open `/data` → a `Pending invitations (N)` link appears in the tab bar's right-side extra area (next to the `Active` / `Trash bin` tabs), shown only when there are pending invitations. Click → the invitation modal opens with accept / reject actions.
@graphite-app graphite-app Bot force-pushed the 05-06-fix_fr-2817_unclip_folder-status_invitation_badge_and_add__data_invitation_entry_point branch from 3416562 to 82d550b Compare May 12, 2026 04:51
@graphite-app graphite-app Bot merged commit 82d550b into main May 12, 2026
12 checks passed
@graphite-app graphite-app Bot deleted the 05-06-fix_fr-2817_unclip_folder-status_invitation_badge_and_add__data_invitation_entry_point branch May 12, 2026 04:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Folder status widget — invitation badge is clipped on the dashboard, and invited folders are missing from /data

3 participants