diff --git a/.woodpecker/.dockerize.yaml b/.woodpecker/.dockerize.yaml index f5fa465..c4856b1 100644 --- a/.woodpecker/.dockerize.yaml +++ b/.woodpecker/.dockerize.yaml @@ -13,3 +13,6 @@ steps: when: - event: push branch: ${CI_REPO_DEFAULT_BRANCH} + +depends_on: + - validate diff --git a/.woodpecker/.validate.yaml b/.woodpecker/.validate.yaml new file mode 100644 index 0000000..fbf155e --- /dev/null +++ b/.woodpecker/.validate.yaml @@ -0,0 +1,26 @@ +steps: + - name: format + image: rust:latest + commands: + - rustup component add rustfmt + - cargo fmt --all --check + + - name: clippy + image: rust:latest + commands: + - apt update && apt install -y libgtk-3-dev libjavascriptcoregtk-4.1-dev libwebkit2gtk-4.1-dev + - rustup component add clippy + - cargo clippy --all --all-features -- -D warnings + # Not ready for clippy validation + failure: ignore + + # - name: build + # image: rust:latest + # commands: + # - cargo install dioxus-cli --locked -j ${JOBS_NB:-default} + # - rustup target add wasm32-unknown-unknown + # - cargo install -f wasm-bindgen-cli --version 0.2.93 + # - dx build -r --platform web -- -j ${JOBS_NB:-default} + +when: + - event: pull_request diff --git a/build.rs b/build.rs index 80f3543..7d0ad5a 100644 --- a/build.rs +++ b/build.rs @@ -15,26 +15,27 @@ fn main() { let out_dir = env::var("OUT_DIR").unwrap(); - let mut tasks = Vec::new(); - - // Global tokens - tasks.push(Task::new( - PathBuf::from("src/ui/_base.scss"), - Path::new(&out_dir).join("style_tokens.rs"), - "style".to_string(), - )); - // variables defined by the Panel component - tasks.push(Task::new( - PathBuf::from("src/ui/components/_panel.scss"), - Path::new(&out_dir).join("style_component_panel.rs"), - "panel".to_string(), - )); - // Variables set by the Conversations layout - tasks.push(Task::new( - PathBuf::from("src/ui/layouts/conversations.scss"), - Path::new(&out_dir).join("style_layout_conversations.rs"), - "conversations".to_string(), - )); + // let mut tasks = Vec::new(); + let tasks = vec![ + // Global tokens + Task::new( + PathBuf::from("src/ui/_base.scss"), + Path::new(&out_dir).join("style_tokens.rs"), + "style".to_string(), + ), + // variables defined by the Panel component + Task::new( + PathBuf::from("src/ui/components/_panel.scss"), + Path::new(&out_dir).join("style_component_panel.rs"), + "panel".to_string(), + ), + // Variables set by the Conversations layout + Task::new( + PathBuf::from("src/ui/layouts/conversations.scss"), + Path::new(&out_dir).join("style_layout_conversations.rs"), + "conversations".to_string(), + ), + ]; export_variables(tasks) } diff --git a/src/domain/model/store_interface.rs b/src/domain/model/store_interface.rs index 4a30354..bfdd944 100644 --- a/src/domain/model/store_interface.rs +++ b/src/domain/model/store_interface.rs @@ -39,6 +39,7 @@ pub trait RoomStoreConsumerInterface { pub trait RoomStoreProviderInterface { fn on_new_name(&self, name: Option); fn on_new_avatar(&self, avatar: Option); + #[allow(dead_code)] fn on_new_topic(&self, topic: Option); fn on_new_member(&self, member: RoomMember); fn on_invitation(&self, invitation: Invitation); diff --git a/src/ui/components/chat_panel.rs b/src/ui/components/chat_panel.rs index 0ba0b6c..868adc3 100644 --- a/src/ui/components/chat_panel.rs +++ b/src/ui/components/chat_panel.rs @@ -5,7 +5,7 @@ turf::style_sheet!("src/ui/components/chat_panel.scss"); #[component] pub fn ChatPanel(name: String) -> Element { rsx! { - style { {STYLE_SHEET} }, + style { {STYLE_SHEET} } div { class: ClassName::CHAT_PANEL, diff --git a/src/ui/components/conversations.rs b/src/ui/components/conversations.rs index ee71bdd..f572685 100644 --- a/src/ui/components/conversations.rs +++ b/src/ui/components/conversations.rs @@ -237,12 +237,16 @@ pub fn ConversationAvatar( let on_press = { let room_id = room_id.clone(); move || { - on_selected.map(|c| c.call(room_id.as_ref().clone())); + if let Some(c) = on_selected { + c.call(room_id.as_ref().clone()) + } } }; let on_long_press = move || { - on_pressed.map(|c| c.call(room_id.as_ref().clone())); + if let Some(c) = on_pressed { + c.call(room_id.as_ref().clone()) + } }; let long_press_hook = use_long_press(long_press_duration, on_press, on_long_press);