diff --git a/backend/api/src/lib.rs b/backend/api/src/lib.rs index 5f583b4..d683f46 100644 --- a/backend/api/src/lib.rs +++ b/backend/api/src/lib.rs @@ -548,11 +548,11 @@ async fn list_book( let page: usize = params.get("page").unwrap().parse().unwrap(); - let books = QueryCore::find_books_plus_meta_in_page(conn,page,5) + let books = QueryCore::find_books_plus_meta_in_page(conn,page,12) .await .expect("could not list books"); -let mut resbooks: Vec = Vec::with_capacity(5); +let mut resbooks: Vec = Vec::with_capacity(12); for bookandmeta in books.0.into_iter() { let mut cover = bookandmeta.clone().book.cover; @@ -604,11 +604,11 @@ async fn list_search_book( let backend_url = env::var("BACKEND_URL").expect("BACKEND_URL is not set in .env file"); - let books = booksman_search::search_book(search, page,meili_client) + let books = booksman_search::search_book(search, page, meili_client) .await .expect("could not list books"); -let mut resbooks: Vec = Vec::with_capacity(24); +let mut resbooks: Vec = Vec::with_capacity(12); for bookmeili in books.0.into_iter() { let mut cover = bookmeili.clone().cover; @@ -642,7 +642,7 @@ let mut resbooks: Vec = Vec::with_capacity(24); } let res = PaginatedBookUIList{ - num_pages: (books.1/24) as u32, + num_pages: (books.1/12) as u32, books: resbooks }; return Json(res); diff --git a/backend/search/src/lib.rs b/backend/search/src/lib.rs index 53964c4..cf2b257 100644 --- a/backend/search/src/lib.rs +++ b/backend/search/src/lib.rs @@ -45,7 +45,7 @@ pub async fn delete_book(bookid: i32, client: &Client) { pub async fn search_book(search: &str, page: usize, client: &Client) -> Result<(Vec, usize), meilisearch_sdk::errors::Error> { // An index is where the documents are stored. let books = client.index("books"); - let results : SearchResults = books.search().with_query(search).with_offset((page-1)*24) + let results : SearchResults = books.search().with_query(search).with_offset((page-1)*12) .execute::().await.unwrap(); let formatted_results : Vec = (results.hits).iter().map(|r| r.result.clone()).collect(); diff --git a/frontend/src/main.rs b/frontend/src/main.rs index 090142d..0d6e5aa 100644 --- a/frontend/src/main.rs +++ b/frontend/src/main.rs @@ -195,7 +195,7 @@ pub fn Header(cx: Scope) -> View { app_state.search.set(task); app_state.openlibrary.set(false); app_state.internalsearch.set(true); - app_state.books.set(Vec::new()); + app_state.refreshing.set(true); info!("Fetching search 2\n"); } } @@ -204,6 +204,7 @@ pub fn Header(cx: Scope) -> View { let click_listall = |_| { app_state.openlibrary.set(false); app_state.internalsearch.set(false); + app_state.refreshing.set(true); }; @@ -229,6 +230,8 @@ pub fn Header(cx: Scope) -> View { app_state.search.set(task); app_state.openlibrary.set(false); app_state.internalsearch.set(true); + app_state.refreshing.set(true); + } }; @@ -327,14 +330,15 @@ async fn ListDB(cx: Scope<'_>) -> View { if *app_state.openlibrary.get() == false { if *app_state.refreshing.get() == true { - info!("Refresh triggered"); - app_state.books.set(Vec::new()); app_state.refreshing.set(false); + app_state.books.set(Vec::new()); //TimeoutFuture::new(1000).await; - } + //info!("Refresh triggered"); if *app_state.internalsearch.get() == false { - spawn_local(async move { + info!("DB triggered"); + spawn_local(async move { + let res = list_books(*app_state.pagenum.get()) .await.unwrap(); app_state.books.set( @@ -345,6 +349,8 @@ async fn ListDB(cx: Scope<'_>) -> View { ) }); } else { + info!("IntSearch triggered"); + spawn_local(async move { let res = search_books(app_state.search.get().to_string(), *app_state.pagenum.get()) .await.unwrap(); @@ -356,6 +362,8 @@ async fn ListDB(cx: Scope<'_>) -> View { ) }); } + } + } else { if *app_state.refreshing.get() == false { spawn_local(async move { @@ -933,11 +941,14 @@ async fn PageBar(cx: Scope<'_>) -> View { let handle_add = move |_| { app_state.pagenum.set(*app_state.pagenum.get()+1); + app_state.refreshing.set(true); + }; let handle_sub = move |_| { if *app_state.pagenum.get()>1 { app_state.pagenum.set(*app_state.pagenum.get()-1); + app_state.refreshing.set(true); } }; @@ -948,6 +959,7 @@ async fn PageBar(cx: Scope<'_>) -> View { let pg = currpg.get().as_ref().clone().parse::().unwrap_or(1); if pg>0 && pg<*app_state.maxpage.get() { app_state.pagenum.set(pg); + app_state.refreshing.set(true); } else { currpg.set((*app_state.pagenum.get()).to_string()); } @@ -995,7 +1007,7 @@ fn App(cx: Scope) -> View { addingbook: create_rc_signal(BookUI::default()), displaying: create_rc_signal(bool::default()), displayingbook: create_rc_signal(BookUI::default()), - refreshing: create_rc_signal(bool::default()), + refreshing: create_rc_signal(true), apibook: create_rc_signal(BookUI::default()), updatingrequest: create_rc_signal(bool::default()), addingrequest: create_rc_signal(bool::default()),