default value

This commit is contained in:
wass08
2026-03-06 13:08:24 +01:00
parent 202fc41f42
commit 849baa0a0e
4 changed files with 15 additions and 10 deletions
@@ -10,7 +10,7 @@ import {
useScene,
} from '@pascal-app/core'
import { ChevronDown, ChevronRight } from 'lucide-react'
import { useState } from 'react'
import { useMemo, useState } from 'react'
import { useShallow } from 'zustand/react/shallow'
import { cn } from '@/lib/utils'
@@ -145,10 +145,10 @@ function CollectionRow({ collectionId }: { collectionId: CollectionId }) {
),
)
const controlValuesByItem = useInteractive(
useShallow((s) =>
Object.fromEntries(interactiveItems.map((n) => [n.id, s.items[n.id]?.controlValues ?? []])),
),
const allItems = useInteractive((s) => s.items)
const controlValuesByItem = useMemo(
() => Object.fromEntries(interactiveItems.map((n) => [n.id, allItems[n.id]?.controlValues ?? []])),
[allItems, interactiveItems],
)
const setControlValue = useInteractive((s) => s.setControlValue)
@@ -1235,7 +1235,8 @@ export const CATALOG_ITEMS: AssetInput[] = [
kind: 'toggle',
},
{
kind: 'slider', label: 'Intensity', min: 0, max: 100, unit: '%', displayMode: 'dial'
kind: 'slider', label: 'Intensity', min: 0, max: 100, unit: '%', displayMode: 'dial',
default: 100
}
],
effects: [
@@ -1266,7 +1267,8 @@ export const CATALOG_ITEMS: AssetInput[] = [
kind: 'toggle',
},
{
kind: 'slider', label: 'Intensity', min: 0, max: 100, unit: '%', displayMode: 'dial'
kind: 'slider', label: 'Intensity', min: 0, max: 100, unit: '%', displayMode: 'dial' ,
default: 100
}
],
effects: [
+3
View File
@@ -8,6 +8,7 @@ import type { CollectionId } from '../collections'
const toggleControlSchema = z.object({
kind: z.literal('toggle'),
label: z.string().optional(),
default: z.boolean().optional(),
})
const sliderControlSchema = z.object({
@@ -18,6 +19,7 @@ const sliderControlSchema = z.object({
step: z.number().default(1),
unit: z.string().optional(),
displayMode: z.enum(['slider', 'stepper', 'dial']).default('slider'),
default: z.number().optional(),
})
const temperatureControlSchema = z.object({
@@ -26,6 +28,7 @@ const temperatureControlSchema = z.object({
min: z.number().default(16),
max: z.number().default(30),
unit: z.enum(['C', 'F']).default('C'),
default: z.number().optional(),
})
const controlSchema = z.discriminatedUnion('kind', [
+3 -3
View File
@@ -30,11 +30,11 @@ const defaultControlValue = (interactive: Interactive, index: number): ControlVa
if (!control) return false
switch (control.kind) {
case 'toggle':
return false
return control.default ?? false
case 'slider':
return control.min
return control.default ?? control.min
case 'temperature':
return control.min
return control.default ?? control.min
}
}