BUG: #149300 - 图标容器添加分页上限

This commit is contained in:
luojiahao 2022-12-02 14:25:03 +08:00
parent 847f2d7032
commit 77dda47765
2 changed files with 20 additions and 1 deletions

View File

@ -744,7 +744,11 @@ export class GaiaContainer extends StarBaseElement {
if (pagination < 0) return
let page = this.pages[pagination]
if (!page) {
page = this.addPage()
page = this.addPage()!
if (!page) {
console.error('Append child error!')
return
}
}
let proto = HTMLElement.prototype.appendChild
let func
@ -1025,6 +1029,8 @@ export class GaiaContainer extends StarBaseElement {
addPage(pages?: {page: HTMLElement; shadowPage: HTMLElement}) {
const {page, shadowPage} = pages ?? this.pages.addPage()
if (!page || !shadowPage) return null
HTMLElement.prototype.appendChild.call(this, page)
HTMLElement.prototype.appendChild.call(this, shadowPage)

View File

@ -7,6 +7,8 @@ class GaiaContainerPage {
_suspending: HTMLElement[] = []
_manager: GaiaContainer
_shadowPagesMap: WeakMap<HTMLElement, HTMLElement> = new WeakMap()
// 分页数量上限
_limit: number = 15
_tail: HTMLElement | undefined
_shadowTail: HTMLElement | undefined
@ -74,6 +76,13 @@ class GaiaContainerPage {
}
addPage = () => {
if (this._pages.length >= this._limit) {
console.info('The number of pages reaches the limit!')
return {
page: null,
shadowPage: null,
}
}
const div = document.createElement('div')
const pagination = `${this._pages.length}`
div.className = `gaia-container-page`
@ -106,6 +115,10 @@ class GaiaContainerPage {
addTail = () => {
if (!this._tail || !this._shadowTail || this._tail.children.length) {
const pages = this.addPage()
if (!pages.page || !pages.shadowPage) {
console.log('Can not add the page!')
return
}
this._tail = pages.page
this._suspending.push(this._tail)
this._shadowTail = pages.shadowPage