mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-08 15:51:16 +08:00
Merge branch 'main' into chore/update-from-main
This commit is contained in:
@ -347,7 +347,12 @@ export class Checkbox implements ComponentInterface {
|
||||
</div>
|
||||
<div class="native-wrapper">
|
||||
{/* Phosphor Icons define a larger viewBox */}
|
||||
<svg class="checkbox-icon" viewBox={theme === 'ionic' ? '0 0 256 256' : '0 0 24 24'} part="container">
|
||||
<svg
|
||||
class="checkbox-icon"
|
||||
viewBox={theme === 'ionic' ? '0 0 256 256' : '0 0 24 24'}
|
||||
part="container"
|
||||
aria-hidden="true"
|
||||
>
|
||||
{path}
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
@ -255,6 +255,15 @@ export class Refresher implements ComponentInterface {
|
||||
this.didRefresh = true;
|
||||
hapticImpact({ style: ImpactStyle.Light });
|
||||
|
||||
/**
|
||||
* Clear focus from any active element to prevent scroll jumps
|
||||
* when the refresh completes
|
||||
*/
|
||||
const activeElement = document.activeElement as HTMLElement;
|
||||
if (activeElement?.blur !== undefined) {
|
||||
activeElement.blur();
|
||||
}
|
||||
|
||||
/**
|
||||
* Translate the content element otherwise when pointer is removed
|
||||
* from screen the scroll content will bounce back over the refresher
|
||||
@ -735,6 +744,16 @@ export class Refresher implements ComponentInterface {
|
||||
// place the content in a hangout position while it thinks
|
||||
this.setCss(this.pullMin, this.snapbackDuration, true, '');
|
||||
|
||||
/**
|
||||
* Clear focus from any active element to prevent the browser
|
||||
* from restoring focus and causing scroll jumps after refresh.
|
||||
* This ensures the view stays at the top after refresh completes.
|
||||
*/
|
||||
const activeElement = document.activeElement as HTMLElement;
|
||||
if (activeElement?.blur !== undefined) {
|
||||
activeElement.blur();
|
||||
}
|
||||
|
||||
// emit "refresh" because it was pulled down far enough
|
||||
// and they let go to begin refreshing
|
||||
this.ionRefresh.emit({
|
||||
|
||||
@ -157,7 +157,7 @@ export class ReorderGroup implements ComponentInterface {
|
||||
const heights = this.cachedHeights;
|
||||
heights.length = 0;
|
||||
const el = this.el;
|
||||
const children: any = el.__children;
|
||||
const children: any = el.__children || el.children;
|
||||
if (!children || children.length === 0) {
|
||||
return;
|
||||
}
|
||||
@ -263,7 +263,7 @@ export class ReorderGroup implements ComponentInterface {
|
||||
private completeReorder(listOrReorder?: boolean | any[]): any {
|
||||
const selectedItemEl = this.selectedItemEl;
|
||||
if (selectedItemEl && this.state === ReorderGroupState.Complete) {
|
||||
const children: any = this.el.__children;
|
||||
const children: any = this.el.__children || this.el.children;
|
||||
const len = children.length;
|
||||
const toIndex = this.lastToIndex;
|
||||
const fromIndex = indexForItem(selectedItemEl);
|
||||
@ -313,7 +313,7 @@ export class ReorderGroup implements ComponentInterface {
|
||||
/********* DOM WRITE ********* */
|
||||
private reorderMove(fromIndex: number, toIndex: number) {
|
||||
const itemHeight = this.selectedItemHeight;
|
||||
const children: any = this.el.__children;
|
||||
const children: any = this.el.__children || this.el.children;
|
||||
for (let i = 0; i < children.length; i++) {
|
||||
const style = (children[i] as any).style;
|
||||
let value = '';
|
||||
|
||||
Reference in New Issue
Block a user