Skip to content

Commit e358cab

Browse files
committed
Merge branch 'main' of github.com:ionic-team/ionic-framework into ionic-49
2 parents ec83531 + 1899b49 commit e358cab

4 files changed

Lines changed: 27 additions & 8 deletions

File tree

.github/workflows/conventional-commit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
if: |
1313
!contains(github.event.pull_request.title, 'release') &&
1414
!contains(github.event.pull_request.title, 'chore')
15-
uses: amannn/action-semantic-pull-request@v5
15+
uses: amannn/action-semantic-pull-request@v6
1616
env:
1717
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1818
with:

core/package-lock.json

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/src/components/checkbox/checkbox.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ export class Checkbox implements ComponentInterface {
328328
{this.renderHintText()}
329329
</div>
330330
<div class="native-wrapper">
331-
<svg class="checkbox-icon" viewBox="0 0 24 24" part="container">
331+
<svg class="checkbox-icon" viewBox="0 0 24 24" part="container" aria-hidden="true">
332332
{path}
333333
</svg>
334334
</div>

core/src/components/refresher/refresher.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,15 @@ export class Refresher implements ComponentInterface {
253253
this.didRefresh = true;
254254
hapticImpact({ style: ImpactStyle.Light });
255255

256+
/**
257+
* Clear focus from any active element to prevent scroll jumps
258+
* when the refresh completes
259+
*/
260+
const activeElement = document.activeElement as HTMLElement;
261+
if (activeElement?.blur !== undefined) {
262+
activeElement.blur();
263+
}
264+
256265
/**
257266
* Translate the content element otherwise when pointer is removed
258267
* from screen the scroll content will bounce back over the refresher
@@ -733,6 +742,16 @@ export class Refresher implements ComponentInterface {
733742
// place the content in a hangout position while it thinks
734743
this.setCss(this.pullMin, this.snapbackDuration, true, '');
735744

745+
/**
746+
* Clear focus from any active element to prevent the browser
747+
* from restoring focus and causing scroll jumps after refresh.
748+
* This ensures the view stays at the top after refresh completes.
749+
*/
750+
const activeElement = document.activeElement as HTMLElement;
751+
if (activeElement?.blur !== undefined) {
752+
activeElement.blur();
753+
}
754+
736755
// emit "refresh" because it was pulled down far enough
737756
// and they let go to begin refreshing
738757
this.ionRefresh.emit({

0 commit comments

Comments
 (0)