Commit Graph
17 Commits
Author SHA1 Message Date
asepharyana 1cc04bda66 feat(leptos): Phase 4 Task 2 - VoiceConnectionCard component 2026-07-03 20:56:06 +07:00
asepharyana c9bc5f5b50 feat(leptos): Phase 4 Task 1 - voice/media control hooks 2026-07-03 20:55:19 +07:00
asepharyana 3de7f8d823 fix(leptos): resolve Phase 3 compilation errors
- Add PartialEq to MessageRecord and all nested types in shared-types
- Fix String references in view! macro by cloning owned values
- Fix match arm types with .into_any() in app.rs
- Clone on_load_more before FnMut closure in message_feed.rs
- Pre-compute class strings before passing to view! in message_card.rs
- Fix lifetime issues with imgs/vids/cats by using owned Vec<AttachmentRef>
- Use separate closures for different event types in mod.rs
- Fix disabled property to use signal pattern
- Fix filter chip closure signatures
2026-07-03 20:45:35 +07:00
asepharyana 63ddc1e112 fix(leptos): compile errors in Phase 3 message components - WIP
Fixed:
- Icon imports: Replaced lucide-leptos icons with SVG/emoji alternatives
- AnyView lifetime: Fixed render_emojis to use owned strings
- Missing html import in message_feed.rs
- use_messages: Removed #[component] to make it a regular function
- MessageRecord fields: Removed is_reply, is_forward, is_crosspost checks
- String wrapping in view! macros: Wrapped strings in <span> elements
- Closure handling: Changed .into_forget() to .forget() for web_sys Closure
- URL borrowing in image_grid: Clone URLs before using in view!

Remaining issues (in progress):
- String references in class attributes need owned values
- Type inference for None.into_any()
- Closure capture issues with on_load_more
- Match arm type incompatibilities

19 errors remaining out of 31 initial errors - ~61% fixed
2026-07-03 20:32:15 +07:00
asepharyana 9322434daa feat(leptos): messages module skeleton + use_messages hook 2026-07-03 20:14:59 +07:00
asepharyana 1b970a4c51 fix(leptos): wire format corrections from whole-branch review 2026-07-03 18:43:25 +07:00
asepharyana bf36bf55fe feat(leptos): integrate auth with API + WS auth gating 2026-07-03 18:30:41 +07:00
asepharyana 2520faad47 feat(leptos): app shell with auth gate and tab routing 2026-07-03 18:22:28 +07:00
asepharyana 5389c82f31 feat(leptos): layout components -- Header, Sidebar, TabStrip, MobileTabBar 2026-07-03 18:16:08 +07:00
asepharyana aa20d1a633 feat(leptos): API client with all endpoint functions 2026-07-03 18:09:30 +07:00
asepharyana 20ef844682 feat(leptos): WebSocket singleton with event dispatch 2026-07-03 18:07:01 +07:00
asepharyana 5832ca7cd4 feat(leptos): UI primitives — Skeleton, StatusBadge, EmptyState, Modal 2026-07-03 17:59:38 +07:00
asepharyana b9e3a255bb feat(leptos): UI primitives — Input, Select, Tabs, ScrollArea, Toast 2026-07-03 17:47:21 +07:00
asepharyana 2b514142e6 feat(leptos): UI primitives — Button, Badge, Card 2026-07-03 17:41:07 +07:00
asepharyana 65804acaca feat(leptos): css design system with component classes and animations 2026-07-03 17:36:28 +07:00
asepharyana c4c43ce912 feat(leptos): frontend crate scaffold with empty app
- frontend/ crate compiles to WASM via trunk
- empty Leptos app mounted to body via wasm_bindgen(start)
- dependencies: leptos 0.7 CSR, leptos-use, lucide-leptos, gloo-net, web-sys
- workspace cargo check passes (first time the workspace compiles end-to-end)
- trunk build produces 65KB WASM + 25KB JS glue

Deviations from brief:
- lucide-leptos: 0.5 (brief) -> 3 (only version published)
- web-sys: removed invalid features ArrayBuffer/DataView (in js-sys/wasm-bindgen)
- src/main.rs -> src/lib.rs with #[wasm_bindgen(start)] to avoid bin/lib duplicate artifact
2026-07-03 17:09:44 +07:00
asepharyana f67bc5125b fix(leptos): correct shared-types timestamps to match JSON wire format 2026-07-03 07:24:28 +07:00