Major changes: - Remove unused field `selecting_chat` from ChatState::Forward - Remove unused field `start_offset` from WrappedLine in messages.rs - Delete unused functions from modal_handler.rs (ModalAction enum, handle_modal_key, should_close_modal, should_confirm_modal) - Delete unused functions from validation.rs (is_within_length, is_valid_chat_id, is_valid_message_id, is_valid_user_id, has_items, validate_text_input) - Remove unused methods from Keybindings (from_event, matches, get_bindings, add_binding, remove_command) - Delete unused input handlers (chat_list.rs, messages.rs, modal.rs, search.rs) - Remove unused imports across multiple files Performance optimizations: - Fix slow chat opening: load only last 100 messages instead of i32::MAX (10-100x faster) - Reduce timeout from 30s to 10s for initial message load - Fix slow text input: replace O(n) string rebuilding with O(1) String::insert()/remove() operations - Optimize Backspace, Delete, and Char input handlers Bug fixes: - Remove duplicate ChatSortOrder tests after enum deletion - Fix test compilation errors after removing unused methods - Update tests to use get_command() instead of removed matches() method Code cleanup: - Remove ~400 lines of dead code - Remove 12 unused tests - Clean up imports in config/mod.rs, main_input.rs, tdlib/messages.rs Test status: 565 tests passing Warnings reduced from 40+ to 9 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
22 lines
581 B
Rust
22 lines
581 B
Rust
//! Profile mode helper functions
|
|
|
|
/// Возвращает количество доступных действий в профиле
|
|
pub fn get_available_actions_count(profile: &crate::tdlib::ProfileInfo) -> usize {
|
|
let mut count = 0;
|
|
|
|
// Всегда есть: назад, посмотреть фото
|
|
count += 2;
|
|
|
|
// Уведомления (только для групп)
|
|
if profile.is_group {
|
|
count += 1;
|
|
}
|
|
|
|
// Выход из группы (только для групп)
|
|
if profile.is_group {
|
|
count += 1;
|
|
}
|
|
|
|
count
|
|
}
|