Skip to content

Commit b6fa891

Browse files
committed
fix: clippy warnings
1 parent eaafdbf commit b6fa891

File tree

3 files changed

+39
-31
lines changed

3 files changed

+39
-31
lines changed

src/query_editor.rs

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
use std::{
2-
cell::RefCell,
3-
rc::Rc,
4-
sync::{Arc, Mutex},
5-
};
1+
use std::{cell::RefCell, rc::Rc, sync::Arc};
62

3+
use futures::lock::Mutex;
74
use leptos::{html::*, *};
85
use leptos_use::{use_document, use_event_listener};
96
use monaco::{
@@ -17,26 +14,15 @@ use crate::{modals, store::tabs::TabsStore};
1714
pub type ModelCell = Rc<RefCell<Option<CodeEditor>>>;
1815

1916
pub fn component() -> impl IntoView {
20-
let tabs_store = Arc::new(Mutex::new(use_context::<TabsStore>().unwrap()));
21-
let run_query = create_action(move |tabs_store: &Arc<Mutex<TabsStore>>| {
22-
let tabs_store = tabs_store.clone();
23-
async move {
24-
tabs_store.lock().unwrap().run_query().await.unwrap();
25-
}
26-
});
17+
let tabs_store = Rc::new(RefCell::new(use_context::<TabsStore>().unwrap()));
2718
let show = create_rw_signal(false);
2819
let _ = use_event_listener(use_document(), ev::keydown, move |event| {
2920
if event.key() == "Escape" {
3021
show.set(false);
3122
}
3223
});
3324
let node_ref = create_node_ref();
34-
let tabs_store_clone = tabs_store.clone();
35-
let _ = use_event_listener(node_ref, ev::keydown, move |event| {
36-
if event.key() == "Enter" && event.ctrl_key() {
37-
run_query.dispatch(tabs_store_clone.clone());
38-
}
39-
});
25+
4026
let tabs_store_clone = tabs_store.clone();
4127
node_ref.on_load(move |node| {
4228
let div_element: &web_sys::HtmlDivElement = &node;
@@ -62,7 +48,20 @@ pub fn component() -> impl IntoView {
6248

6349
// TODO: Fix this
6450
let e = Rc::new(RefCell::new(Some(e)));
65-
tabs_store_clone.lock().unwrap().add_editor(e);
51+
tabs_store_clone.borrow_mut().add_editor(e);
52+
});
53+
let tabs_store = Arc::new(Mutex::new(use_context::<TabsStore>().unwrap()));
54+
let run_query = create_action(move |tabs_store: &Arc<Mutex<TabsStore>>| {
55+
let tabs_store = tabs_store.clone();
56+
async move {
57+
tabs_store.lock().await.run_query().await.unwrap();
58+
}
59+
});
60+
let tabs_store_clone = tabs_store.clone();
61+
let _ = use_event_listener(node_ref, ev::keydown, move |event| {
62+
if event.key() == "Enter" && event.ctrl_key() {
63+
run_query.dispatch(tabs_store_clone.clone());
64+
}
6665
});
6766

6867
div()

src/sidebar/table.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
use std::sync::{Arc, Mutex};
1+
use std::sync::Arc;
22

3+
use futures::lock::Mutex;
34
use leptos::{html::*, *};
45
use leptos_icons::*;
56

@@ -10,16 +11,19 @@ pub fn component(table: (String, String), project: String, schema: String) -> im
1011
let active_project = use_context::<ActiveProjectStore>().unwrap();
1112
let query = create_action(
1213
move |(schema, table, tabs_store): &(String, String, Arc<Mutex<TabsStore>>)| {
14+
let tabs_store = tabs_store.clone();
1315
let project = project.clone();
1416
let schema = schema.clone();
1517
let table = table.clone();
1618
active_project.0.set(Some(project.clone()));
17-
tabs_store
18-
.lock()
19-
.unwrap()
20-
.set_editor_value(&format!("SELECT * FROM {}.{} LIMIT 100;", schema, table));
21-
let tabs_store = tabs_store.clone();
22-
async move { tabs_store.lock().unwrap().run_query().await.unwrap() }
19+
20+
async move {
21+
tabs_store
22+
.lock()
23+
.await
24+
.set_editor_value(&format!("SELECT * FROM {}.{} LIMIT 100;", schema, table));
25+
tabs_store.lock().await.run_query().await.unwrap()
26+
}
2327
},
2428
);
2529

src/store/tabs.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,14 @@ pub struct TabsStore {
2828
pub active_tabs: RwSignal<usize>,
2929
pub selected_tab: RwSignal<String>,
3030
pub editors: RwSignal<BTreeMap<String, ModelCell>>,
31+
#[allow(clippy::type_complexity)]
3132
pub sql_results: RwSignal<BTreeMap<String, (Vec<String>, Vec<Vec<String>>)>>,
3233
pub is_loading: RwSignal<bool>,
3334
}
3435

36+
unsafe impl Send for TabsStore {}
37+
unsafe impl Sync for TabsStore {}
38+
3539
impl Default for TabsStore {
3640
fn default() -> Self {
3741
Self::new()
@@ -89,15 +93,16 @@ impl TabsStore {
8993
let query_store = use_context::<QueryStore>().unwrap();
9094
let query_store = query_store.0.get_untracked();
9195
let query = query_store.get(key).unwrap();
92-
self.set_editor_value(&query);
96+
self.set_editor_value(query);
9397
Ok(())
9498
}
9599

96100
pub fn select_active_editor_sql_result(&self) -> Option<(Vec<String>, Vec<Vec<String>>)> {
97-
match self.sql_results.get().get(&self.selected_tab.get()) {
98-
Some(result) => Some(result.clone()),
99-
None => None,
100-
}
101+
self
102+
.sql_results
103+
.get()
104+
.get(&self.selected_tab.get())
105+
.cloned()
101106
}
102107

103108
pub fn add_editor(&mut self, editor: Rc<RefCell<Option<CodeEditor>>>) {

0 commit comments

Comments
 (0)