diff --git a/app/components/float.tsx b/app/components/float.tsx index 27ba2b0..4915dd1 100644 --- a/app/components/float.tsx +++ b/app/components/float.tsx @@ -1,22 +1,47 @@ -export function Float({ float }: { float: number }) { +import { Slider, Label } from "@heroui/react"; +import { useEffect, useState } from "react"; + +export function Float({ + float, + minFloat = 0, + maxFloat = 1, + acceptInput = false, +}: { + float: number; + minFloat?: number; + maxFloat?: number; + acceptInput?: boolean; +}) { + const [value, setValue] = useState(float); + + useEffect(() => { + setValue(Math.max(minFloat, Math.min(maxFloat, float))); + }, [float, minFloat, maxFloat]); + + const handleChange = (newValue: number | number[]) => { + const val = Array.isArray(newValue) ? newValue[0]: newValue; + setValue(Math.max(minFloat, Math.min(maxFloat, val))); + }; + return ( <> -
-
+
-
-
-
-
-
-
-
-
+ > +
+ + + ); } diff --git a/app/components/skin_dialog.tsx b/app/components/skin_dialog.tsx index b6213d3..19417ca 100644 --- a/app/components/skin_dialog.tsx +++ b/app/components/skin_dialog.tsx @@ -82,7 +82,7 @@ export function SkinDialog({ Float: {skin.float} - + )} {skin instanceof WeaponInfo && ( diff --git a/app/components/skin_tile.tsx b/app/components/skin_tile.tsx index ac8c341..7172892 100644 --- a/app/components/skin_tile.tsx +++ b/app/components/skin_tile.tsx @@ -50,7 +50,7 @@ export function SkinTile({ {skin.display} {skin instanceof WeaponInfo && ( - + )} {skin instanceof WeaponInfo && ( diff --git a/app/types/skin.ts b/app/types/skin.ts index 0e02d34..e387942 100644 --- a/app/types/skin.ts +++ b/app/types/skin.ts @@ -5,6 +5,8 @@ export class WeaponInfo { display!: string; paint_index!: number; float!: number; + min_float!: number; + max_float!: number; pattern!: number; constructor(data: WeaponInfo) {