@@ -61,21 +61,18 @@ const IndexPage = () => {
61
61
} , [ selectedCount ] ) ;
62
62
63
63
const selectTech = ( selectedTech : TechType ) => {
64
- if ( ! selectedTech . src ) {
65
- return ;
66
- }
67
64
const updatedTechs = techs . map ( ( tech ) => {
68
65
if ( tech . number > selectedTech . number && selectedTech . number !== 0 ) {
69
66
tech . number -= 1 ;
70
67
}
71
68
return tech ;
72
69
} ) ;
73
- const selectedTechInList = updatedTechs . find ( ( tech ) => tech . src === selectedTech . src ) ;
74
70
75
- selectedTechInList . number = selectedTechInList . selected ? 0 : selectedCount + 1 ;
76
- setSelectedCount ( selectedTechInList . selected ? selectedCount - 1 : selectedCount + 1 ) ;
71
+ const selectedTechInList = updatedTechs . find ( ( tech ) => tech . src === selectedTech . src ) ;
77
72
selectedTechInList . selected = ! selectedTechInList . selected ;
73
+ selectedTechInList . number = selectedTechInList . selected ? selectedCount + 1 : 0 ;
78
74
75
+ setSelectedCount ( selectedTechInList . selected ? selectedCount + 1 : selectedCount - 1 ) ;
79
76
setTechs ( updatedTechs ) ;
80
77
} ;
81
78
@@ -98,29 +95,27 @@ const IndexPage = () => {
98
95
setSetting ( { ...setting , [ key ] : value } ) ;
99
96
} ;
100
97
101
- const templateComponent = ( ) => {
102
- switch ( currentTemplate ) {
103
- case TemplateType . select :
104
- return < SelectTemplate techs = { techs } selectTech = { selectTech } changeTemplate = { changeTemplate } /> ;
105
- case TemplateType . setting :
106
- return (
107
- < SettingTemplate
108
- setting = { setting }
109
- selectedCount = { selectedCount }
110
- changeSetting = { changeSetting }
111
- changeTemplate = { changeTemplate }
112
- />
113
- ) ;
114
- case TemplateType . result :
115
- return < ResultTemplate setting = { setting } techs = { techs } changeTemplate = { changeTemplate } /> ;
116
- }
117
- } ;
118
-
119
98
return (
120
99
< >
121
100
< SEO />
122
101
< GlobalStyle />
123
- { templateComponent ( ) }
102
+ { ( ( ) => {
103
+ switch ( currentTemplate ) {
104
+ case TemplateType . select :
105
+ return < SelectTemplate techs = { techs } selectTech = { selectTech } changeTemplate = { changeTemplate } /> ;
106
+ case TemplateType . result :
107
+ return < ResultTemplate setting = { setting } techs = { techs } changeTemplate = { changeTemplate } /> ;
108
+ case TemplateType . setting :
109
+ return (
110
+ < SettingTemplate
111
+ setting = { setting }
112
+ selectedCount = { selectedCount }
113
+ changeSetting = { changeSetting }
114
+ changeTemplate = { changeTemplate }
115
+ />
116
+ ) ;
117
+ }
118
+ } ) ( ) }
124
119
</ >
125
120
) ;
126
121
} ;
0 commit comments