add debug update chat list

This commit is contained in:
cheykrym 2025-10-06 05:51:32 +03:00
parent 851f5f2f3f
commit c2647fa22e
3 changed files with 335 additions and 492 deletions

View File

@ -94,6 +94,14 @@ struct TopBarView: View {
.imageScale(.large) .imageScale(.large)
.foregroundColor(.primary) .foregroundColor(.primary)
} }
// Кнопка поиска
Button(action: {
NotificationCenter.default.post(name: .debugRefreshChats, object: nil)
}) {
Text(NSLocalizedString("DEBUG UPDATE", comment: ""))
.foregroundColor(.primary)
}
} else if isProfileTab { } else if isProfileTab {
NavigationLink(destination: SettingsView(viewModel: viewModel)) { NavigationLink(destination: SettingsView(viewModel: viewModel)) {
Image(systemName: "wrench") Image(systemName: "wrench")

View File

@ -1,615 +1,443 @@
{ {
"sourceLanguage" : "ru", "sourceLanguage": "ru",
"strings" : { "strings": {
"@%@" : { "%lld": {},
"localizations" : { "@%@": {
"en" : { "localizations": {
"stringUnit" : { "en": {
"state" : "translated", "stringUnit": {
"value" : "@%@" "state": "translated",
"value": "@%@"
} }
} }
} }
}, },
"%lld" : { "Chat ID:": {},
"Companion ID:": {},
"DEBUG UPDATE": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "DEBUG UPDATE"
}
}, },
"🌍" : { "ru": {
"localizations" : { "stringUnit": {
"en" : { "state": "translated",
"stringUnit" : { "value": "DEBUG UPDATE"
"state" : "translated",
"value" : "🌍"
} }
} }
} }
}, },
"Chat ID:" : { "Fun Fest": {
"comment": "Fun Fest",
}, "localizations": {
"Companion ID:" : { "en": {
"stringUnit": {
}, "state": "translated",
"Fun Fest" : { "value": "Fun Fest"
"comment" : "Fun Fest",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Fun Fest"
} }
} }
} }
}, },
"Hello, world!" : { "Hello, world!": {
"localizations" : { "localizations": {
"en" : { "en": {
"stringUnit" : { "stringUnit": {
"state" : "translated", "state": "translated",
"value" : "Hello, world!" "value": "Hello, world!"
} }
} }
} }
}, },
"OK" : { "OK": {
"localizations" : { "localizations": {
"en" : { "en": {
"stringUnit" : { "stringUnit": {
"state" : "translated", "state": "translated",
"value" : "OK" "value": "OK"
} }
} }
} }
}, },
"profile_down_text_1" : { "Push-уведомления": {},
"Yobble": {
}, "localizations": {
"profile_down_text_2" : { "en": {
"stringUnit": {
}, "state": "translated",
"profile_down_text_3" : { "value": "Yobble"
},
"Push-уведомления" : {
},
"Yobble" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Yobble"
} }
} }
} }
}, },
"Активные сессии" : { "profile_down_text_1": {},
"profile_down_text_2": {},
}, "profile_down_text_3": {},
"Без звука (скоро)" : { "Активные сессии": {},
"Без звука (скоро)": {},
}, "Безопасность": {},
"Безопасность" : { "Ваше предложение": {},
"Вложение": {},
}, "Войти": {
"Ваше предложение" : { "localizations": {
"en": {
}, "stringUnit": {
"Вложение" : { "state": "translated",
"value": "Log in"
},
"Войти" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Log in"
} }
} }
} }
}, },
"Вы" : { "Вы": {},
"Вы предложили: %@": {},
}, "Выйти из аккаунта": {},
"Вы предложили: %@" : { "Где найти сохранённые черновики?": {
"comment": "FAQ question: drafts"
}, },
"Выйти из аккаунта" : { "Данные": {},
"Двухфакторная аутентификация": {},
}, "Добавить друзей": {
"Где найти сохранённые черновики?" : { "comment": "Add friends",
"comment" : "FAQ question: drafts" "localizations": {
}, "en": {
"Данные" : { "stringUnit": {
"state": "translated",
}, "value": "Add friends"
"Двухфакторная аутентификация" : {
},
"Добавить друзей" : {
"comment" : "Add friends",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Add friends"
} }
} }
} }
}, },
"Другое" : { "Другое": {},
"Заглушка: Push-уведомления": {},
}, "Заглушка: Активные сессии": {},
"Заглушка: Push-уведомления" : { "Заглушка: Двухфакторная аутентификация": {},
"Заглушка: Другие настройки": {},
}, "Заглушка: Обратная связь": {},
"Заглушка: Активные сессии" : { "Заглушка: Сменить пароль": {},
"Заглушка: Хранилище данных": {},
}, "Загружаем чаты…": {},
"Заглушка: Двухфакторная аутентификация" : { "Загрузка...": {
"localizations": {
}, "en": {
"Заглушка: Другие настройки" : { "stringUnit": {
"state": "translated",
}, "value": "Loading..."
"Заглушка: Обратная связь" : {
},
"Заглушка: Сменить пароль" : {
},
"Заглушка: Хранилище данных" : {
},
"Загружаем чаты…" : {
},
"Загрузка..." : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Loading..."
} }
} }
} }
}, },
"Заказы" : { "Заказы": {
"comment" : "Orders", "comment": "Orders",
"localizations" : { "localizations": {
"en" : { "en": {
"stringUnit" : { "stringUnit": {
"state" : "translated", "state": "translated",
"value" : "Orders" "value": "Orders"
} }
} }
} }
}, },
"Закрепить (скоро)" : { "Закрепить (скоро)": {},
"Закрыть": {
}, "comment": "Закрыть",
"Закрыть" : { "localizations": {
"comment" : "Закрыть", "en": {
"localizations" : { "stringUnit": {
"en" : { "state": "translated",
"stringUnit" : { "value": "Close"
"state" : "translated",
"value" : "Close"
} }
} }
} }
}, },
"Зарегистрироваться" : { "Зарегистрироваться": {
"comment" : "Зарегистрироваться", "comment": "Зарегистрироваться",
"localizations" : { "localizations": {
"en" : { "en": {
"stringUnit" : { "stringUnit": {
"state" : "translated", "state": "translated",
"value" : "Register" "value": "Register"
} }
} }
} }
}, },
"Здесь не будут чаты" : { "Здесь не будут чаты": {},
"Идеи": {},
}, "Избранные сообщения": {},
"Идеи" : { "Инвайт-код (необязательно)": {
"comment": "Инвайт-код",
}, "localizations": {
"Избранные сообщения" : { "en": {
"stringUnit": {
}, "state": "translated",
"Инвайт-код (необязательно)" : { "value": "Invite code (optional)"
"comment" : "Инвайт-код",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Invite code (optional)"
} }
} }
} }
}, },
"История" : { "История": {
"comment" : "History", "comment": "History",
"localizations" : { "localizations": {
"en" : { "en": {
"stringUnit" : { "stringUnit": {
"state" : "translated", "state": "translated",
"value" : "History" "value": "History"
} }
} }
} }
}, },
"Как сбросить пароль?" : { "Как сбросить пароль?": {
"comment" : "FAQ question: reset password" "comment": "FAQ question: reset password"
},
"Как связаться с поддержкой?" : {
"comment" : "FAQ question: support"
}, },
"Какая вкладка вам нужна?" : { "Как связаться с поддержкой?": {
"comment": "FAQ question: support"
}, },
"Корзина" : { "Какая вкладка вам нужна?": {},
"comment" : "Cart", "Корзина": {
"localizations" : { "comment": "Cart",
"en" : { "localizations": {
"stringUnit" : { "en": {
"state" : "translated", "stringUnit": {
"value" : "Cart" "state": "translated",
"value": "Cart"
} }
} }
} }
}, },
"Кошелёк" : { "Кошелёк": {
"comment" : "Wallet", "comment": "Wallet",
"localizations" : { "localizations": {
"en" : { "en": {
"stringUnit" : { "stringUnit": {
"state" : "translated", "state": "translated",
"value" : "Wallet" "value": "Wallet"
} }
} }
} }
}, },
"Лента" : { "Лента": {},
"Лицо": {},
}, "Логин": {
"Лицо" : { "comment": "Логин",
"localizations": {
}, "en": {
"Логин" : { "stringUnit": {
"comment" : "Логин", "state": "translated",
"localizations" : { "value": "Login"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Login"
} }
} }
} }
}, },
"Логин должен быть от 3 до 32 символов (английские буквы, цифры, _)" : { "Логин должен быть от 3 до 32 символов (английские буквы, цифры, _)": {
"comment" : "Логин должен быть от 3 до 32 символов (английские буквы, цифры, _)", "comment": "Логин должен быть от 3 до 32 символов (английские буквы, цифры, _)",
"localizations" : { "localizations": {
"en" : { "en": {
"stringUnit" : { "stringUnit": {
"state" : "translated", "state": "translated",
"value" : "Username must be 3 to 32 characters (letters, digits, or _)" "value": "Username must be 3 to 32 characters (letters, digits, or _)"
} }
} }
} }
}, },
"Логин уже занят." : { "Логин уже занят.": {},
"Мини-приложения": {
}, "comment": "Applets",
"Мини-приложения" : { "localizations": {
"comment" : "Applets", "en": {
"localizations" : { "stringUnit": {
"en" : { "state": "translated",
"stringUnit" : { "value": "Applets"
"state" : "translated",
"value" : "Applets"
} }
} }
} }
}, },
"Мои загрузки" : { "Мои загрузки": {
"comment" : "My Downloads", "comment": "My Downloads",
"localizations" : { "localizations": {
"en" : { "en": {
"stringUnit" : { "stringUnit": {
"state" : "translated", "state": "translated",
"value" : "My Downloads" "value": "My Downloads"
} }
} }
} }
}, },
"Мои комментарии" : { "Мои комментарии": {
"comment" : "My Comments", "comment": "My Comments",
"localizations" : { "localizations": {
"en" : { "en": {
"stringUnit" : { "stringUnit": {
"state" : "translated", "state": "translated",
"value" : "My Comments" "value": "My Comments"
} }
} }
} }
}, },
"Мой профиль" : { "Мой профиль": {},
"Мы планируем заменить вкладку. Поделитесь, что бы вы хотели видеть здесь чаще всего.": {},
}, "Напишите нам через форму обратной связи в разделе \"Поддержка\".": {
"Мы планируем заменить вкладку. Поделитесь, что бы вы хотели видеть здесь чаще всего." : { "comment": "FAQ answer: support"
},
"Напишите нам через форму обратной связи в разделе \"Поддержка\"." : {
"comment" : "FAQ answer: support"
},
"Например: закладки, друзья, активность..." : {
},
"Настройки" : {
"comment" : "Settings",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Settings"
}
}
}
},
"Не удалось загрузить список чатов." : {
},
"Не удалось загрузить чаты." : {
},
"Не удалось обработать данные чатов." : {
},
"Не удалось обработать ответ сервера." : {
},
"Не удалось сериализовать данные запроса." : {
},
"Неверный запрос (400)." : {
},
"Неверный код приглашения." : {
},
"Неверный логин" : {
"comment" : "Неверный логин"
},
"Неверный логин или пароль." : {
}, },
"Неверный пароль" : { "Например: закладки, друзья, активность...": {},
"comment" : "Неверный пароль" "Настройки": {
}, "comment": "Settings",
"Неизвестная ошибка" : { "localizations": {
"en": {
}, "stringUnit": {
"Неизвестная ошибка." : { "state": "translated",
"value": "Settings"
},
"Неизвестная ошибка. Попробуйте позже." : {
},
"Неизвестный" : {
},
"Неизвестный пользователь" : {
},
"Некорректный ответ от сервера." : {
},
"Нет аккаунта? Регистрация" : {
"comment" : "Регистрация"
},
"Нет сообщений" : {
},
"О приложении" : {
},
"Обновить" : {
},
"Обратная связь" : {
},
"Описание" : {
},
"Отображаемое имя" : {
},
"Отправить предложение" : {
},
"Отправляем..." : {
},
"Ошибка авторизации" : {
},
"Ошибка при деавторизации." : {
},
"Ошибка регистрация" : {
"comment" : "Ошибка"
},
"Ошибка сервера (%@)." : {
},
"Ошибка сервера: %@" : {
},
"Ошибка сети: %@" : {
},
"Ошибка соединения с сервером." : {
},
"Пароли не совпадают" : {
"comment" : "Пароли не совпадают"
},
"Пароль" : {
"comment" : "Пароль"
},
"Пароль должен быть от 8 до 128 символов" : {
"comment" : "Пароль должен быть от 6 до 32 символов"
},
"Перейдите в раздел \"Настройки > Сменить пароль\" и следуйте инструкциям." : {
"comment" : "FAQ answer: reset password"
},
"Повторить" : {
},
"Поддержка" : {
},
"Подтверждение пароля" : {
"comment" : "Подтверждение пароля"
},
"Пока что у вас нет чатов" : {
},
"Помощь" : {
"comment" : "Help Center",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Help"
} }
} }
} }
}, },
"Приглашение достигло лимита использования." : { "Не удалось загрузить список чатов.": {},
"Не удалось загрузить чаты.": {},
}, "Не удалось обработать данные чатов.": {},
"Приглашение истекло." : { "Не удалось обработать ответ сервера.": {},
"Не удалось сериализовать данные запроса.": {},
}, "Неверный запрос (400).": {},
"Приглашение не активно." : { "Неверный код приглашения.": {},
"Неверный логин": {
}, "comment": "Неверный логин"
"Приложение" : {
},
"Применить" : {
},
"Произошла ошибка." : {
},
"Профиль" : {
},
"Публичная информация" : {
}, },
"Регистрация" : { "Неверный логин или пароль.": {},
"comment" : "Регистрация" "Неверный пароль": {
"comment": "Неверный пароль"
}, },
"Регистрация временно недоступна." : { "Неизвестная ошибка": {},
"Неизвестная ошибка.": {},
"Неизвестная ошибка. Попробуйте позже.": {},
"Неизвестный": {},
"Неизвестный пользователь": {},
"Некорректный ответ от сервера.": {},
"Нет аккаунта? Регистрация": {
"comment": "Регистрация"
}, },
"Регистрация выполнена, но вход не удался." : { "Нет сообщений": {},
"О приложении": {},
"Обновить": {},
"Обратная связь": {},
"Описание": {},
"Отображаемое имя": {},
"Отправить предложение": {},
"Отправляем...": {},
"Ошибка авторизации": {},
"Ошибка при деавторизации.": {},
"Ошибка регистрация": {
"comment": "Ошибка"
}, },
"Регистрация запрещена." : { "Ошибка сервера (%@).": {},
"Ошибка сервера: %@": {},
"Ошибка сети: %@": {},
"Ошибка соединения с сервером.": {},
"Пароли не совпадают": {
"comment": "Пароли не совпадают"
},
"Пароль": {
"comment": "Пароль"
}, },
"Регистрация и вход выполнены успешно." : { "Пароль должен быть от 8 до 128 символов": {
"comment": "Пароль должен быть от 6 до 32 символов"
}, },
"Редактировать профиль" : { "Перейдите в раздел \"Настройки > Сменить пароль\" и следуйте инструкциям.": {
"comment": "FAQ answer: reset password"
}, },
"Сервер не отвечает. Попробуйте позже." : { "Повторить": {},
"Поддержка": {},
"Подтверждение пароля": {
"comment": "Подтверждение пароля"
}, },
"Сессия истекла. Войдите снова." : { "Пока что у вас нет чатов": {},
"Помощь": {
}, "comment": "Help Center",
"Скан" : { "localizations": {
"comment" : "Scan", "en": {
"localizations" : { "stringUnit": {
"en" : { "state": "translated",
"stringUnit" : { "value": "Help"
"state" : "translated",
"value" : "Scan"
} }
} }
} }
}, },
"Слишком много запросов." : { "Приглашение достигло лимита использования.": {},
"Приглашение истекло.": {},
}, "Приглашение не активно.": {},
"Сменить пароль" : { "Приложение": {},
"Применить": {},
}, "Произошла ошибка.": {},
"Сообщение" : { "Профиль": {},
"Публичная информация": {},
}, "Регистрация": {
"Спасибо!" : { "comment": "Регистрация"
},
"Тёмная тема" : {
},
"Уведомления" : {
}, },
"Удалить чат (скоро)" : { "Регистрация временно недоступна.": {},
"Регистрация выполнена, но вход не удался.": {},
}, "Регистрация запрещена.": {},
"Центр авторов" : { "Регистрация и вход выполнены успешно.": {},
"comment" : "Creator Center", "Редактировать профиль": {},
"localizations" : { "Сервер не отвечает. Попробуйте позже.": {},
"en" : { "Сессия истекла. Войдите снова.": {},
"stringUnit" : { "Скан": {
"state" : "translated", "comment": "Scan",
"value" : "Creator Center" "localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Scan"
}
}
}
},
"Слишком много запросов.": {},
"Сменить пароль": {},
"Сообщение": {},
"Спасибо!": {},
"Тёмная тема": {},
"Уведомления": {},
"Удалить чат (скоро)": {},
"Центр авторов": {
"comment": "Creator Center",
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Creator Center"
}
}
}
},
"Частые вопросы": {
"comment": "FAQ navigation title"
},
"Чат": {},
"Чаты": {},
"Черновики": {
"comment": "Drafts",
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Drafts"
} }
} }
} }
}, },
"Частые вопросы" : { "Черновики доступны в боковом меню в разделе Drafts.": {
"comment" : "FAQ navigation title" "comment": "FAQ answer: drafts"
},
"Чат" : {
},
"Чаты" : {
}, },
"Черновики" : { "Экран чата в разработке": {},
"comment" : "Drafts", "Язык": {},
"localizations" : { "🌍": {
"en" : { "localizations": {
"stringUnit" : { "en": {
"state" : "translated", "stringUnit": {
"value" : "Drafts" "state": "translated",
"value": "🌍"
} }
} }
} }
},
"Черновики доступны в боковом меню в разделе Drafts." : {
"comment" : "FAQ answer: drafts"
},
"Экран чата в разработке" : {
},
"Язык" : {
} }
}, },
"version" : "1.0" "version": "1.0"
} }

View File

@ -18,6 +18,9 @@ struct ChatsTab: View {
.onAppear { .onAppear {
viewModel.loadInitialChats() viewModel.loadInitialChats()
} }
.onReceive(NotificationCenter.default.publisher(for: .debugRefreshChats)) { _ in
viewModel.refresh()
}
} }
@ViewBuilder @ViewBuilder
@ -526,3 +529,7 @@ private struct ChatPlaceholderView: View {
return NSLocalizedString("Чат", comment: "") return NSLocalizedString("Чат", comment: "")
} }
} }
extension Notification.Name {
static let debugRefreshChats = Notification.Name("debugRefreshChats")
}