Skip to content

Conversation

Alexsporty
Copy link
Contributor

Реализовано:

  • Отображение профиля пользователя
  • Статус подписки
  • История заходов
  • Смена пароля
  • Logout

export default function Profile() {
const { user, subscription, loginHistory } = usePage<PageProps>().props;

const [currentPassword, setCurrentPassword] = useState('');
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Используется ли React hook form?
Запланированный стек проекта

Inertia.post('/Logout');
};
return (
<div className="profile-page">
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Используется ли shadcn/ui с Tailwind СSS?
Добавь, пожалуйста, скриншот в описании PR, как выглядит компонент и страница с компонентом.

Стек проекта

};
return (
<div className="profile-page">
<Head title={`Профиль ${user.name}`} />
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Еще предлагаю вынести визуально Head из контейнера

<>
<Head title={`Профиль ${user.name}`} />
<div className="profile-page">
  <h1>Профиль</h1>
  <p>
    <strong>ID:</strong>
    {user.id}
  </p>
  <p>
  ... // остальная часть компонента
</>

Понятно, что инерция его разместит в нужном месте, но так он будет более заметным и это подсказывает, что элемент не относится к компоненту

import React, { useState } from 'react';
import { Head, usePage, Inertia } from '@inertiajs/react';

interface User {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Очень много интерфейсов в компоненте.
В целом, интерфейсы удобнее располагать в файлах types, согласно иерархии

Проект упорядочиваем к использованию структуры FSD (документация)

Пример возможного размещения

src/pages/profile/
 ├─ ui/
 │   └─ ProfilePage.tsx - здесь компонент
 ├─ model/
 │   └─ profilePageModel.ts - когда требуется модель
 |   └─ types.ts - сейчас можно интерфейсы убрать в этот файл
 └─ index.ts - здесь импорт ирендер компонента

@Alexsporty
Copy link
Contributor Author

Добавил использование React hook form
Добавил shadcn/ui с Tailwind СSS
Вынес Head из контейнера
Упорядочил использованию структуры FSD вынес интерфейсы отдельно
прикрепляю фото
Снимок экрана 2025-09-10 в 11 47 09
Снимок экрана 2025-09-10 в 11 47 16

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants