Merge pull request #1 from bvn13/feature/add-results

Feature/add results
This commit is contained in:
Vyacheslav N. Boyko 2024-02-17 00:00:16 +03:00 committed by GitHub
commit 7c3749cf47
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 43 additions and 17 deletions

File diff suppressed because one or more lines are too long

View File

@ -291,5 +291,6 @@
} }
] ]
} }
] ],
"resultsInfo": "<h1>Оценка результатов</h1><p><strong>личная сфера</strong> — если результат ≤ 8, то это говорит о:</p><ul type=\"square\"><li>усталость</li><li>выгорание</li><li>депрессия</li></ul><p><strong>социальная сфера</strong> — если результат ≤ 8, то это говорит о:</p><ul type=\"square\"><li>отсутствие поддержки от близких</li><li>узкий круг общения (замкнутость)</li></ul><p><strong>корпоративная сфера</strong> — если результат ≤ 8, то это говорит о:</p><ul type=\"square\"><li>тревога, неуверенность в завтрашнем дне</li><li>тяжелые жизненные обстоятельства</li><li>необходимость в профессиональном развитии</li></ul>"
} }

View File

@ -489,5 +489,6 @@
} }
] ]
} }
] ],
"resultsInfo": "<h1>Оценка результатов</h1>В зависимости от того, сколько баллов вы набрали, можно предположить следующее.<br/><br/>013 — депрессивных симптомов нет. С вашим психическим здоровьем всё в порядке.<br/>1419 — вероятна лёгкая депрессия (субдепрессия).<br/>2028 — умеренная депрессия.<br/>2963 — тяжёлая депрессия. Состояние тем сложнее, чем больше количество баллов."
} }

View File

@ -17,5 +17,6 @@
} }
] ]
} }
] ],
"resultsInfo": ""
} }

View File

@ -17,5 +17,6 @@
} }
] ]
} }
] ],
"resultsInfo": null
} }

View File

@ -25,7 +25,7 @@
"@emotion/styled": "^11.10.5", "@emotion/styled": "^11.10.5",
"@emotion/core": "^11.0.0", "@emotion/core": "^11.0.0",
"@emotion/react": "^11.10.5", "@emotion/react": "^11.10.5",
"lodash": "^4.17.21" "lodash-es": "^4.17.21"
}, },
"scripts": { "scripts": {
"start": "react-scripts start", "start": "react-scripts start",
@ -48,6 +48,7 @@
"@types/react": "^18.2.0", "@types/react": "^18.2.0",
"@types/react-dom": "^18.2.1", "@types/react-dom": "^18.2.1",
"@types/react-redux": "^7.1.25", "@types/react-redux": "^7.1.25",
"@types/lodash-es": "^4.17.12",
"typescript": "^4.9.5" "typescript": "^4.9.5"
}, },
"homepage": ".", "homepage": ".",

View File

@ -291,5 +291,6 @@
} }
] ]
} }
] ],
"resultsInfo": "<h1>Оценка результатов</h1><p><strong>личная сфера</strong> — если результат ≤ 8, то это говорит о:</p><ul type=\"square\"><li>усталость</li><li>выгорание</li><li>депрессия</li></ul><p><strong>социальная сфера</strong> — если результат ≤ 8, то это говорит о:</p><ul type=\"square\"><li>отсутствие поддержки от близких</li><li>узкий круг общения (замкнутость)</li></ul><p><strong>корпоративная сфера</strong> — если результат ≤ 8, то это говорит о:</p><ul type=\"square\"><li>тревога, неуверенность в завтрашнем дне</li><li>тяжелые жизненные обстоятельства</li><li>необходимость в профессиональном развитии</li></ul>"
} }

View File

@ -489,5 +489,6 @@
} }
] ]
} }
] ],
"resultsInfo": "<h1>Оценка результатов</h1>В зависимости от того, сколько баллов вы набрали, можно предположить следующее.<br/><br/>013 — депрессивных симптомов нет. С вашим психическим здоровьем всё в порядке.<br/>1419 — вероятна лёгкая депрессия (субдепрессия).<br/>2028 — умеренная депрессия.<br/>2963 — тяжёлая депрессия. Состояние тем сложнее, чем больше количество баллов."
} }

View File

@ -17,5 +17,6 @@
} }
] ]
} }
] ],
"resultsInfo": ""
} }

View File

@ -20,7 +20,8 @@ export interface SurveyDto {
title: string, title: string,
intro: string, intro: string,
settings: SettingsDto, settings: SettingsDto,
questions: QuestionDto[] questions: QuestionDto[],
resultsInfo: string
} }
const Api = { const Api = {

View File

@ -6,6 +6,7 @@ import {Box, Button, Paper, Step, StepContent, StepLabel, Stepper, Typography} f
import {store} from "../../store/store"; import {store} from "../../store/store";
import {addAnswer, setContents} from "../../store/actions/data"; import {addAnswer, setContents} from "../../store/actions/data";
import {ResultByGroup} from "../../store/initialState"; import {ResultByGroup} from "../../store/initialState";
import If from "../utils/If";
interface Props { interface Props {
survey: SurveyDto | undefined survey: SurveyDto | undefined
@ -61,7 +62,8 @@ const Survey: React.FC<Props> = ({survey}) => {
question: q.question, question: q.question,
options: randomizeIfNeeded(survey.settings.randomizeOptions, q.options) options: randomizeIfNeeded(survey.settings.randomizeOptions, q.options)
} }
}) }),
resultsInfo: survey.resultsInfo
}) })
} }
}, [survey]) }, [survey])
@ -140,6 +142,7 @@ const Survey: React.FC<Props> = ({survey}) => {
)} )}
</ul> </ul>
</div> </div>
<div dangerouslySetInnerHTML={{__html: prepare(preparedSurvey?.resultsInfo)}}></div>
<Button onClick={handleReset} sx={{mt: 1, mr: 1}}> <Button onClick={handleReset} sx={{mt: 1, mr: 1}}>
Reset Reset
</Button> </Button>

View File

@ -1,5 +1,4 @@
import React, {useEffect} from 'react' import React, {useEffect} from 'react'
import DateDisplay from '../components/DateDisplay'
import {SnackbarOrigin, useSnackbar} from 'notistack'; import {SnackbarOrigin, useSnackbar} from 'notistack';
import Api, {SurveyDto} from "./../api/Api"; import Api, {SurveyDto} from "./../api/Api";
import Survey from "./../components/survey/Survey"; import Survey from "./../components/survey/Survey";

View File

@ -1,10 +1,10 @@
import { createReducer } from '@reduxjs/toolkit' import { createReducer } from '@reduxjs/toolkit'
import {addAnswer, setContents} from '../actions/data' import {addAnswer, setContents} from '../actions/data'
import initialState, {StoreContent, ResultByGroup} from "../initialState"; import initialState, {StoreContent, ResultByGroup} from "../initialState";
import * as _ from "lodash"; import * as _ from "lodash-es";
const reduceState = (array: ResultByGroup[], addon: ResultByGroup) => { const reduceState = (array: ResultByGroup[], addon: ResultByGroup) => {
var added = false; let added = false;
array.forEach((result) => { array.forEach((result) => {
if (result.group === addon.group) { if (result.group === addon.group) {
added = true added = true

View File

@ -1,8 +1,6 @@
import { render, screen } from '@testing-library/react' import { render, screen } from '@testing-library/react'
import DateDisplay from '../../components/DateDisplay'
test('renders current date', () => { test('renders current date', () => {
render(<DateDisplay />)
const timeFormat = screen.getByText(/GMT/i) const timeFormat = screen.getByText(/GMT/i)
expect(timeFormat).toBeInTheDocument() expect(timeFormat).toBeInTheDocument()
}) })

View File

@ -2242,6 +2242,18 @@
resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
"@types/lodash-es@^4.17.12":
version "4.17.12"
resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b"
integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==
dependencies:
"@types/lodash" "*"
"@types/lodash@*":
version "4.14.202"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8"
integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==
"@types/mime@*": "@types/mime@*":
version "3.0.1" version "3.0.1"
resolved "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz" resolved "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz"
@ -6560,6 +6572,11 @@ locate-path@^6.0.0:
dependencies: dependencies:
p-locate "^5.0.0" p-locate "^5.0.0"
lodash-es@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
lodash.debounce@^4.0.8: lodash.debounce@^4.0.8:
version "4.0.8" version "4.0.8"
resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz"