Skip to content

Commit cc6be77

Browse files
committed
Refactor SettingsContent to use refreshTrigger for UI updates and simplify template management
1 parent b0c23ff commit cc6be77

1 file changed

Lines changed: 20 additions & 18 deletions

File tree

  • src/main/kotlin/com/github/cnrture/quickprojectwizard/toolwindow/manager/settings

src/main/kotlin/com/github/cnrture/quickprojectwizard/toolwindow/manager/settings/SettingsContent.kt

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,17 @@ fun SettingsContent() {
4141
var selectedModuleType by mutableStateOf(currentSettings.preferredModuleType)
4242
var packageName by mutableStateOf(currentSettings.defaultPackageName)
4343

44-
var moduleTemplates by remember { mutableStateOf(settings.getModuleTemplates()) }
45-
var featureTemplates by remember { mutableStateOf(settings.getFeatureTemplates()) }
44+
// Use remember with a refreshTrigger to force UI updates
45+
var refreshTrigger by remember { mutableStateOf(0) }
46+
val moduleTemplates by remember(refreshTrigger) {
47+
mutableStateOf(settings.getModuleTemplates())
48+
}
49+
val featureTemplates by remember(refreshTrigger) {
50+
mutableStateOf(settings.getFeatureTemplates())
51+
}
52+
53+
// Function to trigger refresh
54+
val triggerRefresh = { refreshTrigger++ }
4655

4756
Scaffold(
4857
modifier = Modifier
@@ -111,6 +120,7 @@ fun SettingsContent() {
111120
preferredModuleType = selectedModuleType
112121
)
113122
settings.loadState(currentSettings)
123+
triggerRefresh()
114124
},
115125
onPackageNameChange = { packageName = it },
116126
onModuleTypeChange = { selectedModuleType = it }
@@ -122,24 +132,20 @@ fun SettingsContent() {
122132
onTemplateDelete = { template ->
123133
if (!template.isDefault) {
124134
settings.removeTemplate(template)
125-
moduleTemplates = settings.getModuleTemplates()
126-
currentSettings = settings.state.copy()
135+
triggerRefresh()
127136
}
128137
},
129138
onTemplateAdd = { newTemplate ->
130139
settings.saveTemplate(newTemplate)
131-
moduleTemplates = settings.getModuleTemplates()
132-
currentSettings = settings.state.copy()
140+
triggerRefresh()
133141
},
134142
onTemplateEdit = { oldTemplate, updatedTemplate ->
135143
settings.saveTemplate(updatedTemplate)
136-
moduleTemplates = settings.getModuleTemplates()
137-
currentSettings = settings.state.copy()
144+
triggerRefresh()
138145
},
139146
onSetDefault = { template ->
140147
settings.setDefaultModuleTemplate(template.id)
141-
moduleTemplates = settings.getModuleTemplates()
142-
currentSettings = settings.state.copy()
148+
triggerRefresh()
143149
}
144150
)
145151

@@ -149,24 +155,20 @@ fun SettingsContent() {
149155
onTemplateDelete = { template ->
150156
if (!template.isDefault) {
151157
settings.removeFeatureTemplate(template)
152-
featureTemplates = settings.getFeatureTemplates()
153-
currentSettings = settings.state.copy()
158+
triggerRefresh()
154159
}
155160
},
156161
onTemplateAdd = { newTemplate ->
157162
settings.saveFeatureTemplate(newTemplate)
158-
featureTemplates = settings.getFeatureTemplates()
159-
currentSettings = settings.state.copy()
163+
triggerRefresh()
160164
},
161165
onTemplateEdit = { oldTemplate, updatedTemplate ->
162166
settings.saveFeatureTemplate(updatedTemplate)
163-
featureTemplates = settings.getFeatureTemplates()
164-
currentSettings = settings.state.copy()
167+
triggerRefresh()
165168
},
166169
onSetDefault = { template ->
167170
settings.setDefaultFeatureTemplate(template.id)
168-
featureTemplates = settings.getFeatureTemplates()
169-
currentSettings = settings.state.copy()
171+
triggerRefresh()
170172
}
171173
)
172174
}

0 commit comments

Comments
 (0)