Compare commits

..

2 Commits

Author SHA1 Message Date
uttarayan21
729a0479ec chore(gitignore): add api config and items to ignore list
Some checks failed
build / checks-matrix (push) Has been cancelled
build / checks-build (push) Has been cancelled
build / codecov (push) Has been cancelled
docs / docs (push) Has been cancelled
2025-11-18 15:57:57 +05:30
uttarayan21
c312df3db2 feat: add new crates ui-gpui and ui-iced to workspace 2025-11-18 15:57:38 +05:30
9 changed files with 11410 additions and 90 deletions

2
.gitignore vendored
View File

@@ -3,3 +3,5 @@
.direnv .direnv
.env .env
.session .session
api/config.toml
api/items.json

2194
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
[workspace] [workspace]
members = [".", "api", "typegen"] members = [".", "api", "typegen", "ui-gpui", "ui-iced"]
[package] [package]
name = "jello" name = "jello"

6
ui-gpui/Cargo.toml Normal file
View File

@@ -0,0 +1,6 @@
[package]
name = "ui-gpui"
version = "0.1.0"
edition = "2024"
[dependencies]

14
ui-gpui/src/lib.rs Normal file
View File

@@ -0,0 +1,14 @@
pub fn add(left: u64, right: u64) -> u64 {
left + right
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
}
}

7
ui-iced/Cargo.toml Normal file
View File

@@ -0,0 +1,7 @@
[package]
name = "ui-iced"
version = "0.1.0"
edition = "2024"
[dependencies]
iced = { version = "0.13.1", features = ["canvas", "image", "tokio"] }

53
ui-iced/src/lib.rs Normal file
View File

@@ -0,0 +1,53 @@
use iced::{Element, Task};
struct State {
screen: Screen,
}
enum Screen {
Contacts(Contacts),
Conversation(Conversation),
}
enum Message {
Contacts(contacts::Message),
Conversation(conversation::Message),
}
fn update(state: &mut State, message: Message) -> Task<Message> {
match message {
Message::Contacts(message) => {
if let Screen::Contacts(contacts) = &mut state.screen {
let action = contacts.update(message);
match action {
contacts::Action::None => Task::none(),
contacts::Action::Run(task) => task.map(Message::Contacts),
contacts::Action::Chat(contact) => {
let (conversation, task) = Conversation::new(contact);
state.screen = Screen::Conversation(conversation);
task.map(Message::Conversation)
}
}
} else {
Task::none()
}
}
Message::Conversation(message) => {
if let Screen::Conversation(conversation) = &mut state.screen {
conversation.update(message).map(Message::Conversation)
} else {
Task::none()
}
}
}
}
fn view(state: &State) -> Element<Message> {
match &state.screen {
Screen::Contacts(contacts) => contacts.view().map(Message::Contacts),
Screen::Conversation(conversation) => conversation.view().map(Message::Conversation),
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long