@adcops/autocore-react 3.0.21 → 3.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{useCallback,useState}from"react";export const kMillimeters2Inches=1/25.4;export function useScaledValue(e,t,a=0){const[s,c]=useState(e*t+a);return[s,useCallback((e=>{c(e*t+a)}),[t,a])]}
1
+ import{useCallback,useState,useEffect}from"react";export const kMillimeters2Inches=1/25.4;export function useScaledValue(e,t,s=0){const[u,a]=useState(e),[c,l]=useState((()=>e*t+s));useEffect((()=>{l(u*t+s)}),[u,t,s]);return[c,useCallback((e=>{a(e)}),[t,s])]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adcops/autocore-react",
3
- "version": "3.0.21",
3
+ "version": "3.0.22",
4
4
  "description": "A React component library for industrial user interfaces.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -2,14 +2,14 @@
2
2
  * Copyright (C) 2024 Automated Design Corp.. All Rights Reserved.
3
3
  * Created Date: 2024-04-30 11:41:59
4
4
  * -----
5
- * Last Modified: 2024-04-30 21:33:42
5
+ * Last Modified: 2024-05-02 15:14:03
6
6
  * -----
7
7
  *
8
8
  */
9
9
 
10
10
 
11
11
 
12
- import { useCallback, useState } from 'react';
12
+ import { useCallback, useState, useEffect } from 'react';
13
13
 
14
14
 
15
15
  export const kMillimeters2Inches: number = 1 / 25.4;
@@ -71,18 +71,22 @@ type UseScaledValueReturn = [number, (newValue: number) => void];
71
71
  * input display accordingly. The user's input is converted back to the base unit before being processed.
72
72
  */
73
73
  export function useScaledValue(initialValue: number, scale: number, offset: number = 0): UseScaledValueReturn {
74
+ const [baseValue, setBaseValue] = useState<number>(initialValue);
75
+ const [displayValue, setDisplayValue] = useState<number>(() => (initialValue * scale) + offset);
74
76
 
75
- const [displayValue, setDisplayValue] = useState<number>(initialValue * scale + offset);
76
-
77
- const handleSetDisplayValue = useCallback((newValue: number) => {
77
+ // Update display value whenever baseValue, scale, or offset changes
78
+ useEffect(() => {
78
79
 
79
80
  // In autocore-react, we multiple to scale incoming values,
80
81
  // divide to scale outgoing values.
81
82
  // This is an INCOMING value, so we multiply.
82
83
 
83
- const newDisplayValue = newValue * scale + offset;
84
- setDisplayValue(newDisplayValue);
84
+ setDisplayValue((baseValue * scale) + offset);
85
+ }, [baseValue, scale, offset]);
85
86
 
87
+ // Function to update baseValue when displayValue changes
88
+ const handleSetDisplayValue = useCallback((newValue: number) => {
89
+ setBaseValue(newValue);
86
90
  }, [scale, offset]);
87
91
 
88
92
  return [displayValue, handleSetDisplayValue];