mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-26 19:09:52 +00:00
Continuation of #6034 with - Updated synchronization for seed - Properly truncates the displayed widget value for the button - Synchronizes control after generate state with litegraph and allows for serialization Several issues from original PR have not (yet) been addressed, but are likely better moved to future PR - fix step value being 10 (legacy system) - ensure it works with COMBO (Fixed in #7095) - ensure it works with FLOAT (Fixed in #7095) - either implement or remove the config button functionality - think it should open settings? <img width="280" height="694" alt="image" src="https://github.com/user-attachments/assets/f36f1cb0-237d-4bfc-bff1-e4976775cf98" /> ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6985-Support-control-after-generate-in-vue-2b86d73d365081d8b01ce489d887ff00) by [Unito](https://www.unito.io) --------- Co-authored-by: bymyself <cbyrne@comfy.org> Co-authored-by: github-actions <github-actions@github.com>
36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { computed, toValue } from 'vue'
|
|
import type { MaybeRefOrGetter } from 'vue'
|
|
|
|
interface NumberWidgetOptions {
|
|
step2?: number
|
|
precision?: number
|
|
}
|
|
|
|
/**
|
|
* Shared composable for calculating step values in number input widgets
|
|
* Handles both explicit step2 values and precision-derived steps
|
|
*/
|
|
export function useNumberStepCalculation(
|
|
options: NumberWidgetOptions | undefined,
|
|
precisionArg: MaybeRefOrGetter<number | undefined>,
|
|
returnUndefinedForDefault = false
|
|
) {
|
|
return computed(() => {
|
|
const precision = toValue(precisionArg)
|
|
// Use step2 (correct input spec value) instead of step (legacy 10x value)
|
|
if (options?.step2 !== undefined) {
|
|
return Number(options.step2)
|
|
}
|
|
|
|
if (precision === undefined) {
|
|
return returnUndefinedForDefault ? undefined : 0
|
|
}
|
|
|
|
if (precision === 0) return 1
|
|
|
|
// For precision > 0, step = 1 / (10^precision)
|
|
const step = 1 / Math.pow(10, precision)
|
|
return returnUndefinedForDefault ? step : Number(step.toFixed(precision))
|
|
})
|
|
}
|