diff --git a/frontend/.vscode/launch.json b/frontend/.vscode/launch.json index 39c80de2cf..0ae3d733df 100644 --- a/frontend/.vscode/launch.json +++ b/frontend/.vscode/launch.json @@ -92,9 +92,10 @@ "cwd": "${workspaceRoot}/app_flowy" }, { + // https://tauri.app/v1/guides/debugging/vs-code "type": "lldb", "request": "launch", - "name": "AF-tauri: Dev", + "name": "AF-tauri: Debug backend", "cargo": { "args": [ "build", @@ -102,7 +103,7 @@ "--no-default-features" ] }, - "preLaunchTask": "AF: Tauri Dev", + "preLaunchTask": "AF: Tauri UI Dev", "cwd": "${workspaceRoot}/appflowy_tauri/" }, { diff --git a/frontend/.vscode/tasks.json b/frontend/.vscode/tasks.json index 10bc312c23..c40b5390c9 100644 --- a/frontend/.vscode/tasks.json +++ b/frontend/.vscode/tasks.json @@ -20,7 +20,7 @@ "AF: Flutter Pub Get", "AF: Flutter Package Get", "AF: Generate Language Files", - "AF: Generate Freezed Files", + "AF: Generate Freezed Files" ], "presentation": { "reveal": "always", @@ -38,12 +38,12 @@ "AF: Flutter Pub Get", "AF: Flutter Package Get", "AF: Generate Language Files", - "AF: Generate Freezed Files", + "AF: Generate Freezed Files" ], "presentation": { "reveal": "always", - "panel": "new", - }, + "panel": "new" + } }, { "label": "AF: build_flowy_sdk_for_android", @@ -187,11 +187,20 @@ "detail": "app_flowy" }, { - "label": "AF: Tauri Dev", + "label": "AF: Tauri UI Dev", "type": "shell", "isBackground": true, - "command": "npm run dev", - "problemMatcher": [], + "command": "yarn dev", + "problemMatcher": ["$tsc"], + "options": { + "cwd": "${workspaceFolder}/appflowy_tauri" + } + }, + { + "label": "AF: Tauri Dev", + "type": "shell", + "command": "npm run tauri dev", + "problemMatcher": ["$tsc"], "options": { "cwd": "${workspaceFolder}/appflowy_tauri" } @@ -202,7 +211,20 @@ "command": "cargo make tauri_clean", "options": { "cwd": "${workspaceFolder}" - } + }, + "problemMatcher": ["$tsc"], }, + { + "label": "AF: Tauri Clean + Dev", + "type": "shell", + "dependsOrder": "sequence", + "dependsOn": [ + "AF: Tauri Clean", + "AF: Tauri UI Dev" + ], + "options": { + "cwd": "${workspaceFolder}" + } + } ] } \ No newline at end of file diff --git a/frontend/Makefile.toml b/frontend/Makefile.toml index 9edb2919c0..16c7e80b96 100644 --- a/frontend/Makefile.toml +++ b/frontend/Makefile.toml @@ -44,7 +44,7 @@ CRATE_TYPE = "staticlib" LIB_EXT = "a" APP_ENVIRONMENT = "local" FLUTTER_FLOWY_SDK_PATH = "app_flowy/packages/appflowy_backend" -TAURI_PROTOBUF_PATH = "appflowy_tauri/src/protobuf" +TAURI_BACKEND_SERVICE_PATH = "appflowy_tauri/src/services/backend" # Test default config TEST_CRATE_TYPE = "cdylib" TEST_LIB_EXT = "dylib" diff --git a/frontend/appflowy_tauri/.gitignore b/frontend/appflowy_tauri/.gitignore index 436967f542..b88d2d0637 100644 --- a/frontend/appflowy_tauri/.gitignore +++ b/frontend/appflowy_tauri/.gitignore @@ -23,5 +23,5 @@ dist-ssr *.sln *.sw? -**/src/protobuf/classes/ -**/src/protobuf/events/ \ No newline at end of file +**/src/services/backend/classes/ +**/src/services/backend/events/ \ No newline at end of file diff --git a/frontend/appflowy_tauri/src-tauri/build.rs b/frontend/appflowy_tauri/src-tauri/build.rs index 4b4e6edf99..d860e1e6a7 100644 --- a/frontend/appflowy_tauri/src-tauri/build.rs +++ b/frontend/appflowy_tauri/src-tauri/build.rs @@ -1,7 +1,3 @@ -use std::env; fn main() { - env::set_var("TAURI_PROTOBUF_PATH", "appflowy_tauri/src/protobuf"); - env::set_var("CARGO_MAKE_WORKING_DIRECTORY", "../../../"); - tauri_build::build() } diff --git a/frontend/appflowy_tauri/src/App.css b/frontend/appflowy_tauri/src/appflowy_app/App.css similarity index 100% rename from frontend/appflowy_tauri/src/App.css rename to frontend/appflowy_tauri/src/appflowy_app/App.css diff --git a/frontend/appflowy_tauri/src/App.tsx b/frontend/appflowy_tauri/src/appflowy_app/App.tsx similarity index 92% rename from frontend/appflowy_tauri/src/App.tsx rename to frontend/appflowy_tauri/src/appflowy_app/App.tsx index f8808aa809..fca8cd6137 100644 --- a/frontend/appflowy_tauri/src/App.tsx +++ b/frontend/appflowy_tauri/src/appflowy_app/App.tsx @@ -2,7 +2,7 @@ import "./App.css"; import { UserEventSignIn, SignInPayloadPB, -} from "./protobuf/events/flowy-user"; +} from "../services/backend/events/flowy-user"; import { nanoid } from "nanoid"; diff --git a/frontend/appflowy_tauri/src/home/application/RemoveMeAction.ts b/frontend/appflowy_tauri/src/appflowy_app/components/grid/application/RemoveMeAction.ts similarity index 100% rename from frontend/appflowy_tauri/src/home/application/RemoveMeAction.ts rename to frontend/appflowy_tauri/src/appflowy_app/components/grid/application/RemoveMeAction.ts diff --git a/frontend/appflowy_tauri/src/home/application/RemoveMeReducer.test.ts b/frontend/appflowy_tauri/src/appflowy_app/components/grid/application/RemoveMeReducer.test.ts similarity index 100% rename from frontend/appflowy_tauri/src/home/application/RemoveMeReducer.test.ts rename to frontend/appflowy_tauri/src/appflowy_app/components/grid/application/RemoveMeReducer.test.ts diff --git a/frontend/appflowy_tauri/src/home/application/RemoveMeReducer.ts b/frontend/appflowy_tauri/src/appflowy_app/components/grid/application/RemoveMeReducer.ts similarity index 100% rename from frontend/appflowy_tauri/src/home/application/RemoveMeReducer.ts rename to frontend/appflowy_tauri/src/appflowy_app/components/grid/application/RemoveMeReducer.ts diff --git a/frontend/appflowy_tauri/src/home/index.ts b/frontend/appflowy_tauri/src/appflowy_app/components/grid/index.ts similarity index 100% rename from frontend/appflowy_tauri/src/home/index.ts rename to frontend/appflowy_tauri/src/appflowy_app/components/grid/index.ts diff --git a/frontend/appflowy_tauri/src/home/presentation/RemoveMeComponent.test.tsx b/frontend/appflowy_tauri/src/appflowy_app/components/grid/presentation/RemoveMeComponent.test.tsx similarity index 100% rename from frontend/appflowy_tauri/src/home/presentation/RemoveMeComponent.test.tsx rename to frontend/appflowy_tauri/src/appflowy_app/components/grid/presentation/RemoveMeComponent.test.tsx diff --git a/frontend/appflowy_tauri/src/home/presentation/RemoveMeComponent.tsx b/frontend/appflowy_tauri/src/appflowy_app/components/grid/presentation/RemoveMeComponent.tsx similarity index 100% rename from frontend/appflowy_tauri/src/home/presentation/RemoveMeComponent.tsx rename to frontend/appflowy_tauri/src/appflowy_app/components/grid/presentation/RemoveMeComponent.tsx diff --git a/frontend/appflowy_tauri/src/plugins/grid/index.ts b/frontend/appflowy_tauri/src/appflowy_app/components/index.ts similarity index 100% rename from frontend/appflowy_tauri/src/plugins/grid/index.ts rename to frontend/appflowy_tauri/src/appflowy_app/components/index.ts diff --git a/frontend/appflowy_tauri/src/plugins/grid/application/RemoveMeAction.ts b/frontend/appflowy_tauri/src/appflowy_app/home/application/RemoveMeAction.ts similarity index 100% rename from frontend/appflowy_tauri/src/plugins/grid/application/RemoveMeAction.ts rename to frontend/appflowy_tauri/src/appflowy_app/home/application/RemoveMeAction.ts diff --git a/frontend/appflowy_tauri/src/plugins/grid/application/RemoveMeReducer.test.ts b/frontend/appflowy_tauri/src/appflowy_app/home/application/RemoveMeReducer.test.ts similarity index 100% rename from frontend/appflowy_tauri/src/plugins/grid/application/RemoveMeReducer.test.ts rename to frontend/appflowy_tauri/src/appflowy_app/home/application/RemoveMeReducer.test.ts diff --git a/frontend/appflowy_tauri/src/plugins/grid/application/RemoveMeReducer.ts b/frontend/appflowy_tauri/src/appflowy_app/home/application/RemoveMeReducer.ts similarity index 100% rename from frontend/appflowy_tauri/src/plugins/grid/application/RemoveMeReducer.ts rename to frontend/appflowy_tauri/src/appflowy_app/home/application/RemoveMeReducer.ts diff --git a/frontend/appflowy_tauri/src/plugins/index.ts b/frontend/appflowy_tauri/src/appflowy_app/home/index.ts similarity index 100% rename from frontend/appflowy_tauri/src/plugins/index.ts rename to frontend/appflowy_tauri/src/appflowy_app/home/index.ts diff --git a/frontend/appflowy_tauri/src/plugins/grid/presentation/RemoveMeComponent.test.tsx b/frontend/appflowy_tauri/src/appflowy_app/home/presentation/RemoveMeComponent.test.tsx similarity index 100% rename from frontend/appflowy_tauri/src/plugins/grid/presentation/RemoveMeComponent.test.tsx rename to frontend/appflowy_tauri/src/appflowy_app/home/presentation/RemoveMeComponent.test.tsx diff --git a/frontend/appflowy_tauri/src/plugins/grid/presentation/RemoveMeComponent.tsx b/frontend/appflowy_tauri/src/appflowy_app/home/presentation/RemoveMeComponent.tsx similarity index 100% rename from frontend/appflowy_tauri/src/plugins/grid/presentation/RemoveMeComponent.tsx rename to frontend/appflowy_tauri/src/appflowy_app/home/presentation/RemoveMeComponent.tsx diff --git a/frontend/appflowy_tauri/src/startup/index.ts b/frontend/appflowy_tauri/src/appflowy_app/index.ts similarity index 100% rename from frontend/appflowy_tauri/src/startup/index.ts rename to frontend/appflowy_tauri/src/appflowy_app/index.ts diff --git a/frontend/appflowy_tauri/src/style.css b/frontend/appflowy_tauri/src/appflowy_app/style.css similarity index 100% rename from frontend/appflowy_tauri/src/style.css rename to frontend/appflowy_tauri/src/appflowy_app/style.css diff --git a/frontend/appflowy_tauri/src/vite-env.d.ts b/frontend/appflowy_tauri/src/appflowy_app/vite-env.d.ts similarity index 100% rename from frontend/appflowy_tauri/src/vite-env.d.ts rename to frontend/appflowy_tauri/src/appflowy_app/vite-env.d.ts diff --git a/frontend/appflowy_tauri/src/main.tsx b/frontend/appflowy_tauri/src/main.tsx index 7d6d78e120..514bcbdd0b 100644 --- a/frontend/appflowy_tauri/src/main.tsx +++ b/frontend/appflowy_tauri/src/main.tsx @@ -1,7 +1,7 @@ import React from "react"; import ReactDOM from "react-dom/client"; -import App from "./App"; -import "./style.css"; +import App from "./appflowy_app/App"; +import "./appflowy_app/style.css"; ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( diff --git a/frontend/appflowy_tauri/src/protobuf/classes.ts b/frontend/appflowy_tauri/src/services/backend/index.ts similarity index 100% rename from frontend/appflowy_tauri/src/protobuf/classes.ts rename to frontend/appflowy_tauri/src/services/backend/index.ts diff --git a/frontend/rust-lib/flowy-codegen/src/protobuf_file/mod.rs b/frontend/rust-lib/flowy-codegen/src/protobuf_file/mod.rs index 96a7c691c3..046687b3b0 100644 --- a/frontend/rust-lib/flowy-codegen/src/protobuf_file/mod.rs +++ b/frontend/rust-lib/flowy-codegen/src/protobuf_file/mod.rs @@ -101,11 +101,12 @@ fn generate_ts_protobuf_files( protoc_bin_path: &Path, ) { let root = std::env::var("CARGO_MAKE_WORKING_DIRECTORY").unwrap_or("../../".to_string()); - let tauri_protobuf_path = std::env::var("TAURI_PROTOBUF_PATH").unwrap_or("appflowy_tauri/src/protobuf".to_string()); + let tauri_backend_service_path = + std::env::var("TAURI_BACKEND_SERVICE_PATH").unwrap_or("appflowy_tauri/src/services/backend".to_string()); let mut output = PathBuf::new(); output.push(root); - output.push(tauri_protobuf_path); + output.push(tauri_backend_service_path); output.push("classes"); output.push(name); diff --git a/frontend/rust-lib/flowy-codegen/src/ts_event/mod.rs b/frontend/rust-lib/flowy-codegen/src/ts_event/mod.rs index 796b4d7941..017f045e62 100644 --- a/frontend/rust-lib/flowy-codegen/src/ts_event/mod.rs +++ b/frontend/rust-lib/flowy-codegen/src/ts_event/mod.rs @@ -14,7 +14,8 @@ use walkdir::WalkDir; pub fn gen(crate_name: &str) { let root = std::env::var("CARGO_MAKE_WORKING_DIRECTORY").unwrap_or("../../".to_string()); - let tauri_protobuf_path = std::env::var("TAURI_PROTOBUF_PATH").unwrap_or("appflowy_tauri/src/protobuf".to_string()); + let tauri_backend_service_path = + std::env::var("TAURI_BACKEND_SERVICE_PATH").unwrap_or("appflowy_tauri/src/services/backend".to_string()); let crate_path = std::fs::canonicalize(".").unwrap().as_path().display().to_string(); let event_crates = parse_ts_event_files(vec![crate_path]); @@ -31,7 +32,9 @@ pub fn gen(crate_name: &str) { } render_result.push_str(TS_FOOTER); - let ts_event_folder: PathBuf = [&root, &tauri_protobuf_path, "events", crate_name].iter().collect(); + let ts_event_folder: PathBuf = [&root, &tauri_backend_service_path, "events", crate_name] + .iter() + .collect(); if !ts_event_folder.as_path().exists() { std::fs::create_dir_all(ts_event_folder.as_path()).unwrap(); } @@ -185,7 +188,7 @@ const TS_HEADER: &str = r#" /// Auto generate. Do not edit import { Ok, Err, Result } from "ts-results"; import { invoke } from "@tauri-apps/api/tauri"; -import * as pb from "../../classes"; +import * as pb from "../.."; "#; const TS_FOOTER: &str = r#" diff --git a/frontend/scripts/makefile/tauri.toml b/frontend/scripts/makefile/tauri.toml index 3d7058ac3d..58166b06a5 100644 --- a/frontend/scripts/makefile/tauri.toml +++ b/frontend/scripts/makefile/tauri.toml @@ -1,17 +1,3 @@ - - - -[tasks.tauri_env] -script_runner = "@rust" -script = ''' -//! ```cargo -use std::env; -fn main() { - env.set_var("TAURI_PROTOBUF_PATH", "appflowy_tauri/src/protobuf"); -} -''' - - [tasks.tauri_build] script = [""" cd appflowy_tauri/src-tauri @@ -45,7 +31,7 @@ run_task = { name = [ [tasks.rm_tauri_generated_protobuf_files] private = true script = [""" - protobuf_file_paths = glob_array ${TAURI_PROTOBUF_PATH}/classes + protobuf_file_paths = glob_array ${TAURI_BACKEND_SERVICE_PATH}/classes if not array_is_empty ${protobuf_file_paths} echo Remove generated protobuf files: for path in ${protobuf_file_paths} @@ -59,10 +45,10 @@ script_runner = "@duckscript" [tasks.rm_tauri_generated_event_files] private = true script = [""" - protobuf_file_paths = glob_array ${TAURI_PROTOBUF_PATH}/events - if not array_is_empty ${protobuf_file_paths} + event_file_paths = glob_array ${TAURI_BACKEND_SERVICE_PATH}/events + if not array_is_empty ${event_file_paths} echo Remove generated protobuf files: - for path in ${protobuf_file_paths} + for path in ${event_file_paths} echo remove ${path} rm -rf ${path} end