Appearance
createProjection
Category
Export Size
137 B
Package
@reause/math Last Changed
5 days ago
Related
Reactive numeric projection from one domain to another.
Demo
Usage
tsx
import { createProjection } from '@reause/math'
import { useState } from 'react'
const useProjector = createProjection([0, 10], [0, 100])
const [input, setInput] = useState(0)
const projected = useProjector(input) // 0
setInput(5) // projected === 50 on the next render
setInput(10) // projected === 100 on the next renderType Declarations
ts
export type ProjectorFunction<F, T> = (input: F, from: readonly [
F,
F
], to: readonly [
T,
T
]) => T
export type UseProjection<F, T> = (input: F) => T
export function createProjection(fromDomain: readonly [
number,
number
], toDomain: readonly [
number,
number
], projector?: ProjectorFunction<number, number>): UseProjection<number, number>
export function useProjection(input: number, fromDomain: readonly [
number,
number
], toDomain: readonly [
number,
number
], projector?: ProjectorFunction<number, number>): number
export function createGenericProjection<F = number, T = number>(fromDomain: readonly [
F,
F
], toDomain: readonly [
T,
T
], projector: ProjectorFunction<F, T>): UseProjection<F, T>