Skip to content

Commit 5191082

Browse files
committed
optime load time and fix salary label
1 parent 41f4d22 commit 5191082

File tree

4 files changed

+31
-11
lines changed

4 files changed

+31
-11
lines changed

src/app/(default)/profile/[teacherId]/components/WorkloadDetails/StackedBarChart.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import React, { useMemo } from 'react';
44
import SectionTitle from '@/components/common/SectionTitle';
55
import { EvaluationWorkload } from '@/types/intellect';
66
import { LegendItem } from './LegendItem';
7-
import { filterWorkloadsByPeriod } from './utils';
7+
import { filterWorkloadsByPeriod, getSalaryLabel } from './utils';
88

99
interface Props {
1010
workloadsByYearRange: Record<string, EvaluationWorkload[]>;
@@ -90,12 +90,12 @@ export const StackedBarChart = ({
9090
},
9191
] as const;
9292

93-
const salary = workloadsByYearRange[selectedYear].toSorted((a,b)=>b.salary - a.salary)[0].salary.toFixed(2)
94-
93+
const salary = workloadsByYearRange[selectedYear].toSorted((a, b) => b.salary - a.salary)[0].salary.toFixed(2);
94+
const salaryLabel = getSalaryLabel(parseFloat(salary));
9595
return (
9696
<div className="mt-8">
9797
<SectionTitle className="mb-4 uppercase text-primary">
98-
ВИКОНАННЯ НОРМИ: {yearRange} ({salary})
98+
ВИКОНАННЯ НОРМИ: {yearRange} ({salaryLabel})
9999
</SectionTitle>
100100
<div className="relative">
101101
<div className="flex overflow-hidden rounded-md h-12">
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { WorkloadDetails } from '@/app/(default)/profile/[teacherId]/components/WorkloadDetails/WorkloadDetails';
2+
import React, { FC } from 'react';
3+
import { getEvaluationWorkloads, getRatings, getTeacherByTeacherId } from '@/api/teacher';
4+
5+
interface Props {
6+
teacherId: string;
7+
}
8+
9+
export const WorkloadContainer: FC<Props> = async ({ teacherId }) => {
10+
const [ratings, workloads] = await Promise.all([getRatings(teacherId), getEvaluationWorkloads(teacherId)]);
11+
return <WorkloadDetails workloads={workloads} ratings={ratings} />;
12+
};

src/app/(default)/profile/[teacherId]/components/WorkloadDetails/utils.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,11 @@ export const filterWorkloadsByPeriod = (
9595

9696
return workloads;
9797
};
98+
99+
export const getSalaryLabel = (salary: number) => {
100+
if (salary === 1) {
101+
return "Повна ставка"
102+
}
103+
104+
return `${salary} ставки`
105+
}

src/app/(default)/profile/[teacherId]/page.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import React, { Suspense } from 'react';
22
import type { Metadata } from 'next';
33
import { getEvaluationWorkloads, getRatings, getTeacherByTeacherId } from '@/api/teacher';
44
import { API_BASE_URL } from '@/api/index';
@@ -18,6 +18,8 @@ import {
1818
} from '@/components/ui/breadcrumb';
1919
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
2020
import { WorkloadDetails } from '@/app/(default)/profile/[teacherId]/components/WorkloadDetails/WorkloadDetails';
21+
import { WorkloadContainer } from '@/app/(default)/profile/[teacherId]/components/WorkloadDetails/WorkloadContainer';
22+
import { Loader } from 'lucide-react';
2123

2224
const generateMetaDescription = (teacher: Lecturer | null): string => {
2325
if (!teacher) {
@@ -70,11 +72,7 @@ export async function generateMetadata({ params }: { params: Promise<{ teacherId
7072

7173
export default async function TeacherProfilePage({ params }: { params: Promise<{ teacherId: string }> }) {
7274
const { teacherId } = await params;
73-
const [teacher, ratings, workloads] = await Promise.all([
74-
getTeacherByTeacherId(teacherId),
75-
getRatings(teacherId),
76-
getEvaluationWorkloads(teacherId),
77-
]);
75+
const teacher = await getTeacherByTeacherId(teacherId)
7876

7977
return (
8078
<section className="pt-12 pb-110">
@@ -116,7 +114,9 @@ export default async function TeacherProfilePage({ params }: { params: Promise<{
116114
<ProfileDetails teacherInfo={teacher} />
117115
</TabsContent>
118116
<TabsContent value="rating">
119-
<WorkloadDetails workloads={workloads} ratings={ratings} />
117+
<Suspense fallback={<Loader />}>
118+
<WorkloadContainer teacherId={teacherId} />
119+
</Suspense>
120120
</TabsContent>
121121
</Tabs>
122122
</div>

0 commit comments

Comments
 (0)