From ada81a636018b8e58dfc0b9c0d0465abd2a747fc Mon Sep 17 00:00:00 2001 From: Nastya Date: Fri, 5 Apr 2024 21:23:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B5=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D0=B2=D1=80=D0=B5=D0=BC=D1=8F=20=D0=B5?= =?UTF-8?q?=D1=81=D0=BB=D0=B8=20=D0=BD=D0=B5=D1=82,=20=D0=B7=D0=B0=D0=B3?= =?UTF-8?q?=D0=BB=D1=83=D1=88=D0=BA=D0=B8=20=D0=BF=D1=83=D1=81=D1=82=D1=8B?= =?UTF-8?q?=D1=85=20=D0=BF=D0=BE=D0=BB=D0=B5=D0=B9,=20=D0=B8=D0=BC=D1=8F?= =?UTF-8?q?=20=D0=B2=D0=BE=D0=BF=D1=80=D0=BE=D1=81=D0=B0=20=D0=B2=20=D0=B0?= =?UTF-8?q?=D0=BD=D0=B0=D0=BB=D0=B8=D1=82=D0=B8=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Analytics/Answers/Answers.tsx | 26 +++++++++++++++--------- src/pages/Analytics/Devices.tsx | 2 +- src/pages/Analytics/General.tsx | 27 ++++++++++++++++--------- 3 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/pages/Analytics/Answers/Answers.tsx b/src/pages/Analytics/Answers/Answers.tsx index 005e1da4..3811f6e4 100644 --- a/src/pages/Analytics/Answers/Answers.tsx +++ b/src/pages/Analytics/Answers/Answers.tsx @@ -63,7 +63,7 @@ const Answer = ({ title, percent, highlight }: AnswerProps) => { border: `1px solid ${highlight ? theme.palette.brightPurple.main : theme.palette.grey2.main}`, "& > span": { background: highlight ? "#D9C0F9" : "#9A9AAF1A" }, "&::before": { - content: `"${title}"`, + content: title ? `"${title}"` : `"Без имени"`, position: "absolute", zIndex: 1, left: "20px", @@ -204,17 +204,23 @@ export const Answers: FC = ({ data }) => { const theme = useTheme(); const answers = useMemo( () => - Object.values(data ?? {}) - .map((value) => - Object.entries(value).map(([title, percent]) => ({ - title, - percent, - })), - ) - .flat(), + data === null ? + [] + : + Object.keys(data ?? {}) + .map((key) => + Object.entries(data[key]).map(([title, percent]) => ({ + title, + percent, + key, + })), + ) + .flat(), [data], ); +console.log(answers) +console.log(page) if (!data) { return ( @@ -268,7 +274,7 @@ export const Answers: FC = ({ data }) => { }, }} > - Заголовок вопроса. Варианты ответов + Заголовок вопроса. {answers.slice(ANSWERS_PER_PAGE * (page - 1), ANSWERS_PER_PAGE * page)[0]?.key} diff --git a/src/pages/Analytics/Devices.tsx b/src/pages/Analytics/Devices.tsx index fbb65219..2ad233eb 100644 --- a/src/pages/Analytics/Devices.tsx +++ b/src/pages/Analytics/Devices.tsx @@ -84,7 +84,7 @@ const Device = ({ title, devices }: DeviceProps) => { }, }} > - {id} + {id ? id : "Неопределено"} {value.toFixed(1)} % diff --git a/src/pages/Analytics/General.tsx b/src/pages/Analytics/General.tsx index 8eef900b..abd9cc8a 100644 --- a/src/pages/Analytics/General.tsx +++ b/src/pages/Analytics/General.tsx @@ -9,7 +9,7 @@ type GeneralItemsProps = { title: string; general: Record; color: string; - numberType: "sum" | "percent"; + numberType: "sum" | "percent" | "time"; }; type GeneralProps = { @@ -44,10 +44,15 @@ const GeneralItem = ({ const numberValue = numberType === "sum" ? Object.values(general).reduce((total, item) => total + item, 0) - : Object.entries(general).reduce( - (total, [key, value]) => total + (value / Number(key)) * 100, - 0, - ) / Object.keys(general).length || Number(0); + : 0 + Object.entries(general).reduce( + (total, [key, value]) => total + (value / Number(key)) * 100, + 0, + ) / Object.keys(general).length || Number(0); + + console.log("general" , general) + console.log(Object.keys(general).length === 0) + if (Object.keys(general).length === 0) return {`${title} - нет данных`} return ( moment.unix(v).format("ss/mm/HH")).reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {})} height={220} colors={[color]} sx={{ @@ -119,25 +126,25 @@ export const General: FC = ({ data }) => { v > 0).reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {}) || { 0: 0 }} color={COLORS[0]} /> v > 0).reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {}) || { 0: 0 }} color={COLORS[1]} /> v > 0).reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {}) || { 0: 0 }} color={COLORS[2]} /> v > 0).reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {}) || { 0: 0 }} color={COLORS[3]} />