-
Notifications
You must be signed in to change notification settings - Fork 17
MWPW-191570: Studio pagination, search refill, and translation dialog UX #742
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
47 commits
Select commit
Hold shift + click to select a range
b78588d
chore: add docs/ to .gitignore (per-ticket documentation not committed)
Axelcureno 5c78d3b
fix(translation): guard sentinel on non-empty items list to prevent c…
Axelcureno 9a71c3a
fix(translation): remove early-exit from loadAllFragments; replace ab…
Axelcureno 2fbbc88
fix(content): delay sentinel re-observe with requestAnimationFrame af…
Axelcureno 4664df7
test(content): improve RAF re-observe test to verify callback is defe…
Axelcureno 97d0f74
fix(repository): cap eagerLoadAllPznPages at MAX_EAGER_PAGES to preve…
Axelcureno c6f4fba
test(translation): fix sentinel test to set displayCards after subscr…
Axelcureno 9efa38a
test: fix mas-select-items-table test setup pattern
Axelcureno fd4c6cc
MWPW-191570: Add skeleton shimmer to translations and placeholders ta…
Axelcureno dfac0ea
MWPW-191570: Fix placeholders skeleton disappearing prematurely
Axelcureno 0d0740e
refactor(translation): DRY table-head template, fix re-entrancy in pr…
Axelcureno 2d7498b
feat(repository): auto-refill search pages when filtered count below 25
Axelcureno dd366d8
test(repository): cover refill-below-threshold loop and fix paginatio…
Axelcureno 1b21157
feat(translation): improve Select items dialog UX
Axelcureno 55d9965
fix(translation): add spacing between dialog header, tabs, and filters
Axelcureno 5f524e1
fix: resolve all CI failures — prettier studio.html, fix 5 pre-existi…
Axelcureno 37a8630
fix(translation): restore dialog footer buttons with headline-visibil…
Axelcureno 84c4af5
Merge remote-tracking branch 'origin/main' into MWPW-191570
Axelcureno 08349ce
fix(repository): cap refill rounds and guard against sentinel race
Axelcureno 98f6d19
chore: revert studio.html worktree dev changes (out of PR scope)
Axelcureno f7899a4
Merge branch 'main' into MWPW-191570
mirafedas fd1b1c5
MWPW-191570 - address PR review feedback from yesil
Axelcureno 5d6ee64
Merge branch 'main' into MWPW-191570
Axelcureno 576165e
MWPW-191570 - fix stuck loading flag and hidden tab filter clobber
Axelcureno fc7377f
Merge branch 'main' into MWPW-191570
Axelcureno 646386e
Revert "MWPW-191570 - fix stuck loading flag and hidden tab filter cl…
Axelcureno e005bc9
Merge branch 'main' into MWPW-191570
Roycethan a562bce
Merge branch 'main' into MWPW-191570
Axelcureno 641dad3
MWPW-191570 - address QA feedback on translation Select items dialog
Axelcureno 266fe83
Merge branch 'main' into MWPW-191570
Axelcureno 8a3c81a
Merge branch 'main' into MWPW-191570
Axelcureno cbc44a0
MWPW-191570: restore dialog close + right-align footer CTAs
Axelcureno dde077b
MWPW-191570: stop filter checkbox change from clobbering tab selection
Axelcureno 5949e88
MWPW-191570: stop filter popover opens from clearing filter state
Axelcureno dbbff1c
MWPW-191570: prevent duplicate close event from wiping confirmed sele…
Axelcureno 8278a06
MWPW-191570: simplify Select items dialog after review
Axelcureno da54e56
MWPW-191570: add regression tests for Select items dialog fixes
Axelcureno ccf6e6c
MWPW-191570: make dialog search filter on every keystroke
Axelcureno 81f1c26
nala: auto-detect worktree port for npm run nala local
Axelcureno 0c81f94
MWPW-191570: load collections via dedicated model-filtered query
Axelcureno f7f17f5
MWPW-191570: simplify loadAllCollections after review
Axelcureno f589a4f
test(nala): update expected FR seeTerms for CCD Apps Teams card
Axelcureno 27e194e
test(nala): bump translations list wait timeout 15s → 20s
Axelcureno 8f2cccc
test(nala): wait for real data row or empty state, not table visibility
Axelcureno a065d33
MWPW-191570: make Selected-items side panel scroll internally
Axelcureno 1ae3235
Revert "test(nala): update expected FR seeTerms for CCD Apps Teams card"
Axelcureno ffce0b2
Merge branch 'main' into MWPW-191570
Roycethan File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| import { css } from 'lit'; | ||
|
|
||
| export const skeletonStyles = css` | ||
| .skeleton-element { | ||
| background: linear-gradient( | ||
| 90deg, | ||
| var(--spectrum-gray-200) 25%, | ||
| var(--spectrum-gray-100) 50%, | ||
| var(--spectrum-gray-200) 75% | ||
| ); | ||
| background-size: 200% 100%; | ||
| animation: shimmer 1.5s infinite; | ||
| border-radius: 4px; | ||
| } | ||
|
|
||
| .skeleton-table-cell { | ||
| height: 18px; | ||
| width: 80%; | ||
| border-radius: 4px; | ||
| } | ||
|
|
||
| .skeleton-row sp-table-cell { | ||
| padding: 16px 20px; | ||
| } | ||
|
|
||
| @keyframes shimmer { | ||
| 0% { | ||
| background-position: 200% 0; | ||
| } | ||
| 100% { | ||
| background-position: -200% 0; | ||
| } | ||
| } | ||
| `; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: loading flag race —
#refillBelowThresholdis fire-and-forget here. It setsloading=truesynchronously (before its firstawait), but thensearchFragmentsfalls through toStore.fragments.list.loading.set(false)a few lines below. That overwrites the refill's loading guard.At that point
hasMore=true+loading=false— so the sentinel can fireloadNextPage()while#refillBelowThresholdis still iterating the same cursor.The PZN path avoids this by setting
hasMore=falsebefore the fire-and-forget#eagerLoadAllPznPagescall. The refill path doesn't have that guard.Suggested fix — skip the outer
loading.set(false)when refill is about to run and let refill'sfinallyblock own the loading lifecycle:(The existing test passes because it exercises
#refillBelowThresholdin isolation, without the outersearchFragmentsclobbering the flag.)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch — fixed in fd1b1c5. Added
let refilling = falsebefore thetryblock, set it when#refillBelowThresholdis fired, and guarded the trailingStore.fragments.list.loading.set(false)withif (!refilling).Follow-up in 576165e: a challenge-agent pass flagged a remaining window — if a second
searchFragmentsaborts the first afterrefilling=truebut before the scheduled refill took ownership of the loading lifecycle, thecatchpath leftloadingpinned. The catch now also clears loading onAbortErrorwhenrefillingwas set.