diff --git a/package-lock.json b/package-lock.json index 8e848cd..7efb0f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1272,8 +1272,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "atob": { "version": "2.1.2", @@ -1281,6 +1280,27 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, "babel-jest": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", @@ -1518,7 +1538,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -1659,8 +1678,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, "detect-newline": { "version": "3.1.0", @@ -1848,6 +1866,11 @@ "path-exists": "^4.0.0" } }, + "follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" + }, "form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -3027,14 +3050,12 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "requires": { "mime-db": "1.52.0" } @@ -3393,6 +3414,11 @@ "react-is": "^17.0.2" } }, + "react-use-array": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/react-use-array/-/react-use-array-1.0.5.tgz", + "integrity": "sha512-96wRG+nI7qiGbX9Q8Au/jjY4abi8AeZeYzwtLvrbeSvOP4QzR9IboEUdZNeiEGinGkfVobYeTEIEh/H0My4olg==" + }, "redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", diff --git a/package.json b/package.json index 9a9be6c..b66a2b5 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,12 @@ }, "dependencies": { "@reduxjs/toolkit": "^1.3.6", + "axios": "^0.27.2", "next": "latest", "react": "^18.1.0", "react-dom": "^18.1.0", - "react-redux": "^7.2.0" + "react-redux": "^7.2.0", + "react-use-array": "^1.0.5" }, "devDependencies": { "@testing-library/jest-dom": "^5.0.0", diff --git a/src/app/store.ts b/src/app/store.ts index 4da0af8..9dd96e9 100644 --- a/src/app/store.ts +++ b/src/app/store.ts @@ -1,14 +1,11 @@ import { configureStore, ThunkAction, Action } from '@reduxjs/toolkit' +import onBoardingSlice from './user/onBoardingSlice' -let counterReducer = null +export const store = configureStore({ + reducer:onBoardingSlice +}) -export function makeStore() { - return configureStore({ - reducer: { counter: counterReducer }, - }) -} -const store = makeStore() export type AppState = ReturnType diff --git a/src/app/user/onBoardingSlice.ts b/src/app/user/onBoardingSlice.ts new file mode 100644 index 0000000..52fb167 --- /dev/null +++ b/src/app/user/onBoardingSlice.ts @@ -0,0 +1,123 @@ +import { createSlice, PayloadAction, createSelector } from '@reduxjs/toolkit' +import { AppState } from '../store' + + +export interface whyPageIE{ + whatIwantKnown: string + whatIwantLearn: string + whatIwantGet: string +} + +export interface superPowerPageIE{ + communication: number + generateIdeas: number + coordination: number + creative: number + searchResources: number + achivment: number + criticalThinking: number + leaders: number +} + +export interface drawDreamPageIE{ + images: FileList +} + +export interface whoIPageIE{ + introvert: boolean + individualist: boolean + optimist: boolean + serious: boolean + organize: boolean + leader: boolean +} + +export interface whatILikePageIE{ + things: string[] +} + + +export interface boardingFormIE{ + pages:[ + whyPageIE, + superPowerPageIE, + drawDreamPageIE, + whoIPageIE, + whatILikePageIE + ] +} + +let initialList = { + pages:[ + { + whatIwantGet:"", + whatIwantKnown:"", + whatIwantLearn:"", + } as whyPageIE, + { + communication: 0, + coordination: 0, + creative: 0, + criticalThinking:0, + generateIdeas:0, + searchResources:0, + achivment:0, + leaders:0, + } as superPowerPageIE, + { + images:null + } as drawDreamPageIE, + { + individualist: null, + introvert:null, + optimist:null, + organize:null, + serious:null, + leader:null + } as whoIPageIE, + { + things: [] + } as whatILikePageIE + ] +} + + +const onBoardingSlice = createSlice( + { + name:"onBoardingSlice", + initialState: initialList, + reducers:{ + setWhyPage(state, action: PayloadAction){ + state.pages[0] = action.payload + }, + setSuperPowerPage(state, action: PayloadAction){ + state.pages[1] = action.payload + }, + setDrawDreamPage(state, action: PayloadAction){ + state.pages[2] = action.payload + }, + setWhoIPage(state, action: PayloadAction){ + state.pages[3] = action.payload + }, + setWhatILikePage(state, action: PayloadAction){ + state.pages[4] = action.payload + } + } + } +) + + +export const getFormState = createSelector( + (state:AppState) => state.pages, + (field)=>field +) + +export const { + setWhyPage, + setSuperPowerPage, + setDrawDreamPage, + setWhoIPage, + setWhatILikePage +} = onBoardingSlice.actions + +export default onBoardingSlice.reducer \ No newline at end of file diff --git a/src/components/Input/index.tsx b/src/components/Input/index.tsx index e74a000..1dd204c 100644 --- a/src/components/Input/index.tsx +++ b/src/components/Input/index.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useState } from "react"; import styles from "./inp.module.css" interface InputIE{ @@ -6,14 +6,23 @@ interface InputIE{ type?: string onChange:(value:string)=>void class?:string + value?:string } export const Input:React.FC = (props) =>{ + const [value, setValue] = useState(props.value == undefined? null: props.value) + + const onChange = (value:string) =>{ + setValue(value) + props.onChange(value) + } return( props.onChange(e.target.value)} + onChange={(e)=>onChange(e.target.value)} className={styles.inp + " " + props.class} > ) diff --git a/src/components/WhoIToggle/index.tsx b/src/components/WhoIToggle/index.tsx new file mode 100644 index 0000000..0818ab6 --- /dev/null +++ b/src/components/WhoIToggle/index.tsx @@ -0,0 +1,26 @@ +import React from "react"; +import styles from "./toggle.module.css" + +interface toggleIE{ + active: boolean + firstValue: string + secondValue:string + onChange: (value: boolean) => void +} + +export const WhoIToggle:React.FC = (props) =>{ + return( +
+
props.onChange(true)} + className={styles.value + " " + (props.active == true? styles.active:null)} + >{props.firstValue}
+ +
props.onChange(false)} + className={styles.value + " " + ( props.active == false? styles.active:null)} + >{props.secondValue}
+ +
+ ) +} \ No newline at end of file diff --git a/src/components/WhoIToggle/toggle.module.css b/src/components/WhoIToggle/toggle.module.css new file mode 100644 index 0000000..904a3ac --- /dev/null +++ b/src/components/WhoIToggle/toggle.module.css @@ -0,0 +1,16 @@ +.wrapper{ + display: flex; + flex-direction: row; + gap:10px; + align-items: center; + justify-content: center; +} + +.value{ + cursor: pointer; + background-color: aqua; +} + +.active{ + background-color: azure !important; +} \ No newline at end of file diff --git a/src/components/selectSuperPower/index.tsx b/src/components/selectSuperPower/index.tsx new file mode 100644 index 0000000..8fdb978 --- /dev/null +++ b/src/components/selectSuperPower/index.tsx @@ -0,0 +1,18 @@ +import React, { useState } from "react"; +import styles from "./SelectSuperPower.module.css" + +export const SelectSuperPower: React.FC<{active:Number, onChange: (value:number)=>void}> = (props) =>{ + let selectors = [] + + for (let i=1; i<7; i++){ + let a =
props.onChange(i)} className={styles.selectSuperPower + " " + (props.active == i? styles.active: null)}>
+ selectors.push(a) + } + + + return( +
+ {selectors} +
+ ) +} \ No newline at end of file diff --git a/src/components/selectSuperPower/selectSuperPower.module.css b/src/components/selectSuperPower/selectSuperPower.module.css new file mode 100644 index 0000000..985a46c --- /dev/null +++ b/src/components/selectSuperPower/selectSuperPower.module.css @@ -0,0 +1,16 @@ +.selectSuperPower{ + height: 32px; + width: 32px; + background: #000; + cursor: pointer; +} +.active{ + background-color: green !important; +} + +.selectWrapper{ + display: flex; + flex-direction: row; + gap:5px; + +} \ No newline at end of file diff --git a/src/pages/registration/index.tsx b/src/pages/registration/index.tsx index 4eee36c..9d994c3 100644 --- a/src/pages/registration/index.tsx +++ b/src/pages/registration/index.tsx @@ -1 +1,14 @@ -import React from "react"; \ No newline at end of file +import { NextPage } from "next"; +import Link from "next/link"; +import React, {useState} from "react"; +import { useDispatch, useSelector } from "react-redux"; + +const RegistrPage: NextPage = () => { + return( +
+ registration +
+ ) +} + +export default RegistrPage diff --git a/src/pages/registration/onBoarding/1.tsx b/src/pages/registration/onBoarding/1.tsx new file mode 100644 index 0000000..0f86a11 --- /dev/null +++ b/src/pages/registration/onBoarding/1.tsx @@ -0,0 +1,46 @@ +import { NextPage } from "next"; +import Link from "next/link"; +import React, {useState} from "react"; +import { Input } from "../../../components/Input"; +import { useDispatch, useSelector } from "react-redux"; +import { getFormState, setWhyPage, whyPageIE } from "../../../app/user/onBoardingSlice"; +import { AppState } from '../../../app/store' + +const OnBoardingPage1: NextPage = () => { + let initState = useSelector((state: AppState)=>getFormState(state))[0] as whyPageIE + + + const [whatIwantGet, setWhatIwantGet] = useState(initState.whatIwantGet) + const [whatIwantKnown, setWhatIwantKnown] = useState(initState.whatIwantKnown) + const [whatIwantLearn, setWhatIwantLearn] = useState(initState.whatIwantLearn) + let dispatch = useDispatch() + + let WhyPageState = { + whatIwantGet:whatIwantGet, + whatIwantKnown:whatIwantKnown, + whatIwantLearn:whatIwantLearn + } as whyPageIE + + return( +
+
Прежде чем что-то сделать, спроси себя "Зачем?"
+
+
Я хочу узнать:
+ setWhatIwantKnown(value)}> +
+
+
Я хочу получить:
+ setWhatIwantGet(value)}> +
+
+
Я хочу научится:
+ setWhatIwantLearn(value)}> +
+
dispatch(setWhyPage(WhyPageState))}> + Назад + Вперед +
+
+ ) +} +export default OnBoardingPage1 diff --git a/src/pages/registration/onBoarding/2.tsx b/src/pages/registration/onBoarding/2.tsx new file mode 100644 index 0000000..c26bfc3 --- /dev/null +++ b/src/pages/registration/onBoarding/2.tsx @@ -0,0 +1,79 @@ +import { NextPage } from "next"; +import Link from "next/link"; +import React, {useState} from "react"; +import { Input } from "../../../components/Input"; +import { useDispatch, useSelector } from "react-redux"; +import { getFormState, setSuperPowerPage, superPowerPageIE } from "../../../app/user/onBoardingSlice"; +import { AppState } from '../../../app/store' +import { SelectSuperPower } from "../../../components/selectSuperPower"; + +const OnBoardingPage2: NextPage = () => { + let initState = useSelector((state: AppState)=>getFormState(state))[1] as superPowerPageIE + const [communication, setCommunication] = useState(initState.communication) + const [coordination, setCoordination] = useState(initState.coordination) + const [creative, setCreative] = useState(initState.creative) + const [criticalThinking, setCriticalThinking] = useState(initState.criticalThinking) + const [generateIdeas, setGenerateIdeas] = useState(initState.generateIdeas) + const [searchResources, setSearchResources] = useState(initState.searchResources) + const [achivment, setAchivment] = useState(initState.achivment) + const [leaders, setLeaders] = useState(initState.leaders) + + let SuperPowerPageState = { + communication: communication, + coordination: coordination, + creative: creative, + criticalThinking:criticalThinking, + generateIdeas:generateIdeas, + searchResources:searchResources, + achivment:achivment, + leaders:leaders, + } as superPowerPageIE + + let dispatch = useDispatch() + + return( +
+
Какая у тебя суперсила?
+
+
+
Коммуникация и сотрудничество
+ setCommunication(value)}> +
+
+
Генерация идей
+ setGenerateIdeas(value)}> +
+
+
Организация и координация
+ setCoordination(value)}> +
+
+
Творчество, создание нового
+ setCreative(value)}> +
+
+
Поиск ресурсов
+ setSearchResources(value)}> +
+
+
Достижение и преодаление
+ setAchivment(value)}> +
+
+
Критическое мышление
+ setCriticalThinking(value)}> +
+
+
Лидерство, умение вести за собой
+ setLeaders(value)}> +
+
dispatch(setSuperPowerPage(SuperPowerPageState))}> + Назад + Вперед +
+
+
+ ) +} + +export default OnBoardingPage2 diff --git a/src/pages/registration/onBoarding/3.tsx b/src/pages/registration/onBoarding/3.tsx new file mode 100644 index 0000000..558d6e5 --- /dev/null +++ b/src/pages/registration/onBoarding/3.tsx @@ -0,0 +1,36 @@ +import { NextPage } from "next"; +import Link from "next/link"; +import React, {useState} from "react"; +import { useDispatch, useSelector } from "react-redux"; +import { getFormState, setDrawDreamPage, drawDreamPageIE } from "../../../app/user/onBoardingSlice"; +import { AppState } from '../../../app/store' + +const OnBoardingPage3: NextPage = () => { + let initState = useSelector((state: AppState)=>getFormState(state))[2] as drawDreamPageIE + + const [files, setFiles] = useState(initState.images) + let dispatch = useDispatch() + + return( +
+
Нарисуй свои ассоциации со словом "мечта", подпиши каждый рисунок и приложи их ниже
+
+
Загрузить рисунки
+
+ setFiles(e.target.files)} + type="file" + multiple={true} + /> +
+
+
dispatch(setDrawDreamPage({images:files}))}> + Назад + Вперед +
+
+ ) + +} + +export default OnBoardingPage3 \ No newline at end of file diff --git a/src/pages/registration/onBoarding/4.tsx b/src/pages/registration/onBoarding/4.tsx new file mode 100644 index 0000000..59215cd --- /dev/null +++ b/src/pages/registration/onBoarding/4.tsx @@ -0,0 +1,80 @@ +import { NextPage } from "next"; +import Link from "next/link"; +import React, {useState} from "react"; +import { useDispatch, useSelector } from "react-redux"; +import { getFormState, setWhoIPage, whoIPageIE } from "../../../app/user/onBoardingSlice"; +import { AppState } from '../../../app/store' +import { WhoIToggle } from "../../../components/WhoIToggle"; + +const OnBoardingPage4: NextPage = () => { + let initState = useSelector((state: AppState)=>getFormState(state))[3] as whoIPageIE + + const [introvert, setInrovert] = useState(initState.introvert) + const [individualist, setIndividualist] = useState(initState.introvert) + const [optimist, setOptimist] = useState(initState.introvert) + const [organize, setOrganize] = useState(initState.introvert) + const [serious, setSerious] = useState(initState.introvert) + const [leader, setLeader] = useState(initState.introvert) + + let state = { + individualist:individualist, + introvert:introvert, + optimist:optimist, + organize:organize, + serious:serious, + leader:leader + }as whoIPageIE + + + let dispatch = useDispatch() + return( +
+
Какой я?
+
выбери одно из двух
+
+ setInrovert(value)} + firstValue="Интроверт" + secondValue="Экстроверт" + > + setIndividualist(value)} + firstValue="Индивидуалист" + secondValue="Командный игрок" + > + setOptimist(value)} + firstValue="Оптимист" + secondValue="Пессимист" + > + setSerious(value)} + firstValue="Серьезный" + secondValue="Легкомысленный" + > + setOrganize(value)} + firstValue="Организованный" + secondValue="Творческий" + > + setLeader(value)} + firstValue="Лидер" + secondValue="Исполнитель" + > + +
+
dispatch(setWhoIPage(state))}> + Назад + Вперед +
+
+ ) +} +export default OnBoardingPage4 \ No newline at end of file diff --git a/src/pages/registration/onBoarding/5.tsx b/src/pages/registration/onBoarding/5.tsx new file mode 100644 index 0000000..b0a3bd9 --- /dev/null +++ b/src/pages/registration/onBoarding/5.tsx @@ -0,0 +1,57 @@ +import { NextPage } from "next"; +import Link from "next/link"; +import React, {useState} from "react"; +import { useDispatch, useSelector } from "react-redux"; +import { getFormState, setWhatILikePage, whatILikePageIE } from "../../../app/user/onBoardingSlice"; +import { AppState } from '../../../app/store' +import { Input } from "../../../components/Input"; +import styles from "../../../styles/onBoarding/onBoarding.module.css" +import useArray from 'react-use-array' + +const OnBoardingPage5: NextPage = () => { + let initState = useSelector((state: AppState)=>getFormState(state))[4] as whatILikePageIE + let dispatch = useDispatch() + const [ list, { + set, empty, replace, push, + updateAt, setAt, removeAt, + filter, map, sort, reverse, + mergeBefore, mergeAfter, + }] = useArray(initState.things); + + let inputs = [] + + const onInpChange = (number:number, value:string) =>{ + setAt(number, value ) + } + + for (let i=0; i<10; i++){ + let inp = onInpChange(i, value)} + > + + inputs.push(inp) + } + + return( +
+
+ Как понять, что мне нравится?

+ Выбирать, пробовать и снова Выбирать! +
+
+ 10 вещей, которые я хотел бы сделать,

+ но почему-то до сих пор не сделал: +
+
+ {inputs} +
+
dispatch(setWhatILikePage({things:list}))}> + Назад + Вперед +
+
+ ) +} +export default OnBoardingPage5 \ No newline at end of file diff --git a/src/pages/registration/onBoarding/index.tsx b/src/pages/registration/onBoarding/index.tsx new file mode 100644 index 0000000..d041394 --- /dev/null +++ b/src/pages/registration/onBoarding/index.tsx @@ -0,0 +1,16 @@ +import { NextPage } from "next"; +import Link from "next/link"; +import React from "react"; +import { Button } from "../../../components/Button"; + +const OnBoardingPage: NextPage = () => { + return( +
+
Сформмируй профиль
+ Дальше +
+ ) +} + + +export default OnBoardingPage diff --git a/src/pages/registration/onBoarding/lastPage.tsx b/src/pages/registration/onBoarding/lastPage.tsx new file mode 100644 index 0000000..045ecc7 --- /dev/null +++ b/src/pages/registration/onBoarding/lastPage.tsx @@ -0,0 +1,83 @@ +import { NextPage } from "next"; +import Link from "next/link"; +import React, {useState} from "react"; +import { useDispatch, useSelector } from "react-redux"; +import { getFormState, setWhatILikePage, superPowerPageIE, whatILikePageIE, whoIPageIE, whyPageIE } from "../../../app/user/onBoardingSlice"; +import { AppState } from '../../../app/store' +import { Input } from "../../../components/Input"; +import styles from "../../../styles/onBoarding/onBoarding.module.css" +import useArray from 'react-use-array' + +const lastPage: NextPage = () => { + let formState = useSelector((state: AppState)=>getFormState(state)) + let you = formState[3] as whoIPageIE + let why = formState[0] as whyPageIE + let things = formState[4] as whatILikePageIE + let BadSkills = ["Надо всегда совершенствовать свои навыки, не забывай про это"] + let superPowers = formState[1] as superPowerPageIE + if (superPowers.communication <= 3 && superPowers.communication > 0){ + BadSkills.push("Усовершенствуй навыки коммуникации, больше разговаривай с людьми, заведи новых друзей, помни - знакомства это всегда классно.") + } + if (superPowers.creative <= 3 && superPowers.creative > 0){ + BadSkills.push("Мы советуем не забывать также про книжки, ведь они классно развивают воображение и заставляют креативить.") + } + if (superPowers.coordination <= 3 && superPowers.communication > 0){ + BadSkills.push("Помни, что организованность это важно. Начинать надо с себя, поставь к примеру себе как цель заправлять каждый день постель и содержать комнату в порядке.") + } + if (superPowers.generateIdeas <= 3 && superPowers.generateIdeas > 0){ + BadSkills.push("Мозговой шторм - неплохой способ развивать способность генерировать, поиграй с друзьями в настольные игры ТРИЗ и прокачайся еще больше") + } + if (superPowers.searchResources <= 3 && superPowers.searchResources > 0){ + BadSkills.push("Поисковые системы, такие как яндекс - твой лучший друг на все времена. Научись составлять свои запросы в совершенстве и заметишь как большое количество проблем исчезнут из твоей жизни") + } + if (superPowers.leaders <= 3 && superPowers.leaders > 0){ + BadSkills.push("Лидерские качества сейчас нужны всем! Советуем их разивать, для этого отлично подходят встречи с вдохновителями.") + } + + return( +
+
Спасибо что заполнили форму!
+
+ Вы прошли главный и один из самых главных шагов к успеху, + этот небольшой самоанализ поможет вам сформировать первые цели. +
+
+
Мы подготовили для тебя пару полезных советов:
+
    + { + BadSkills.map((skill)=>
  • {skill}
  • ) + } +
+
+
+
Мы рады что ты движешься в нужном направлении и уже определился со многими факторами
+
{why.whatIwantGet == ""? null:("Ты хочешь получить: " + why.whatIwantGet)}
+
{why.whatIwantKnown == ""? null:("Ты хочешь узнать: " + why.whatIwantGet)}
+
{why.whatIwantLearn == ""? null:("Ты хочешь научится: " + why.whatIwantGet)}
+
+
+
Ты очень классный, ведь у тебя есть все качества, чтобы достичь твоих целей и исполнить все твои мечты.
+
{you.individualist == null? null: + ("Ведь ты:" + you.individualist? "индивидуалист":"командный игрок" + ", " + + you.introvert? "интроверт":"экстроверт" + ", " + + you.leader? "лидер": "исполнитель" + ", " + + you.optimist? "оптимист": "пессимист" + ", " + + you.organize? "организованный":"творческий" + ", " + + you.serious? "серьезный":"легкомысленный" + ", " + )}
+
Надо держать грань между всеми качествами, нельзя быть во всех ситуациях серьезным, также как и нельзя быть всегда легкомысленным, надо все делать в меру.
+
+
Незабывай про вещи, что ты обещал нам сделать:
+
    + { + things.things.length>0? things.things.map((value)=>
  • {value}
  • ):null + } +
+
+
+
Мы уверены, все твои цели и мечты сбудуться, если следовать четкому плану
+ Далее +
+ ) +} +export default lastPage \ No newline at end of file diff --git a/src/styles/globals.css b/src/styles/globals.css index 05e6c65..7b10c79 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -5,6 +5,7 @@ body { font-family: 'Jost', sans-serif; font-size: 14px; background-color: #14171b; + color: aliceblue; } a { diff --git a/src/styles/onBoarding/onBoarding.module.css b/src/styles/onBoarding/onBoarding.module.css new file mode 100644 index 0000000..e69de29