mirror of
https://github.com/lorsanstand/Aether.git
synced 2026-06-19 12:05:16 +03:00
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# 🌌 Aether
|
# 🌌 Aether
|
||||||
|
|
||||||
<img src="assets/mini-logo.png" alt="Aether logo" width="150" style="border-radius: 15px;">
|
<img src="assets/logo.png" alt="Aether logo" width="150" style="border-radius: 15px;">
|
||||||
|
|
||||||
**Современная full-stack платформа для чатов с мощным backend и элегантным frontend**
|
**Современная full-stack платформа для чатов с мощным backend и элегантным frontend**
|
||||||
|
|
||||||
@@ -291,16 +291,6 @@ npm run build
|
|||||||
# Папка dist/ готова к деплою на любой статический хостинг
|
# Папка dist/ готова к деплою на любой статический хостинг
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🤝 Вклад в проект
|
|
||||||
|
|
||||||
Мы приветствуем вклад в развитие проекта! Пожалуйста:
|
|
||||||
|
|
||||||
1. Сделайте Fork репозитория
|
|
||||||
2. Создайте ветку для новой функции (`git checkout -b feature/AmazingFeature`)
|
|
||||||
3. Зафиксируйте изменения (`git commit -m 'Add some AmazingFeature'`)
|
|
||||||
4. Отправьте в ветку (`git push origin feature/AmazingFeature`)
|
|
||||||
5. Откройте Pull Request
|
|
||||||
|
|
||||||
## 📝 Лицензия
|
## 📝 Лицензия
|
||||||
|
|
||||||
Этот проект распространяется под лицензией Apache 2.0. Подробности в файле [LICENSE](LICENSE).
|
Этот проект распространяется под лицензией Apache 2.0. Подробности в файле [LICENSE](LICENSE).
|
||||||
@@ -315,7 +305,6 @@ npm run build
|
|||||||
|
|
||||||
- [FastAPI](https://fastapi.tiangolo.com/) за отличный фреймворк
|
- [FastAPI](https://fastapi.tiangolo.com/) за отличный фреймворк
|
||||||
- [React](https://react.dev/) команде за мощную библиотеку
|
- [React](https://react.dev/) команде за мощную библиотеку
|
||||||
- Всем контрибьюторам open-source проектов, которые используются в Aether
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ export default function ChatPage() {
|
|||||||
|
|
||||||
// User profile modal state
|
// User profile modal state
|
||||||
const [viewingUser, setViewingUser] = useState<UserType | null>(null);
|
const [viewingUser, setViewingUser] = useState<UserType | null>(null);
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
const [userProfileLoading, setUserProfileLoading] = useState(false);
|
const [userProfileLoading, setUserProfileLoading] = useState(false);
|
||||||
|
|
||||||
// Message input state
|
// Message input state
|
||||||
@@ -942,7 +943,7 @@ export default function ChatPage() {
|
|||||||
initial={{ opacity: 0, scale: 0.8, y: 20 }}
|
initial={{ opacity: 0, scale: 0.8, y: 20 }}
|
||||||
animate={{ opacity: 1, scale: 1, y: 0 }}
|
animate={{ opacity: 1, scale: 1, y: 0 }}
|
||||||
exit={{ opacity: 0, scale: 0.8, y: 20 }}
|
exit={{ opacity: 0, scale: 0.8, y: 20 }}
|
||||||
onClick={scrollToBottom}
|
onClick={() => scrollToBottom(true)}
|
||||||
className="absolute bottom-24 right-8 p-3 rounded-full shadow-xl hover:scale-110 transition-transform"
|
className="absolute bottom-24 right-8 p-3 rounded-full shadow-xl hover:scale-110 transition-transform"
|
||||||
style={{
|
style={{
|
||||||
backgroundColor: 'var(--accent-primary)',
|
backgroundColor: 'var(--accent-primary)',
|
||||||
|
|||||||
Reference in New Issue
Block a user