Skip to content

Commit

Permalink
refactor: method names
Browse files Browse the repository at this point in the history
  • Loading branch information
dancixx committed Dec 10, 2023
1 parent 9334e27 commit 4623275
Show file tree
Hide file tree
Showing 13 changed files with 231 additions and 152 deletions.
28 changes: 28 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Tauri Development Debug",
"cargo": {
"args": ["build", "--manifest-path=./src-tauri/Cargo.toml", "--no-default-features"]
},
// task for the `beforeDevCommand` if used, must be configured in `.vscode/tasks.json`
"preLaunchTask": "ui:dev"
},
{
"type": "lldb",
"request": "launch",
"name": "Tauri Production Debug",
"cargo": {
"args": ["build", "--release", "--manifest-path=./src-tauri/Cargo.toml"]
},
// task for the `beforeBuildCommand` if used, must be configured in `.vscode/tasks.json`
"preLaunchTask": "ui:build"
}
]
}
25 changes: 25 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "ui:dev",
"type": "shell",
// `dev` keeps running in the background
// ideally you should also configure a `problemMatcher`
// see https://code.visualstudio.com/docs/editor/tasks#_can-a-background-task-be-used-as-a-prelaunchtask-in-launchjson
"isBackground": true,
// change this to your `beforeDevCommand`:
"command": "cargo",
"args": ["tauri", "dev"]
},
{
"label": "ui:build",
"type": "shell",
// change this to your `beforeBuildCommand`:
"command": "cargo",
"args": ["tauri", "build"]
}
]
}
18 changes: 11 additions & 7 deletions src-tauri/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ mod project_db;
mod query_db;
mod utils;

use postgres::{get_schema_tables, get_sql_result, pg_connector};
use project_db::{get_project_details, get_projects, remove_project};
use postgres::{pg_connector, select_schema_tables, select_sql_result};
use project_db::{delete_project, select_project_details, select_projects};
use query_db::{delete_query, insert_query, select_queries};
use sled::Db;
use std::sync::Arc;
#[cfg(debug_assertions)]
Expand Down Expand Up @@ -49,12 +50,15 @@ fn main() {
Ok(())
})
.invoke_handler(tauri::generate_handler![
get_projects,
get_project_details,
get_schema_tables,
delete_project,
delete_query,
insert_query,
pg_connector,
get_sql_result,
remove_project,
select_projects,
select_project_details,
select_queries,
select_schema_tables,
select_sql_result,
])
.run(tauri::generate_context!())
.expect("error while running tauri application");
Expand Down
4 changes: 2 additions & 2 deletions src-tauri/src/postgres.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ pub async fn pg_connector(project: &str, key: &str, app: AppHandle) -> Result<Ve
}

#[tauri::command]
pub async fn get_schema_tables(
pub async fn select_schema_tables(
schema: &str,
app_state: State<'_, AppState>,
) -> Result<Vec<String>> {
Expand All @@ -64,7 +64,7 @@ pub async fn get_schema_tables(
}

#[tauri::command]
pub async fn get_sql_result(
pub async fn select_sql_result(
sql: String,
app_state: State<'_, AppState>,
) -> Result<(Vec<String>, Vec<Vec<String>>)> {
Expand Down
6 changes: 3 additions & 3 deletions src-tauri/src/project_db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ pub struct ProjectDetails {
}

#[tauri::command]
pub async fn get_projects(app: AppHandle) -> Result<Vec<String>> {
pub async fn select_projects(app: AppHandle) -> Result<Vec<String>> {
let app_state = app.state::<AppState>();
let mut db = app_state.project_db.lock().await;
if db.clone().is_none() {
Expand All @@ -34,7 +34,7 @@ pub async fn get_projects(app: AppHandle) -> Result<Vec<String>> {
}

#[tauri::command]
pub async fn get_project_details(
pub async fn select_project_details(
project: String,
app_state: State<'_, AppState>,
) -> Result<ProjectDetails> {
Expand Down Expand Up @@ -67,7 +67,7 @@ pub async fn get_project_details(
}

#[tauri::command]
pub async fn remove_project(project: String, app_state: State<'_, AppState>) -> Result<()> {
pub async fn delete_project(project: String, app_state: State<'_, AppState>) -> Result<()> {
let db = app_state.project_db.lock().await;
let db = db.clone().unwrap();
db.remove(project).unwrap();
Expand Down
24 changes: 24 additions & 0 deletions src-tauri/src/query_db.rs
Original file line number Diff line number Diff line change
@@ -1,2 +1,26 @@
use std::collections::HashMap;

use serde::Serialize;
use tauri::Result;

#[derive(Default, Serialize)]
pub struct QueryDetails {
pub title: String,
pub sql: String,
}

#[tauri::command]
pub fn insert_query(key: String, sql: String) {
todo!()
}

#[tauri::command]
pub async fn select_queries() -> Result<HashMap<String, String>> {
todo!()
}

#[tauri::command]
pub async fn delete_query(key: String) {
todo!()
}

20 changes: 10 additions & 10 deletions src/app.rs
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
use std::vec;

use crate::{
layout::layout,
query_editor::query_editor,
query_table::query_table,
store::{db::DBStore, editor::EditorState, query::QueryState},
layout::layout,
query_editor::query_editor,
query_table::query_table,
store::{db::DBStore, editor::EditorState, query::QueryState},
};
use leptos::*;

pub fn app() -> impl IntoView {
provide_context(DBStore::default());
provide_context(EditorState::default());
provide_context(QueryState::default());
provide_context(DBStore::default());
provide_context(EditorState::default());
provide_context(QueryState::default());

layout(Children::to_children(move || {
Fragment::new(vec![query_editor().into_view(), query_table().into_view()])
}))
layout(Children::to_children(move || {
Fragment::new(vec![query_editor().into_view(), query_table().into_view()])
}))
}

21 changes: 11 additions & 10 deletions src/invoke.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@ use serde::{Deserialize, Serialize};

#[allow(non_camel_case_types)]
pub enum Invoke {
get_projects,
get_project_details,
remove_project,
get_sql_result,
get_schema_tables,
delete_project,
pg_connector,
select_projects,
select_project_details,
select_schema_tables,
select_sql_result,
}

impl Display for Invoke {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Invoke::get_projects => write!(f, "get_projects"),
Invoke::get_project_details => write!(f, "get_project_details"),
Invoke::remove_project => write!(f, "remove_project"),
Invoke::get_sql_result => write!(f, "get_sql_result"),
Invoke::get_schema_tables => write!(f, "get_schema_tables"),
Invoke::delete_project => write!(f, "delete_project"),
Invoke::pg_connector => write!(f, "pg_connector"),
Invoke::select_projects => write!(f, "select_projects"),
Invoke::select_project_details => write!(f, "select_project_details"),
Invoke::select_schema_tables => write!(f, "select_schema_tables"),
Invoke::select_sql_result => write!(f, "select_sql_result"),
}
}
}
Expand Down Expand Up @@ -53,3 +53,4 @@ pub struct InvokeProjectDetailsArgs {
pub struct InvokeRemoveProjectArgs {
pub project: String,
}

52 changes: 26 additions & 26 deletions src/query_editor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ use std::{cell::RefCell, rc::Rc};

use leptos::{html::*, *};
use monaco::{
api::{CodeEditor, CodeEditorOptions},
sys::editor::IDimension,
api::{CodeEditor, CodeEditorOptions},
sys::editor::{IDimension, IEditorMinimapOptions},
};
use wasm_bindgen::JsCast;

Expand All @@ -12,31 +12,31 @@ use crate::store::{editor::EditorState, query::QueryState};
pub type ModelCell = Rc<RefCell<Option<CodeEditor>>>;

pub fn query_editor() -> impl IntoView {
let query = use_context::<QueryState>().unwrap().sql;
let set_editor = use_context::<EditorState>().unwrap().editor;
let node_ref = create_node_ref();

node_ref.on_load(move |node| {
let div_element: &web_sys::HtmlDivElement = &node;
let html_element = div_element.unchecked_ref::<web_sys::HtmlElement>();
let editor = CodeEditor::create(
html_element,
Some(CodeEditorOptions {
value: Some(query.get()),
language: Some("sql".to_string()),
automatic_layout: Some(true),
dimension: Some(IDimension::new(0, 240)),
..Default::default()
}),
);

set_editor.update(|prev| {
prev.replace(Some(editor));
});
let query = use_context::<QueryState>().unwrap().sql;
let set_editor = use_context::<EditorState>().unwrap().editor;
let node_ref = create_node_ref();

node_ref.on_load(move |node| {
let div_element: &web_sys::HtmlDivElement = &node;
let html_element = div_element.unchecked_ref::<web_sys::HtmlElement>();
let options = CodeEditorOptions::default().to_sys_options();
options.set_value(Some(&query.get()));
options.set_language(Some("sql"));
options.set_automatic_layout(Some(true));
options.set_dimension(Some(&IDimension::new(0, 240)));
let minimap_settings = IEditorMinimapOptions::default();
minimap_settings.set_enabled(Some(false));
options.set_minimap(Some(&minimap_settings));

let editor = CodeEditor::create(html_element, Some(options));

set_editor.update(|prev| {
prev.replace(Some(editor));
});
});

div()
.attr("class", "border-b-1 border-neutral-200 sticky")
.node_ref(node_ref)
div()
.attr("class", "border-b-1 border-neutral-200 sticky")
.node_ref(node_ref)
}

14 changes: 7 additions & 7 deletions src/sidebar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,27 @@ use leptos::{html::*, *};

pub fn sidebar() -> impl IntoView {
let mut db = use_context::<DBStore>().unwrap();
let get_project_details = create_action(move |(db, project): &(DBStore, String)| {
let select_project_details = create_action(move |(db, project): &(DBStore, String)| {
let mut db_clone = *db;
let project = project.clone();
async move { db_clone.get_project_details(project).await }
async move { db_clone.select_project_details(project).await }
});
let projects = create_resource(
move || db.is_connecting.get(),
move |_| async move {
let projects = invoke(
&Invoke::get_projects.to_string(),
&Invoke::select_projects.to_string(),
serde_wasm_bindgen::to_value(&InvokeProjectsArgs).unwrap_or_default(),
)
.await;
serde_wasm_bindgen::from_value::<Vec<String>>(projects).unwrap()
},
);
let remove_project = create_action(move |(db, project): &(DBStore, String)| {
let delete_project = create_action(move |(db, project): &(DBStore, String)| {
let mut db_clone = *db;
let project = project.clone();
async move {
db_clone.remove_project(project).await.unwrap();
db_clone.delete_project(project).await.unwrap();
projects.refetch();
}
});
Expand All @@ -48,7 +48,7 @@ pub fn sidebar() -> impl IntoView {
.child(&project)
.on(ev::click, {
let project = project.clone();
move |_| get_project_details.dispatch((db, project.clone()))
move |_| select_project_details.dispatch((db, project.clone()))
}),
)
.child(
Expand All @@ -58,7 +58,7 @@ pub fn sidebar() -> impl IntoView {
.on(ev::click, {
let project = project.clone();
move |_| {
remove_project.dispatch((db, project.clone()));
delete_project.dispatch((db, project.clone()));
}
}),
)
Expand Down
Loading

0 comments on commit 4623275

Please sign in to comment.