Приложение теперь включает полнофункциональную страницу профиля с возможностью загрузки аватарки.
- ✅ Просмотр информации о профиле
- ✅ Редактирование отображаемого имени
- ✅ Загрузка аватарки
- ✅ Просмотр даты регистрации
- ✅ Отображение настроек языка и темы
- ✅ Выход из аккаунта
Технические детали:
- Поддерживаемые форматы: JPG, PNG, GIF, WebP
- Максимальный размер: 2MB
- Рекомендуемый размер: 200x200px или больше (квадратные)
- Хранение: в папке
avatars/репозитория - Доступ: через GitHub raw content URLs
Процесс загрузки:
- Пользователь выбирает изображение
- Валидация типа файла и размера
- Конвертация в base64
- Загрузка в GitHub с уникальным именем файла
- Обновление профиля пользователя
- Перезагрузка страницы для отображения аватарки
Интерфейс User:
interface User {
username: string;
displayName: string;
avatar?: string; // Новое поле
joinedAt: string;
lang: string;
theme: string;
}Отображение в шапке:
- Аватарка вместо стандартной иконки
- Ссылка на профиль при клике на имя пользователя
- Сохранение существующего функционала выхода
- Добавлен маршрут
/profile - Защищенная страница (требует авторизации)
- Кнопка "Назад" для возврата на главную
Обновлена функция putFile() для поддержки бинарных файлов:
export async function putFile(
path: string,
content: string,
message: string,
isBase64: boolean = false, // Новый параметр
sha?: string
)- Папка:
avatars/ - Именование:
avatar-{username}-{timestamp}.{extension} - URL:
https://raw.githubusercontent.com/feekool/feekool.github.io/master/avatars/{filename}
- Тип файла: только изображения (
image/*) - Размер файла: максимум 2MB
- Обработка ошибок: пользовательские сообщения
- Клик на имя пользователя в шапке
- Переход на страницу
/profile - Просмотр и редактирование профиля
- Клик на иконку камеры на аватарке
- Выбор файла изображения
- Автоматическая загрузка и обновление
- Клик "Edit" рядом с именем
- Ввод нового отображаемого имени
- Сохранение изменений
- ✅ Поддержка всех браузеров с File API
- ✅ Мобильные устройства (iOS Safari, Android Chrome)
- ✅ Темная и светлая темы
- ✅ Многоязычность (EN/RU)
- Валидация файлов на клиенте
- Ограничение размера файлов
- Безопасные имена файлов
- Публичный доступ к аватаркам через GitHub
Возможно добавить:
- Обрезка изображений перед загрузкой
- Несколько аватарок для выбора
- Анимации загрузки
- Предпросмотр перед сохранением
- Удаление аватарки