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]} />