mirror of
https://github.com/Sped0n/bridget.git
synced 2026-04-14 10:09:31 -07:00
* refactor: change hires loader function name * feat: add loading transition animation and improve performance * refactor: refactor mutation handling in desktop codebase - Modify the `initStage` function in `assets/ts/desktop/stage.ts`: - Change the `onMutation` callback to accept a single mutation instead of an array of mutations. - Update the conditions inside the callback to use `hold` instead of `skip`. - Modify the `onMutation` function in `assets/ts/desktop/utils.ts`: - Change the `callback` parameter to `trigger`. - Update the implementation of the function to iterate over each mutation and check if it triggers the `trigger` function. If it does, disconnect the observer and break the loop. * style: refactor state section and remove unnecessary code - Remove the declaration of `lastIndex` on line 21 - Add a comment block for the state section - Add a declaration of `lastIndex` for the state section * refactor: refactor mobile collection and intersection functions - Modify the `initCollection` function in `assets/ts/mobile/collection.ts` - Remove the nested loop in the `initCollection` function - Modify the `onIntersection` function in `assets/ts/mobile/utils.ts` - Replace the callback parameter with a trigger parameter in the `onIntersection` function - Remove the nested loop in the `onIntersection` function * refactor: refactor Watchable class constructor to include lazy parameter - Add a second parameter `lazy` in the constructor of the `Watchable` class in `globalUtils.ts` - Set the default value of `lazy` to `true` in the constructor - Add a condition to check if `e` is equal to `this.obj` and `this.lazy` is `true` to return in `watch` - Delete the previous constructor definition in the `Watchable` class in `globalUtils.ts` * fix: set state's lazy param to false * refactor: refactor third party lib import
43 lines
860 B
TypeScript
43 lines
860 B
TypeScript
import { type Swiper } from 'swiper'
|
|
|
|
/**
|
|
* interfaces
|
|
*/
|
|
|
|
export interface MobileImage extends HTMLImageElement {
|
|
dataset: {
|
|
src: string
|
|
}
|
|
}
|
|
|
|
/**
|
|
* utils
|
|
*/
|
|
|
|
export function getRandom(min: number, max: number): number {
|
|
return Math.floor(Math.random() * (max - min + 1)) + min
|
|
}
|
|
|
|
export function onIntersection<T extends HTMLElement>(
|
|
element: T,
|
|
trigger: (arg0: IntersectionObserverEntry) => boolean
|
|
): void {
|
|
new IntersectionObserver((entries, observer) => {
|
|
for (const entry of entries) {
|
|
if (trigger(entry)) {
|
|
observer.disconnect()
|
|
break
|
|
}
|
|
}
|
|
}).observe(element)
|
|
}
|
|
|
|
export function capitalizeFirstLetter(str: string): string {
|
|
return str.charAt(0).toUpperCase() + str.slice(1)
|
|
}
|
|
|
|
export async function loadSwiper(): Promise<typeof Swiper> {
|
|
const s = await import('swiper')
|
|
return s.Swiper
|
|
}
|