Skip to content

Commit

Permalink
Fix Presets ini EditScenesDialog
Browse files Browse the repository at this point in the history
  • Loading branch information
YeonV committed Jan 3, 2024
1 parent f1bc6c6 commit 9412c70
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 12 deletions.
75 changes: 65 additions & 10 deletions src/components/Dialogs/SceneDialogs/EditSceneDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ const EditSceneDialog = () => {
const [midiActivate, setMIDIActivate] = useState('')
const [invalid, setInvalid] = useState(false)
const [lp, setLp] = useState(undefined as any)
// const [user_presets, setUp] = useState(undefined as any)
const [disabledPSelector, setDisabledPSelector] = useState([] as string[])
const [scVirtualsToIgnore, setScVirtualsToIgnore] = useState<string[]>([])
const medium = useMediaQuery('(max-width: 920px )')
const small = useMediaQuery('(max-width: 580px )')
const xsmall = useMediaQuery('(max-width: 480px )')

const { user_presets } = useStore((state) => state.config)
const { effects } = useStore((state) => state.schemas)
const scenes = useStore((state) => state.scenes)
const open = useStore((state) => state.dialogs.addScene?.edit || false)
Expand All @@ -70,7 +70,8 @@ const EditSceneDialog = () => {
const addScene = useStore((state) => state.addScene)
const getScenes = useStore((state) => state.getScenes)
const getLedFxPresets = useStore((state) => state.getLedFxPresets)
const getFullConfig = useStore((state) => state.getFullConfig)
const getUserPresets = useStore((state) => state.getUserPresets)
// const getFullConfig = useStore((state) => state.getFullConfig)

const toggletSceneActiveTag = useStore(
(state) => state.ui.toggletSceneActiveTag
Expand Down Expand Up @@ -176,12 +177,17 @@ const EditSceneDialog = () => {
}

useEffect(() => {
getFullConfig()
getLedFxPresets().then((ledfx_presets) => {
setLp(ledfx_presets)
})
}, [])
// if (open) getFullConfig()

if (open)
getLedFxPresets().then((ledfx_presets) => {
setLp(ledfx_presets)
})
if (open) getUserPresets()
// .then((u_presets) => {
// // setUp(u_presets)
// })
}, [open])
useEffect(() => {
if (open) activateScene(data.name?.toLowerCase().replaceAll(' ', '-'))
}, [open])
Expand Down Expand Up @@ -215,6 +221,8 @@ const EditSceneDialog = () => {
}
}, [])

const { user_presets } = useStore((state) => state.config)

const renderPresets = (ledfx_presets: any, dev: string, effectId: string) => {
if (ledfx_presets) {
const ledfxPreset =
Expand Down Expand Up @@ -243,7 +251,11 @@ const EditSceneDialog = () => {
.filter((n) => !!n)
const userPreset =
userPresets && userPresets.length === 1 && userPresets[0]

console.log(ledfxPreset, sVirtuals[dev].config)
Object.keys(ledfx_presets).map((k) => {
console.log(k, (ledfx_presets[k] as any).config)
return k
})
return ledfxPreset || userPreset ? (
<Select
defaultValue={ledfxPreset || userPreset}
Expand All @@ -257,7 +269,7 @@ const EditSceneDialog = () => {
e.target.value
)
) {
category = 'user_presets'
category = 'custom_presets'
}

return (
Expand Down Expand Up @@ -299,8 +311,51 @@ const EditSceneDialog = () => {
))}
</Select>
) : (
<Select value="Not saved as Preset" disableUnderline>
<Select
defaultValue="Not saved as Preset"
onChange={(e) => {
let category = 'default_presets'
if (
user_presets &&
user_presets[effectId] &&
Object.prototype.hasOwnProperty.call(
user_presets[effectId],
e.target.value
)
) {
category = 'custom_presets'
}

return (
e.target.value &&
activatePreset(
dev,
category,
sVirtuals[dev].type,
e.target.value
).then(() => getVirtuals())
)
}}
disableUnderline
>
<MenuItem value="Not saved as Preset">Not saved as Preset</MenuItem>
{ledfx_presets && <ListSubheader>LedFx Presets</ListSubheader>}
{ledfx_presets &&
Object.keys(ledfx_presets)
.sort((k) => (k === 'reset' ? -1 : 1))
.map((ke, i) => (
<MenuItem key={ke + i} value={ke}>
{ke === 'reset' ? 'Default' : ke}
</MenuItem>
))}
{user_presets && <ListSubheader>User Presets</ListSubheader>}
{user_presets &&
user_presets[effectId] &&
Object.keys(user_presets[effectId]).map((ke, i) => (
<MenuItem key={ke + i} value={ke}>
{ke}
</MenuItem>
))}
</Select>
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ const BladeSelect = ({
(schema.enum && schema.enum[0])
: ''
)
console.log(schema, model)
// console.log(schema, model)
return (
<BladeFrame
title={schema.title}
Expand Down
5 changes: 4 additions & 1 deletion src/pages/Device/Presets.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ const PresetsCard = ({ virtual, effectType, presets, style }: any) => {
const features = useStore((state) => state.features)
const getSystemConfig = useStore((state) => state.getSystemConfig)
const setSystemConfig = useStore((state) => state.setSystemConfig)
const getFullConfig = useStore((state) => state.getFullConfig)

const getCloudConfigs = async () => {
const response = await cloud.get(
Expand Down Expand Up @@ -162,7 +163,9 @@ const PresetsCard = ({ virtual, effectType, presets, style }: any) => {

const handleAddPreset = () => {
addPreset(virtual.id, name).then(() => {
getPresets(effectType)
getPresets(effectType).then(() => {
getFullConfig()
})
})
setName('')
}
Expand Down
20 changes: 20 additions & 0 deletions src/store/api/storeConfig.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,26 @@ const storeConfig = (set: any) => ({
'api/getLedFxPresets'
)
},
getUserPresets: async () => {
const resp = await Ledfx('/api/config')
if (resp && resp.host) {
set(
produce((state: IStore) => {
state.config.user_presets = resp.user_presets
}),
false,
'api/getUserPresets'
)
return resp.user_presets
}
return set(
produce((state: IStore) => {
state.dialogs.nohost.open = true
}),
false,
'api/getUserPresets'
)
},
setSystemConfig: async (config: any) =>
await Ledfx('/api/config', 'PUT', config),
deleteSystemConfig: async () => await Ledfx('/api/config', 'DELETE'),
Expand Down

0 comments on commit 9412c70

Please sign in to comment.