@@ -34,6 +34,7 @@ import org.cru.godtools.base.CONFIG_UI_DASHBOARD_PERSONALIZATION_ENABLED
3434import org.cru.godtools.base.Settings
3535import org.cru.godtools.base.ui.circuit.screen.dashboard.page.ToolsScreen
3636import org.cru.godtools.model.Language
37+ import org.cru.godtools.model.Tool
3738import org.cru.godtools.sync.GodToolsSyncService
3839import org.cru.godtools.ui.banner.Banner
3940import org.cru.godtools.ui.banner.BannerPresenter
@@ -143,22 +144,7 @@ class ToolsPresenter @AssistedInject internal constructor(
143144 val tools by remember(mode, locale) {
144145 featuredToolsFlowProducer.getFlow(mode, locale)
145146 }.collectAsState(null )
146-
147- return tools?.map { tool ->
148- val toolCode by rememberUpdatedState(tool.code)
149-
150- toolCardPresenter.present(
151- tool = tool,
152- secondLanguage = language,
153- eventSink = {
154- when (it) {
155- ToolCardEvent .Click ,
156- ToolCardEvent .OpenTool ,
157- ToolCardEvent .OpenToolDetails -> toolCode?.let { onOpenToolDetails(it) }
158- }
159- }
160- )
161- }
147+ return tools?.toToolCardState(language, onOpenToolDetails)
162148 }
163149
164150 @Composable
@@ -171,22 +157,24 @@ class ToolsPresenter @AssistedInject internal constructor(
171157 val locale = language?.code
172158 val tools by remember(mode, category, locale) { filteredToolsFlowProducer.getFlow(mode, category, locale) }
173159 .collectAsState(null )
160+ return tools?.toToolCardState(language, onOpenToolDetails)
161+ }
174162
175- return tools?.map { tool ->
176- key(tool.code) {
177- val toolCode by rememberUpdatedState (tool.code)
178- toolCardPresenter.present(
179- tool = tool,
180- secondLanguage = language ,
181- eventSink = {
182- when (it) {
183- ToolCardEvent . Click ,
184- ToolCardEvent .OpenTool ,
185- ToolCardEvent .OpenToolDetails -> toolCode?. let { onOpenToolDetails(it) }
186- }
163+ @Composable
164+ private fun List<Tool>. toToolCardState ( language : Language ? , onOpenToolDetails : ( String ) -> Unit ) = map { tool ->
165+ key (tool.code) {
166+ val toolCode by rememberUpdatedState(tool.code)
167+ toolCardPresenter.present(
168+ tool = tool ,
169+ secondLanguage = language,
170+ eventSink = {
171+ when (it) {
172+ ToolCardEvent .Click ,
173+ ToolCardEvent .OpenTool ,
174+ ToolCardEvent . OpenToolDetails -> toolCode?. let { onOpenToolDetails(it) }
187175 }
188- )
189- }
176+ }
177+ )
190178 }
191179 }
192180
0 commit comments