From 5c5748a80c2b8456b727b6919bfc9a8b3824cc89 Mon Sep 17 00:00:00 2001 From: reya Date: Sun, 13 Apr 2025 08:03:22 +0700 Subject: [PATCH] chore: restructure --- Cargo.lock | 128 ++++++------------ Cargo.toml | 3 +- Packager.toml | 11 +- crates/account/src/lib.rs | 21 +-- crates/{app => coop}/Cargo.toml | 1 + .../coop/resources}/128x128.png | Bin .../coop/resources}/128x128@2x.png | Bin .../brand => crates/coop/resources}/32x32.png | Bin .../coop/resources/app-icon.icns | Bin .../coop/resources/app-icon.ico | Bin .../coop/resources/app-icon.png | Bin crates/{app => coop}/src/asset.rs | 0 crates/{app => coop}/src/chat_space.rs | 0 crates/{app => coop}/src/main.rs | 0 crates/{app => coop}/src/views/chat.rs | 0 crates/{app => coop}/src/views/contacts.rs | 0 crates/{app => coop}/src/views/login.rs | 4 + crates/{app => coop}/src/views/mod.rs | 0 crates/{app => coop}/src/views/new_account.rs | 0 crates/{app => coop}/src/views/onboarding.rs | 0 crates/{app => coop}/src/views/profile.rs | 0 crates/{app => coop}/src/views/relays.rs | 0 crates/{app => coop}/src/views/settings.rs | 0 .../src/views/sidebar/compose.rs | 0 .../{app => coop}/src/views/sidebar/folder.rs | 0 crates/{app => coop}/src/views/sidebar/mod.rs | 0 crates/{app => coop}/src/views/welcome.rs | 0 script/.keep | 0 28 files changed, 56 insertions(+), 112 deletions(-) rename crates/{app => coop}/Cargo.toml (99%) rename {assets/brand => crates/coop/resources}/128x128.png (100%) rename {assets/brand => crates/coop/resources}/128x128@2x.png (100%) rename {assets/brand => crates/coop/resources}/32x32.png (100%) rename assets/brand/icon.icns => crates/coop/resources/app-icon.icns (100%) rename assets/brand/icon.ico => crates/coop/resources/app-icon.ico (100%) rename assets/brand/icon.png => crates/coop/resources/app-icon.png (100%) rename crates/{app => coop}/src/asset.rs (100%) rename crates/{app => coop}/src/chat_space.rs (100%) rename crates/{app => coop}/src/main.rs (100%) rename crates/{app => coop}/src/views/chat.rs (100%) rename crates/{app => coop}/src/views/contacts.rs (100%) rename crates/{app => coop}/src/views/login.rs (99%) rename crates/{app => coop}/src/views/mod.rs (100%) rename crates/{app => coop}/src/views/new_account.rs (100%) rename crates/{app => coop}/src/views/onboarding.rs (100%) rename crates/{app => coop}/src/views/profile.rs (100%) rename crates/{app => coop}/src/views/relays.rs (100%) rename crates/{app => coop}/src/views/settings.rs (100%) rename crates/{app => coop}/src/views/sidebar/compose.rs (100%) rename crates/{app => coop}/src/views/sidebar/folder.rs (100%) rename crates/{app => coop}/src/views/sidebar/mod.rs (100%) rename crates/{app => coop}/src/views/welcome.rs (100%) create mode 100644 script/.keep diff --git a/Cargo.lock b/Cargo.lock index 16ef0d1f..225d5c57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -872,9 +872,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.18" +version = "1.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" +checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" dependencies = [ "jobserver", "libc", @@ -1015,9 +1015,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.35" +version = "4.5.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" +checksum = "2df961d8c8a0d08aa9945718ccf584145eee3f3aa06cddbeac12933781102e04" dependencies = [ "clap_builder", "clap_derive", @@ -1025,9 +1025,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.35" +version = "4.5.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" +checksum = "132dbda40fb6753878316a489d5a1242a8ef2f0d9e47ba01c951ea8aa7d013a5" dependencies = [ "anstream", "anstyle", @@ -1135,7 +1135,7 @@ dependencies = [ [[package]] name = "collections" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "indexmap", "rustc-hash 2.1.1", @@ -1498,9 +1498,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "data-url" @@ -1524,7 +1524,7 @@ dependencies = [ [[package]] name = "derive_refineable" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "proc-macro2", "quote", @@ -2306,7 +2306,7 @@ dependencies = [ [[package]] name = "gpui" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "anyhow", "as-raw-xcb-connection", @@ -2397,7 +2397,7 @@ dependencies = [ [[package]] name = "gpui_macros" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "proc-macro2", "quote", @@ -2621,7 +2621,7 @@ dependencies = [ [[package]] name = "http_client" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "anyhow", "bytes", @@ -2638,7 +2638,7 @@ dependencies = [ [[package]] name = "http_client_tls" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "rustls", "rustls-platform-verifier", @@ -3233,9 +3233,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" @@ -3379,7 +3379,7 @@ dependencies = [ [[package]] name = "media" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "anyhow", "bindgen 0.71.1", @@ -4114,9 +4114,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.71" +version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" +checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ "bitflags 2.9.0", "cfg-if", @@ -4146,9 +4146,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.106" +version = "0.9.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" dependencies = [ "cc", "libc", @@ -4813,7 +4813,7 @@ dependencies = [ [[package]] name = "refineable" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "derive_refineable", "workspace-hack", @@ -4951,7 +4951,7 @@ dependencies = [ [[package]] name = "reqwest_client" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "anyhow", "bytes", @@ -5012,9 +5012,9 @@ checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" [[package]] name = "rust-embed" -version = "8.6.0" +version = "8.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b3aba5104622db5c9fc61098de54708feb732e7763d7faa2fa625899f00bf6f" +checksum = "e5fbc0ee50fcb99af7cebb442e5df7b5b45e9460ffa3f8f549cd26b862bec49d" dependencies = [ "rust-embed-impl", "rust-embed-utils", @@ -5023,9 +5023,9 @@ dependencies = [ [[package]] name = "rust-embed-impl" -version = "8.6.0" +version = "8.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f198c73be048d2c5aa8e12f7960ad08443e56fd39cc26336719fdb4ea0ebaae" +checksum = "6bf418c9a2e3f6663ca38b8a7134cc2c2167c9d69688860e8961e3faa731702e" dependencies = [ "proc-macro2", "quote", @@ -5036,9 +5036,9 @@ dependencies = [ [[package]] name = "rust-embed-utils" -version = "8.6.0" +version = "8.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a2fcdc9f40c8dc2922842ca9add611ad19f332227fc651d015881ad1552bd9a" +checksum = "08d55b95147fe01265d06b3955db798bdaed52e60e2211c41137701b3aba8e21" dependencies = [ "globset", "sha2", @@ -5094,15 +5094,15 @@ dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.9.3", + "linux-raw-sys 0.9.4", "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.25" +version = "0.23.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" +checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" dependencies = [ "aws-lc-rs", "log", @@ -5414,14 +5414,14 @@ dependencies = [ [[package]] name = "self_cell" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" +checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" [[package]] name = "semantic_version" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "anyhow", "serde", @@ -5744,7 +5744,7 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "sum_tree" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "arrayvec", "log", @@ -6646,7 +6646,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "util" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#f0b7f355a29486566a8ed7c2be4acad4b305b881" +source = "git+https://github.com/zed-industries/zed#b864a9b0ae633006a44c02b723fe6fad07e84b93" dependencies = [ "anyhow", "async-fs", @@ -7095,16 +7095,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" -dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows" version = "0.61.1" @@ -7120,16 +7110,17 @@ dependencies = [ [[package]] name = "windows-capture" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6001b777f61cafce437201de46a019ed7f4afed3b669f02e5ce4e0759164cb3e" +checksum = "59d10b4be8b907c7055bc7270dd68d2b920978ffacc1599dcb563a79f0e68d16" dependencies = [ "clap", "ctrlc", "parking_lot", "rayon", - "thiserror 1.0.69", - "windows 0.58.0", + "thiserror 2.0.12", + "windows 0.61.1", + "windows-future", ] [[package]] @@ -7153,19 +7144,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-core" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" -dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows-core" version = "0.61.0" @@ -7200,17 +7178,6 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "windows-implement" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "windows-implement" version = "0.60.0" @@ -7233,17 +7200,6 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "windows-interface" version = "0.59.1" diff --git a/Cargo.toml b/Cargo.toml index 0a5036e4..c09140a8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [workspace] resolver = "2" members = ["crates/*"] -default-members = ["crates/app"] +default-members = ["crates/coop"] [workspace.package] version = "0.1.4" @@ -29,6 +29,7 @@ nostr-sdk = { git = "https://github.com/rust-nostr/nostr", features = [ "nip05", ] } +# Others smol = "2" oneshot = "0.1.10" serde = { version = "1.0", features = ["derive"] } diff --git a/Packager.toml b/Packager.toml index 95d05f0e..3812c2be 100644 --- a/Packager.toml +++ b/Packager.toml @@ -4,11 +4,12 @@ product-name = "Coop" identifier = "su.reya.coop" resources = ["assets/*/*", "Cargo.toml", "./LICENSE", "./README.md"] icons = [ - "assets/brand/32x32.png", - "assets/brand/128x128.png", - "assets/brand/128x128@2x.png", - "assets/brand/icon.icns", - "assets/brand/icon.ico", + "crates/coop/resources/32x32.png", + "crates/coop/resources/128x128.png", + "crates/coop/resources/128x128@2x.png", + "crates/coop/resources/app-icon.icns", + "crates/coop/resources/app-icon.png", + "crates/coop/resources/app-icon.ico", ] before-packaging-command = "cargo build --release" out-dir = "./target/release" diff --git a/crates/account/src/lib.rs b/crates/account/src/lib.rs index 5099dcab..1058da8d 100644 --- a/crates/account/src/lib.rs +++ b/crates/account/src/lib.rs @@ -14,19 +14,12 @@ struct GlobalAccount(Entity); impl Global for GlobalAccount {} pub fn init(cx: &mut App) { - Account::set_global( - cx.new(|_| Account { - profile: None, - loading: false, - }), - cx, - ); + Account::set_global(cx.new(|_| Account { profile: None }), cx); } #[derive(Debug, Clone)] pub struct Account { pub profile: Option, - loading: bool, } impl Account { @@ -42,12 +35,6 @@ impl Account { where S: NostrSigner + 'static, { - if self.loading { - return; - } - - self.set_loading(true, cx); - let task: Task> = cx.background_spawn(async move { let client = get_client(); // Use user's signer for main signer @@ -72,7 +59,6 @@ impl Account { cx.update(|_, cx| { this.update(cx, |this, cx| { this.profile = Some(profile); - this.set_loading(false, cx); this.subscribe(cx); cx.notify(); }) @@ -178,9 +164,4 @@ impl Account { }) .detach(); } - - fn set_loading(&mut self, loading: bool, cx: &mut Context) { - self.loading = loading; - cx.notify(); - } } diff --git a/crates/app/Cargo.toml b/crates/coop/Cargo.toml similarity index 99% rename from crates/app/Cargo.toml rename to crates/coop/Cargo.toml index 0a847c2d..a97bfe8a 100644 --- a/crates/app/Cargo.toml +++ b/crates/coop/Cargo.toml @@ -21,6 +21,7 @@ reqwest_client.workspace = true nostr-connect.workspace = true nostr-sdk.workspace = true + anyhow.workspace = true serde.workspace = true serde_json.workspace = true diff --git a/assets/brand/128x128.png b/crates/coop/resources/128x128.png similarity index 100% rename from assets/brand/128x128.png rename to crates/coop/resources/128x128.png diff --git a/assets/brand/128x128@2x.png b/crates/coop/resources/128x128@2x.png similarity index 100% rename from assets/brand/128x128@2x.png rename to crates/coop/resources/128x128@2x.png diff --git a/assets/brand/32x32.png b/crates/coop/resources/32x32.png similarity index 100% rename from assets/brand/32x32.png rename to crates/coop/resources/32x32.png diff --git a/assets/brand/icon.icns b/crates/coop/resources/app-icon.icns similarity index 100% rename from assets/brand/icon.icns rename to crates/coop/resources/app-icon.icns diff --git a/assets/brand/icon.ico b/crates/coop/resources/app-icon.ico similarity index 100% rename from assets/brand/icon.ico rename to crates/coop/resources/app-icon.ico diff --git a/assets/brand/icon.png b/crates/coop/resources/app-icon.png similarity index 100% rename from assets/brand/icon.png rename to crates/coop/resources/app-icon.png diff --git a/crates/app/src/asset.rs b/crates/coop/src/asset.rs similarity index 100% rename from crates/app/src/asset.rs rename to crates/coop/src/asset.rs diff --git a/crates/app/src/chat_space.rs b/crates/coop/src/chat_space.rs similarity index 100% rename from crates/app/src/chat_space.rs rename to crates/coop/src/chat_space.rs diff --git a/crates/app/src/main.rs b/crates/coop/src/main.rs similarity index 100% rename from crates/app/src/main.rs rename to crates/coop/src/main.rs diff --git a/crates/app/src/views/chat.rs b/crates/coop/src/views/chat.rs similarity index 100% rename from crates/app/src/views/chat.rs rename to crates/coop/src/views/chat.rs diff --git a/crates/app/src/views/contacts.rs b/crates/coop/src/views/contacts.rs similarity index 100% rename from crates/app/src/views/contacts.rs rename to crates/coop/src/views/contacts.rs diff --git a/crates/app/src/views/login.rs b/crates/coop/src/views/login.rs similarity index 99% rename from crates/app/src/views/login.rs rename to crates/coop/src/views/login.rs index c2a49ddd..8a534353 100644 --- a/crates/app/src/views/login.rs +++ b/crates/coop/src/views/login.rs @@ -157,6 +157,10 @@ impl Login { } fn login(&mut self, window: &mut Window, cx: &mut Context) { + if self.is_logging_in { + return; + }; + self.set_logging_in(true, cx); let content = self.key_input.read(cx).text(); diff --git a/crates/app/src/views/mod.rs b/crates/coop/src/views/mod.rs similarity index 100% rename from crates/app/src/views/mod.rs rename to crates/coop/src/views/mod.rs diff --git a/crates/app/src/views/new_account.rs b/crates/coop/src/views/new_account.rs similarity index 100% rename from crates/app/src/views/new_account.rs rename to crates/coop/src/views/new_account.rs diff --git a/crates/app/src/views/onboarding.rs b/crates/coop/src/views/onboarding.rs similarity index 100% rename from crates/app/src/views/onboarding.rs rename to crates/coop/src/views/onboarding.rs diff --git a/crates/app/src/views/profile.rs b/crates/coop/src/views/profile.rs similarity index 100% rename from crates/app/src/views/profile.rs rename to crates/coop/src/views/profile.rs diff --git a/crates/app/src/views/relays.rs b/crates/coop/src/views/relays.rs similarity index 100% rename from crates/app/src/views/relays.rs rename to crates/coop/src/views/relays.rs diff --git a/crates/app/src/views/settings.rs b/crates/coop/src/views/settings.rs similarity index 100% rename from crates/app/src/views/settings.rs rename to crates/coop/src/views/settings.rs diff --git a/crates/app/src/views/sidebar/compose.rs b/crates/coop/src/views/sidebar/compose.rs similarity index 100% rename from crates/app/src/views/sidebar/compose.rs rename to crates/coop/src/views/sidebar/compose.rs diff --git a/crates/app/src/views/sidebar/folder.rs b/crates/coop/src/views/sidebar/folder.rs similarity index 100% rename from crates/app/src/views/sidebar/folder.rs rename to crates/coop/src/views/sidebar/folder.rs diff --git a/crates/app/src/views/sidebar/mod.rs b/crates/coop/src/views/sidebar/mod.rs similarity index 100% rename from crates/app/src/views/sidebar/mod.rs rename to crates/coop/src/views/sidebar/mod.rs diff --git a/crates/app/src/views/welcome.rs b/crates/coop/src/views/welcome.rs similarity index 100% rename from crates/app/src/views/welcome.rs rename to crates/coop/src/views/welcome.rs diff --git a/script/.keep b/script/.keep new file mode 100644 index 00000000..e69de29b