Skip to content

Commit 5f99cbc

Browse files
authored
Merge pull request #5 from LexaFrontDev/NewEngineBranch
New engine branch
2 parents a30900b + 55f6daf commit 5f99cbc

53 files changed

Lines changed: 1357 additions & 72 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,5 @@ phpstan.neon
3737
###> friendsofphp/php-cs-fixer ###
3838
/.php-cs-fixer.php
3939
/.php-cs-fixer.cache
40+
package-lock.json
4041
###< friendsofphp/php-cs-fixer ###

assets/react/Aplication/UseCases/Tasks/TasksService.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {TaskUpdate} from "../../../ui/props/Tasks/TaskUpdate";
33
import {Task} from "../../../ui/props/Tasks/Task";
44
import {TaskResponse} from "../../../ui/props/Tasks/TaskResponse";
55
import {SaveTasksDto} from "../../../ui/props/Tasks/SaveTasksDto";
6+
import {ListTasks} from "../../../ui/props/Tasks/ListTasks/ListTasks";
67

78
export class TasksService {
89
constructor(private readonly tasksApi: TasksReqInterface) {}
@@ -15,6 +16,10 @@ export class TasksService {
1516
return await this.tasksApi.getTasksAll();
1617
}
1718

19+
async getListTasks(): Promise<ListTasks[] | false>{
20+
return await this.tasksApi.getListTasks()
21+
}
22+
1823
async createTask(task: Partial<SaveTasksDto>): Promise<TaskResponse> {
1924
try {
2025
const response = await this.tasksApi.saveTask(task);

assets/react/Domain/request/Tasks/TasksReqInterface.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {Task} from "../../../ui/props/Tasks/Task";
22
import {TaskUpdate} from "../../../ui/props/Tasks/TaskUpdate";
3+
import {ListTasks} from "../../../ui/props/Tasks/ListTasks/ListTasks";
34

45
export interface TasksReqInterface{
56
getTasksByDate(date: string): Promise<Task[]>;
@@ -8,4 +9,5 @@ export interface TasksReqInterface{
89
updateTask(task: TaskUpdate): Promise<any>
910
deleteTask(taskId: string | number): Promise<any>
1011
toggleWontDo(taskId: number | string): Promise<any>
12+
getListTasks(): Promise<ListTasks[] | false>
1113
}

assets/react/Infrastructure/request/tasks/TasksApi.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {Task} from "../../../ui/props/Tasks/Task";
22
import {TaskUpdate} from "../../../ui/props/Tasks/TaskUpdate";
33
import {TasksReqInterface} from "../../../Domain/request/Tasks/TasksReqInterface";
4+
import {ListTasks} from "../../../ui/props/Tasks/ListTasks/ListTasks";
45

56
export class TasksApi implements TasksReqInterface{
67
async getTasksByDate(date: string): Promise<Task[]> {
@@ -22,6 +23,20 @@ export class TasksApi implements TasksReqInterface{
2223
}
2324

2425

26+
27+
async getListTasks(): Promise<ListTasks[] | false> {
28+
const res = await fetch(`/api/list/tasks/all`);
29+
30+
if (!res.ok) {
31+
const error = await res.json().catch(() => ({}));
32+
throw new Error(error.message || 'Ошибка получения задач');
33+
}
34+
35+
return await res.json();
36+
}
37+
38+
39+
2540
async saveTask(task: Partial<Task>): Promise<any> {
2641
const res = await fetch('/api/tasks/save', {
2742
method: 'POST',

assets/react/Router.tsx

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,7 @@ const RouterDom = () => {
9999
}
100100
/>
101101

102-
<Route
103-
path="/matric"
104-
element={
105-
<AuthCheck isAuthenticated={isAuthenticated}>
106-
<MatricPage />
107-
</AuthCheck>
108-
}
109-
/>
102+
110103

111104
<Route
112105
path="/premium"

assets/react/pages/Tasks/TasksPage.tsx

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,15 @@ import React, { useState, useEffect, useRef } from 'react';
22
import Sidebar from '../chunk/SideBar';
33
import DataChunk from "../chunk/DataSelectChunk/DataChunk";
44
import Loading from "../chunk/LoadingChunk/Loading";
5-
import SidePanel from "../chunk/Tasks/TasksAside";
65
import { Task } from "../../ui/props/Tasks/Task";
7-
import { TimeData } from "../../ui/props/Tasks/TimeData";
86
import {ListTypeDTO} from "../../Aplication/Dto/ArrayDto/ListType/ListTypeDTO";
97
import {TasksService} from "../../Aplication/UseCases/Tasks/TasksService";
108
import {TasksApi} from "../../Infrastructure/request/tasks/TasksApi";
119
import { Messages, ErrorAlert, SuccessAlert, IsDoneAlert } from '../chunk/MessageAlertChunk';
12-
import {TaskDelete} from "../../ui/props/Tasks/TaskDelete";
1310
import {TaskUpdate} from "../../ui/props/Tasks/TaskUpdate";
1411
import {SaveTasksDto} from "../../ui/props/Tasks/SaveTasksDto";
1512
import {TasksDateDto} from "../../ui/props/Tasks/TasksDateDto";
1613
import {Period} from "../../ui/props/Tasks/type/periodType";
17-
import ResizablePanel from "../../ui/organism/Aside/ResizablePanel";
1814
import {ImperativePanelGroupHandle, Panel, PanelGroup, PanelResizeHandle} from "react-resizable-panels";
1915
import {Button} from "../../ui/atoms/button/Button";
2016
import TextArea from "../../ui/atoms/TextArea/TextArea";
@@ -24,6 +20,7 @@ import {useTranslation} from "react-i18next";
2420
import {LanguageRequestUseCase} from "../../Aplication/UseCases/language/LanguageRequestUseCase";
2521
import {LanguageApi} from "../../Infrastructure/request/Language/LanguageApi";
2622
import {formatTaskDateTime} from "../../Domain/Services/Tasks/taskDateFormatter";
23+
import {ListTasks} from "../../ui/props/Tasks/ListTasks/ListTasks";
2724

2825
const tasksService = new TasksService(new TasksApi());
2926
const LangUseCase = new LanguageRequestUseCase(new LanguageApi());
@@ -49,9 +46,7 @@ const TasksPage: React.FC = () => {
4946
});
5047
const [tasks, setTasks] = useState<Task[]>([]);
5148
const [editingTask, setEditingTask] = useState<Task | null>(null);
52-
const [infoTasks, setInfoTasks] = useState<Task | null>(null);
5349
const [showEditModal, setShowEditModal] = useState<boolean>(false);
54-
const [showInfoTasks, setShowInfoTasks] = useState<boolean>(false);
5550
const [loading, setLoading] = useState<boolean>(false);
5651
const [error, setError] = useState<string | null>(null);
5752
const [showEditDateModal, setShowEditDateModal] = useState<boolean>(false);
@@ -66,7 +61,7 @@ const TasksPage: React.FC = () => {
6661
const [langCode, setLangCode] = useState('en');
6762
const { t, i18n } = useTranslation('translation');
6863
const [translationsLoaded, setTranslationsLoaded] = useState<boolean>(false);
69-
64+
const [ListTasks, SetListTasks] = useState<ListTasks[] | []>([])
7065

7166

7267
useEffect(() => {
@@ -86,6 +81,27 @@ const TasksPage: React.FC = () => {
8681
detectLang();
8782
}, []);
8883

84+
85+
useEffect(() => {
86+
const fetchListTasks = async () => {
87+
try {
88+
let result = await tasksService.getListTasks();
89+
if (!result) {
90+
SetListTasks([]);
91+
return;
92+
}
93+
SetListTasks(result);
94+
} catch (error) {
95+
console.error("Ошибка при загрузке задач:", error);
96+
SetListTasks([]);
97+
}
98+
};
99+
100+
fetchListTasks();
101+
}, []);
102+
103+
104+
89105
const formatDate = (date: Date): string => {
90106
const year = date.getFullYear();
91107
const month = String(date.getMonth() + 1).padStart(2, '0');
@@ -348,7 +364,6 @@ const TasksPage: React.FC = () => {
348364

349365
const renderTaskDateTime = (task: Task) => {
350366
const lines = formatTaskDateTime(task);
351-
console.log(task);
352367
return (
353368
<div>
354369
{lines.map((line, index) => (
@@ -379,6 +394,13 @@ const TasksPage: React.FC = () => {
379394
<Button key={5} variant="listButton" isActive={activeId === 5} onClick={() => handlePeriodChange('nextMonth', 5)} className="day handl">{t('buttons.MonthButton')}</Button>
380395
</div>
381396
</div>
397+
398+
<div className="list-tasks">
399+
<button className="triger" onClick={() => setAddList(true)}>Добавить список</button>
400+
{ListTasks.map((task) => (
401+
<button>task.label</button>
402+
))}
403+
</div>
382404
</div>
383405
</div>
384406
</Panel>

assets/react/pages/main/pages/Premium.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ const PremiumPage: React.FC<PremiumPageProps> = ({ isAuthenticated }) => {
123123
{
124124
question: 'Как отменить подписку?',
125125
answer:
126-
'Если вы оформили подписку через Google Play или App Store — откройте соответствующее приложение, перейдите в раздел "Подписки" и отмените TaskFlow Premium. Если подписка оформлена напрямую, просто напишите нам через "Обратную связь".',
126+
'Если вы оформили подписку через Google Play или App Store — откройте соответствующее приложение, перейдите в раздел "Подписки" и отмените TaskFlow PremiumUseCases. Если подписка оформлена напрямую, просто напишите нам через "Обратную связь".',
127127
},
128128
{
129129
question: 'Что делать, если остались вопросы?',
@@ -172,7 +172,7 @@ const PremiumPage: React.FC<PremiumPageProps> = ({ isAuthenticated }) => {
172172
{/* хедер */}
173173
<header className="premium-header text-center py-5">
174174
<TextBlock variant="h1" align="center" weight="bold" size="display-4" className="mb-3">
175-
{t('HeadText') || 'Увеличьте вашу продуктивность с TaskFlow Premium'}
175+
{t('HeadText') || 'Увеличьте вашу продуктивность с TaskFlow PremiumUseCases'}
176176
</TextBlock>
177177
<TextBlock variant="p" align="center" color="text-muted" size="lead" className="mb-4">
178178
{t('DescText') || 'Разблокируйте все премиум-функции на всех платформах. Наслаждайтесь организованной жизнью в полной мере.'}
@@ -215,7 +215,7 @@ const PremiumPage: React.FC<PremiumPageProps> = ({ isAuthenticated }) => {
215215
<section className="premium-begin-section text-center py-5 bg-dark">
216216
<div className="container">
217217
<h2 className="display-6 fw-semibold mb-4">
218-
{t('readyQuestion') || 'Готовы ли вы достичь большего с Premium?'}
218+
{t('readyQuestion') || 'Готовы ли вы достичь большего с PremiumUseCases?'}
219219
</h2>
220220
<Button as="link" to="/users/register" variant="subscribe">
221221
{t('readyButton') || 'Вперёд'}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export type ListTasks = {
2+
label: string;
3+
priority: string;
4+
list_type: string;
5+
};
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
namespace App\Aplication\Dto\BenefistDto;
4+
5+
final class BenefitsDtoRes
6+
{
7+
public function __construct(
8+
public readonly string $title,
9+
public readonly string $desc,
10+
public readonly string $icon_path,
11+
) {
12+
}
13+
14+
15+
16+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace App\Aplication\Dto\FaqsDto;
4+
5+
final class FaqDtoRes
6+
{
7+
public function __construct(
8+
public readonly string $question,
9+
public readonly string $answer,
10+
) {
11+
}
12+
13+
14+
}

0 commit comments

Comments
 (0)