mirror of
https://github.com/Sped0n/bridget.git
synced 2026-04-17 11:39:29 -07:00
fix(customCursor.ts): add return type void to onMouse function for clarity fix(customCursor.ts): add passive option to window event listener for mousemove to improve performance fix(stageNav.ts): move import statement for setCustomCursor to the top for better organization fix(stageNav.ts): add return type void to handleClick function for clarity fix(stageNav.ts): add return type void to handleKey function for clarity fix(stageNav.ts): add passive option to overlay event listeners for click, keydown, mouseover, and focus to improve performance fix(stageNav.ts): add passive option to window event listener for keydown to improve performance fix(stageNav.ts): add return type void to nextImage function for clarity fix(stageNav.ts): add return type void to prevImage function for clarity fix(gallery.ts): move import statement for Swiper to the top for better organization fix(gallery.ts): add return type void to slideUp function for clarity fix(gallery.ts): add return type void to initGallery function for clarity fix(gallery.ts): add passive option to window event listener for touchstart to improve performance fix(gallery.ts): add return type void to changeSlide function for clarity fix(gallery.ts): add return type void to scrollToActive function for clarity fix(gallery.ts): add return type void to createGallery function for clarity fix(gallery.ts): add passive option to close event listeners for click and keydown to improve performance fix(gallery.ts): add passive option to overlay event listeners for click, keydown, mouseover, and focus to improve performance fix(gallery.ts): add passive option to window event listener for touchstart to improve performance fix(nav.ts): add return type void to initNav function for clarity fix(utils.ts): add return type number to getRandom function for clarity fix(utils.ts): add return type void to onVisible function for clarity fix(utils.ts): add return type void to addWatcher function in Watchable class for clarity
86 lines
1.6 KiB
TypeScript
86 lines
1.6 KiB
TypeScript
import { updateIndexText, updateThresholdText } from './nav'
|
|
import { Watchable, decrement, increment } from './utils'
|
|
|
|
/**
|
|
* types
|
|
*/
|
|
|
|
export type State = typeof defaultState
|
|
|
|
/**
|
|
* variables
|
|
*/
|
|
|
|
const thresholds = [
|
|
{ threshold: 20, trailLength: 20 },
|
|
{ threshold: 40, trailLength: 10 },
|
|
{ threshold: 80, trailLength: 5 },
|
|
{ threshold: 140, trailLength: 5 },
|
|
{ threshold: 200, trailLength: 5 }
|
|
]
|
|
|
|
const defaultState = {
|
|
index: -1,
|
|
length: 0,
|
|
threshold: thresholds[2].threshold,
|
|
trailLength: thresholds[2].trailLength
|
|
}
|
|
|
|
export const state = new Watchable<State>(defaultState)
|
|
|
|
/**
|
|
* main functions
|
|
*/
|
|
|
|
export function initState(length: number): void {
|
|
const s = state.get()
|
|
s.length = length
|
|
state.set(s)
|
|
state.addWatcher(() => {
|
|
updateIndexText()
|
|
updateThresholdText()
|
|
})
|
|
}
|
|
|
|
export function setIndex(index: number): void {
|
|
const s = state.get()
|
|
s.index = index
|
|
state.set(s)
|
|
}
|
|
|
|
export function incIndex(): void {
|
|
const s = state.get()
|
|
s.index = increment(s.index, s.length)
|
|
state.set(s)
|
|
}
|
|
|
|
export function decIndex(): void {
|
|
const s = state.get()
|
|
s.index = decrement(s.index, s.length)
|
|
state.set(s)
|
|
}
|
|
|
|
export function incThreshold(): void {
|
|
let s = state.get()
|
|
s = updateThreshold(s, 1)
|
|
state.set(s)
|
|
}
|
|
|
|
export function decThreshold(): void {
|
|
let s = state.get()
|
|
s = updateThreshold(s, -1)
|
|
state.set(s)
|
|
}
|
|
|
|
/**
|
|
* helper
|
|
*/
|
|
|
|
function updateThreshold(state: State, inc: number): State {
|
|
const i = thresholds.findIndex((t) => state.threshold === t.threshold) + inc
|
|
// out of bounds
|
|
if (i < 0 || i >= thresholds.length) return state
|
|
const newItems = thresholds[i]
|
|
return { ...state, ...newItems }
|
|
}
|