diff --git a/src-tauri/src/query_db.rs b/src-tauri/src/query_db.rs index 88e9027..3e17891 100644 --- a/src-tauri/src/query_db.rs +++ b/src-tauri/src/query_db.rs @@ -1,16 +1,9 @@ use std::collections::BTreeMap; -use serde::Serialize; use tauri::{AppHandle, Manager, Result, State}; use crate::AppState; -#[derive(Default, Serialize)] -pub struct QueryDetails { - pub title: String, - pub sql: String, -} - #[tauri::command] pub async fn insert_query(key: &str, sql: &str, app: AppHandle) -> Result<()> { let app_state = app.state::(); diff --git a/src/sidebar/project.rs b/src/sidebar/project.rs index 64eae2c..3b4a5c7 100644 --- a/src/sidebar/project.rs +++ b/src/sidebar/project.rs @@ -1,11 +1,12 @@ use leptos::{html::*, *}; -use crate::store::projects::ProjectsStore; +use crate::store::{active_project::ActiveProjectStore, projects::ProjectsStore}; use super::schemas; pub fn component(project_name: String) -> impl IntoView { let projects_store = use_context::().unwrap(); + let active_project_store = use_context::().unwrap(); let (show_schemas, set_show_schemas) = create_signal(false); let delete_project = create_action(move |(project_store, project): &(ProjectsStore, String)| { let project_store = *project_store; @@ -24,7 +25,13 @@ pub fn component(project_name: String) -> impl IntoView { button() .classes("hover:font-semibold") .child(&project_name) - .on(ev::click, move |_| set_show_schemas(!show_schemas())), + .on(ev::click, { + let project_name = project_name.clone(); + move |_| { + active_project_store.0.set(Some(project_name.clone())); + set_show_schemas(!show_schemas()); + } + }), ) .child( button() diff --git a/src/store/query.rs b/src/store/query.rs index 870a79f..d543e88 100644 --- a/src/store/query.rs +++ b/src/store/query.rs @@ -1,4 +1,4 @@ -use std::collections::BTreeMap; +use std::{collections::BTreeMap, fmt::format}; use leptos::{error::Result, *}; @@ -80,11 +80,11 @@ impl QueryStore { } #[allow(dead_code)] - pub async fn insert_query(&self, key: &str) -> Result<()> { + pub async fn insert_query(&self, key: &str, project_name: &str) -> Result<()> { let editor_state = use_context::().unwrap(); let sql = editor_state.get_value(); let args = serde_wasm_bindgen::to_value(&InvokeInsertQueryArgs { - key: key.to_string(), + key: format!("{}:{}", project_name, key), sql, }); invoke(&Invoke::insert_query.to_string(), args.unwrap_or_default()).await;