Skip to content

Commit afa1069

Browse files
committed
Fix categories in dioxus
1 parent a11db74 commit afa1069

5 files changed

Lines changed: 40 additions & 10 deletions

File tree

mlm_web_dioxus/src/search.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,11 @@ pub fn map_search_torrent(
6060
.collect(),
6161
tags: mam_torrent.tags,
6262
description: mam_torrent.description,
63-
categories: meta.categories.clone(),
63+
categories: meta
64+
.categories
65+
.iter()
66+
.map(|c| c.as_str().to_string())
67+
.collect(),
6468
flags: flag_values,
6569
old_category,
6670
media_type: meta.media_type.as_str().to_string(),

mlm_web_dioxus/src/torrent_detail/server_fns.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,11 @@ fn torrent_info_from_meta(
9191
filetypes: meta.filetypes.iter().map(|f| f.to_string()).collect(),
9292
size: meta.size.to_string(),
9393
num_files: meta.num_files,
94-
categories: meta.categories.clone(),
94+
categories: meta
95+
.categories
96+
.iter()
97+
.map(|c| c.as_str().to_string())
98+
.collect(),
9599
old_category: meta.cat.as_ref().map(|c| c.to_string()),
96100
flags: flag_values,
97101
library_path: None,
@@ -209,7 +213,11 @@ async fn other_torrents_data(
209213
.collect(),
210214
tags: mam_torrent.tags,
211215
description: mam_torrent.description,
212-
categories: meta.categories.clone(),
216+
categories: meta
217+
.categories
218+
.iter()
219+
.map(|c| c.as_str().to_string())
220+
.collect(),
213221
flags: {
214222
let flags = mlm_db::Flags::from_bitfield(meta.flags.map_or(0, |f| f.0));
215223
crate::utils::flags_to_strings(&flags)

mlm_web_dioxus/src/torrent_edit.rs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,12 @@ pub async fn get_torrent_meta_edit_data(id: String) -> Result<TorrentMetaEditFor
161161
.main_cat
162162
.map(|cat: mlm_db::MainCat| cat.as_id().to_string())
163163
.unwrap_or_default(),
164-
categories_text: meta.categories.join("\n"),
164+
categories_text: meta
165+
.categories
166+
.iter()
167+
.map(|c| c.as_str())
168+
.collect::<Vec<_>>()
169+
.join("\n"),
165170
tags_text: meta.tags.join("\n"),
166171
language_id: meta
167172
.language
@@ -325,14 +330,22 @@ pub async fn update_torrent_meta_edit_data(form: TorrentMetaEditForm) -> Result<
325330
lgbt: Some(form.lgbt),
326331
};
327332

333+
let categories = split_list(&form.categories_text)
334+
.into_iter()
335+
.map(|raw| {
336+
raw.parse::<mlm_db::Category>()
337+
.map_err(|e| ServerFnError::new(format!("invalid category '{raw}': {e}")))
338+
})
339+
.collect::<Result<Vec<_>, _>>()?;
340+
328341
let meta =
329342
mlm_db::TorrentMeta {
330343
ids,
331344
vip_status: parse_vip_status(&form.vip_mode, &form.vip_temp_date)?,
332345
cat: category,
333346
media_type,
334347
main_cat,
335-
categories: split_list(&form.categories_text),
348+
categories,
336349
tags: split_list(&form.tags_text),
337350
language,
338351
flags: Some(mlm_db::FlagBits::new(flags.as_bitfield())),

mlm_web_dioxus/src/torrents/components.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -597,10 +597,10 @@ pub fn TorrentsPage() -> Element {
597597
}
598598
}
599599

600-
if let Some(value) = &value {
601-
if let Some(Ok(data)) = &*value.read() {
602-
cached.set(Some(data.clone()));
603-
}
600+
if let Some(value) = &value
601+
&& let Some(Ok(data)) = &*value.read()
602+
{
603+
cached.set(Some(data.clone()));
604604
}
605605

606606
let data_to_show = if let Some(value) = &value {

mlm_web_dioxus/src/torrents/server_fns.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,12 @@ fn convert_torrent_row(t: &DbTorrent) -> TorrentsRow {
482482
media_type: t.meta.media_type.as_str().to_string(),
483483
cat_name,
484484
cat_id,
485-
categories: t.meta.categories.clone(),
485+
categories: t
486+
.meta
487+
.categories
488+
.iter()
489+
.map(|c| c.as_str().to_string())
490+
.collect(),
486491
flags: flag_values,
487492
edition: t.meta.edition.as_ref().map(|(edition, _)| edition.clone()),
488493
authors: t.meta.authors.clone(),

0 commit comments

Comments
 (0)