11import React from "react" ;
2- import data from "../../custom_components/scene_presets/presets.json" ;
32import { Tile } from "../components/Tile" ;
43import { useLocalStorage } from "../hooks/useLocalStorage" ;
54import HaSwitch from "../components/hass/building_blocks/HaSwitch" ;
65import { HaTargetSelector , HaTargetSelectorValue } from "../components/hass/selectors/HaTargetSelector" ;
76import { HaNumberSelector } from "../components/hass/selectors/HaNumberSelector" ;
87import HaIconButton from "../components/hass/building_blocks/HaIconButton" ;
8+ import { Category , Preset } from "../types" ;
99
1010const DEFAULT_TUNABLE_SETTINGS = {
1111 shuffle : false ,
@@ -17,9 +17,13 @@ const DEFAULT_TUNABLE_SETTINGS = {
1717} ;
1818
1919export const PresetApplyPage : React . FunctionComponent < {
20- hass : any
20+ hass : any ,
21+ categories : Array < Category > ,
22+ presets : Array < Preset > ,
2123} > = ( {
2224 hass,
25+ categories,
26+ presets
2327} ) : JSX . Element => {
2428 const [ targets , setTargets ] = useLocalStorage < HaTargetSelectorValue > ( "scene_presets_apply_page_targets" , { } ) ;
2529 const [ shuffle , setShuffle ] = useLocalStorage < boolean > ( "scene_presets_apply_page_shuffle" , DEFAULT_TUNABLE_SETTINGS . shuffle ) ;
@@ -57,19 +61,19 @@ export const PresetApplyPage: React.FunctionComponent<{
5761 const presetsByCategories = React . useMemo ( ( ) => {
5862 const out = { } ;
5963
60- data . categories . forEach ( category => {
61- out [ category . id ] = data . presets . filter ( p => p . categoryId === category . id ) ;
64+ categories . forEach ( category => {
65+ out [ category . id ] = presets . filter ( p => p . categoryId === category . id ) ;
6266 } ) ;
6367
6468 return out ;
65- } , [ ] ) ;
69+ } , [ categories , presets ] ) ;
6670
6771
6872 const tiles = React . useMemo ( ( ) => {
6973 const allTiles : { [ key : string ] : JSX . Element } = { } ;
7074 const favoriteTiles : Array < string > = [ ] ;
7175
72- data . presets . forEach ( ( preset , i ) => {
76+ presets . forEach ( ( preset , i ) => {
7377 const isFav = favoritePresets . includes ( preset . id ) ;
7478
7579 allTiles [ preset . id ] = < Tile
@@ -98,7 +102,7 @@ export const PresetApplyPage: React.FunctionComponent<{
98102 all : allTiles ,
99103 favoriteIds : favoriteTiles ,
100104 } ;
101- } , [ favoritePresets , applyPreset , setFavoritePresets ] ) ;
105+ } , [ presets , favoritePresets , applyPreset , setFavoritePresets ] ) ;
102106
103107 return (
104108 < div
@@ -334,7 +338,7 @@ export const PresetApplyPage: React.FunctionComponent<{
334338 }
335339
336340 {
337- data . categories . map ( ( { name, id} ) => {
341+ categories . map ( ( { name, id} ) => {
338342 return (
339343 < div
340344 key = { "category_" + name }
0 commit comments