Skip to content

Commit c1b1465

Browse files
Refactor metadata fetching logic to use a dedicated function and trigger on link selection (#229)
1 parent 560a61d commit c1b1465

File tree

1 file changed

+25
-17
lines changed

1 file changed

+25
-17
lines changed

app/src/main/java/com/yogeshpaliyal/deepr/ui/screens/home/HomeBottomContent.kt

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,30 @@ fun HomeBottomContent(
8888
val initialSelectedTags = remember { mutableStateListOf<Tags>() }
8989
val isCreate = selectedLink.id == 0L
9090

91+
val fetchTitle: () -> Unit = {
92+
isFetchingMetadata = true
93+
viewModel.fetchMetaData(deeprInfo.link) {
94+
isFetchingMetadata = false
95+
if (it != null) {
96+
deeprInfo = deeprInfo.copy(name = it.title ?: "")
97+
isNameError = false
98+
} else {
99+
Toast
100+
.makeText(
101+
context,
102+
fetchMetadataErrorText,
103+
Toast.LENGTH_SHORT,
104+
).show()
105+
}
106+
}
107+
}
108+
109+
LaunchedEffect(selectedLink) {
110+
if (isValidDeeplink(selectedLink.link) && selectedLink.name.isEmpty()) {
111+
fetchTitle()
112+
}
113+
}
114+
91115
// Initialize selected tags if in edit mode
92116
LaunchedEffect(isCreate) {
93117
if (isCreate.not()) {
@@ -201,23 +225,7 @@ fun HomeBottomContent(
201225
OutlinedButton(
202226
modifier = Modifier.fillMaxWidth(),
203227
enabled = deeprInfo.link.isNotBlank() && !isFetchingMetadata,
204-
onClick = {
205-
isFetchingMetadata = true
206-
viewModel.fetchMetaData(deeprInfo.link) {
207-
isFetchingMetadata = false
208-
if (it != null) {
209-
deeprInfo = deeprInfo.copy(name = it.title ?: "")
210-
isNameError = false
211-
} else {
212-
Toast
213-
.makeText(
214-
context,
215-
fetchMetadataErrorText,
216-
Toast.LENGTH_SHORT,
217-
).show()
218-
}
219-
}
220-
},
228+
onClick = fetchTitle,
221229
) {
222230
if (isFetchingMetadata) {
223231
CircularProgressIndicator(

0 commit comments

Comments
 (0)