modified: competition/regulations.mdx

master
joker 2 years ago
parent e328e5bc6c
commit b82d0a4902
  1. 2
      competition/regulations.mdx
  2. 137
      components/RegistrationForm copy.tsx
  3. 52
      components/RegistrationForm.tsx
  4. 28
      components/UX/InputPass.tsx
  5. 1
      components/UX/index.ts
  6. 113
      components/UserForm.tsx
  7. 167
      package-lock.json
  8. 1
      package.json
  9. 6
      pages/competition/registration.tsx
  10. 2
      tailwind.config.js
  11. 65
      yarn.lock

@ -80,7 +80,7 @@ image: '/images/robottop.png'
#### Задача
#### Построить робота, который:
* Которые может передвигаться по игровому полигону и разгрузить 8 шариков по 8 колодцам.
* На роботе должно быть место где можно разместить 8 шариков диаметром 20 мм.
* На роботе должно быть место где можно разместить 8 шариков диаметром от 20 до 45 мм.
* Робот должен управляться при помощи пульта управления.
#### Примечание:

@ -0,0 +1,137 @@
import React,{useRef} from 'react';
import { useForm, SubmitHandler, FormProvider } from "react-hook-form";
import { Select, Input, Link_str, SelectNominations } from "./UX";
import Link from 'next/link';
interface IFormInputs {
name_team_coach: string,
coach_telefon_number: string,
nominations: string,
city_team: string,
training_institution_team: string,
team_name: string,
name_first_participant: string,
first_partial_class: number,
name_second_participant: string,
second_class: number,
name_third_party: string,
third_part_class: number,
body?: string[] | number[]
}
const defaultValues = {
name_team_coach: '',
coach_telefon_number: '',
nominations: '0',
city_team: '',
training_institution_team: '',
team_name: '',
name_first_participant: '',
first_partial_class: 0,
name_second_participant: '',
second_class: 0,
name_third_party: 'нет',
third_part_class: 0,
};
export const RegistrationForm = (props): JSX.Element => {
const form = useRef(null);
const methods = useForm({ defaultValues });
const onSubmit: SubmitHandler<IFormInputs> = data => {
fetch('/api/registration', { method: 'POST', body: Object.values(data) as any})
.then((data) => {
props.updateData(data);
})
methods.reset(defaultValues);
}
return (
<>
<div className="mt-10 sm:mt-0">
<div className="md:gap-6">
<div className="md:col-span-1">
<div className="px-4 sm:px-0">
<h3 className="text-lg font-medium leading-6">Регистрация команды</h3>
<p className="mt-1 text-sm">Регистрация команд идет до 22.05.2023</p>
<p className="mt-1 text-sm">Введите актуальные данные команды</p>
<p className="mt-1 text-sm">От каждого учебного заведения может быть зарегистрировано неограниченное количество команд</p>
<p className="mt-1 text-sm"> Подписывайтесь на наш
<Link_str href="https://t.me/robotop_competition"> Telegram канал</Link_str>
, чтобы быть в курсе новостей про соревнование </p>
</div>
</div>
<div className="mt-5 md:mt-0 md:col-span-2">
<FormProvider {...methods} >
<form ref={form} onSubmit={methods.handleSubmit(onSubmit)}>
<div className="shadow overflow-hidden sm:rounded-md">
<div className="px-4 py-5 bg-white sm:p-6">
<div className="grid grid-cols-6 gap-6">
<div className="col-span-6 sm:col-span-3">
<Input placeholder="Иванов Иван Иванович" name="name_team_coach" text="ФИО тренера" additional={""}/>
</div>
<div className="col-span-6 sm:col-span-3">
<Input placeholder="+79181234567" name="coach_telefon_number" text="Контактный телефон тренера" additional={"valueAsNumber: true"} />
</div>
<div className="col-span-6 sm:col-span-3">
<Input placeholder="ivan@mail.ru" name="city_team" text="E-mail тренера" additional={""} />
</div>
<div className="col-span-3">
<Input placeholder="МАОУ СОШ 103" name="training_institution_team" text="Образовательное учреждение" additional={""} />
</div>
<div className="col-span-3">
<Input placeholder="Фиксики" name="team_name" text="Название команды" additional={""} />
</div>
<div className="col-span-6 sm:col-span-3">
<SelectNominations text={'Номинация'} name={'nominations'}/>
</div>
<div className="col-span-6 sm:col-span-3">
<Input placeholder="Иванов Иван Иванович" name="name_first_participant" text="ФИО первого участника" additional={""} />
</div>
<div className="col-span-6 sm:col-span-3">
<Select text={'Класс участника'} name={'first_partial_class'}/>
</div>
<div className="col-span-6 sm:col-span-3">
<Input placeholder="Иванов Петр Иванович" name="name_second_participant" text="ФИО второго участника" additional={""} />
</div>
<div className="col-span-6 sm:col-span-3">
<Select text={'Класс участника'} name={'second_class'}/>
</div>
</div>
</div>
<div className="px-4 py-3 bg-gray-50 text-left sm:px-6">
<label className="form-check-label inline-block text-gray-800" >
Нажимая на кнопку &quot;Зарегистрировать команду&quot;, настоящим участники (их законные представители) и тренер (руководитель) подтверждают свое согласие на обработку персональных данных МАОУ СОШ 103
</label>
<Link href={`/competition_pub/consent_of_the_legal_representative.docx`}>
<a className="buttonMargin inline-block px-2 py-2 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" >Скачать согласие законного представителя </a>
</Link>
</div>
<div className="px-4 py-3 bg-gray-50 text-right sm:px-6">
<button
type="submit"
className="inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
>
Зарегистрировать команду
</button>
</div>
</div>
</form>
</FormProvider>
</div>
</div>
</div>
</>
);
};
export default RegistrationForm;

@ -1,7 +1,6 @@
import React,{useRef} from 'react';
import { useForm, SubmitHandler, FormProvider } from "react-hook-form";
import { Select, Input, Link_str, SelectNominations } from "./UX";
import Link from 'next/link';
import { Input, InputPass } from "./UX";
interface IFormInputs {
name_team_coach: string,
@ -48,81 +47,54 @@ export const RegistrationForm = (props): JSX.Element => {
return (
<>
<div className="mt-10 sm:mt-0">
<div className="md:grid md:grid-cols-3 md:gap-6">
<div className="md:gap-6">
<div className="md:col-span-1">
<div className="px-4 sm:px-0">
<h3 className="text-lg font-medium leading-6">Регистрация команды</h3>
<p className="mt-1 text-sm">Регистрация команд идет до 22.05.2023</p>
<p className="mt-1 text-sm">Введите актуальные данные команды</p>
<p className="mt-1 text-sm">От каждого учебного заведения может быть зарегистрировано неограниченное количество команд</p>
<p className="mt-1 text-sm"> Подписывайтесь на наш
<Link_str href="https://t.me/robotop_competition"> Telegram канал</Link_str>
, чтобы быть в курсе новостей про соревнование </p>
<h3 className="text-lg font-medium leading-6">Регистрация команд</h3>
</div>
</div>
<div className="mt-5 md:mt-0 md:col-span-2">
<FormProvider {...methods} >
<form ref={form} onSubmit={methods.handleSubmit(onSubmit)}>
<div className="shadow overflow-hidden sm:rounded-md">
<h3 className="m-2 text-lg font-medium leading-6"> Для регистрации команд тренеру необходимо зарегистрироваться в системе</h3>
<div className="px-4 py-5 bg-white sm:p-6">
<div className="grid grid-cols-6 gap-6">
<div className="col-span-6 sm:col-span-3">
<Input placeholder="Иванов Иван Иванович" name="name_team_coach" text="ФИО тренера" additional={""}/>
</div>
<div className="col-span-6 sm:col-span-3">
<Input placeholder="+79181234567" name="coach_telefon_number" text="Контактный телефон тренера" additional={"valueAsNumber: true"} />
<Input placeholder="Логин" name="login" text="Логин" additional={""}/>
</div>
<div className="col-span-6 sm:col-span-3">
<Input placeholder="ivan@mail.ru" name="city_team" text="E-mail тренера" additional={""} />
</div>
<div className="col-span-3">
<Input placeholder="МАОУ СОШ 103" name="training_institution_team" text="Образовательное учреждение" additional={""} />
</div>
<div className="col-span-3">
<Input placeholder="Фиксики" name="team_name" text="Название команды" additional={""} />
<InputPass placeholder="Пароль" name="pass" text="Пароль" additional={""} />
</div>
<div className="col-span-6 sm:col-span-3">
<SelectNominations text={'Номинация'} name={'nominations'}/>
<Input placeholder="Иванов Иван Иванович" name="name_team_coach" text="ФИО тренера" additional={""}/>
</div>
<div className="col-span-6 sm:col-span-3">
<Input placeholder="Иванов Иван Иванович" name="name_first_participant" text="ФИО первого участника" additional={""} />
<Input placeholder="+79181234567" name="coach_telefon_number" text="Контактный телефон тренера" additional={"valueAsNumber: true"} />
</div>
<div className="col-span-6 sm:col-span-3">
<Select text={'Класс участника'} name={'first_partial_class'}/>
<Input placeholder="ivan@mail.ru" name="city_team" text="E-mail тренера" additional={""} />
</div>
<div className="col-span-6 sm:col-span-3">
<Input placeholder="Иванов Петр Иванович" name="name_second_participant" text="ФИО второго участника" additional={""} />
<Input placeholder="МАОУ СОШ 103" name="training_institution_team" text="Образовательное учреждение" additional={""} />
</div>
<div className="col-span-6 sm:col-span-3">
<Select text={'Класс участника'} name={'second_class'}/>
</div>
</div>
</div>
<div className="px-4 py-3 bg-gray-50 text-left sm:px-6">
<label className="form-check-label inline-block text-gray-800" >
Нажимая на кнопку &quot;Зарегистрировать команду&quot;, настоящим участники (их законные представители) и тренер (руководитель) подтверждают свое согласие на обработку персональных данных МАОУ СОШ 103
</label>
<Link href={`/competition_pub/consent_of_the_legal_representative.docx`}>
<a className="buttonMargin inline-block px-2 py-2 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" >Скачать согласие законного представителя </a>
</Link>
</div>
<div className="px-4 py-3 bg-gray-50 text-right sm:px-6">
<button
type="submit"
className="inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
>
Зарегистрировать команду
Регистрация
</button>
<p className="mt-1 text-sm">Регистрация открыта до 22.05.2023</p>
</div>
</div>
</form>

@ -0,0 +1,28 @@
import React from 'react';
import { useFormContext } from "react-hook-form";
type Props = {
text: string;
name: string;
placeholder: string;
additional: string;
}
export const InputPass: React.FC<Props> = ({text, name, placeholder, additional}) => {
const { register } = useFormContext();
const options = {required: true, maxLength: 80, additional};
return(
<>
<label htmlFor={name} className="block text-sm font-medium text-gray-700">
{text}
</label>
<input
{...register(name, options )}
name={name}
type="password"
placeholder={placeholder}
className="mt-1 block w-full py-2 px-3 border border-gray-300 bg-white rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm"
/>
</>
)
}

@ -4,3 +4,4 @@ export * from './Input'
export * from './Link'
export * from './SelectNominations'
export * from './Block'
export * from './InputPass'

@ -0,0 +1,113 @@
import React,{useRef} from 'react';
import { useForm, SubmitHandler, FormProvider } from "react-hook-form";
import { Select, Input, Link_str, SelectNominations } from "./UX";
interface IFormInputs {
name_team_coach: string,
coach_telefon_number: string,
nominations: string,
city_team: string,
training_institution_team: string,
team_name: string,
name_first_participant: string,
first_partial_class: number,
name_second_participant: string,
second_class: number,
name_third_party: string,
third_part_class: number,
body?: string[] | number[]
}
const defaultValues = {
name_team_coach: '',
coach_telefon_number: '',
nominations: '0',
city_team: '',
training_institution_team: '',
team_name: '',
name_first_participant: '',
first_partial_class: 0,
name_second_participant: '',
second_class: 0,
name_third_party: 'нет',
third_part_class: 0,
};
export const UserForm = (props): JSX.Element => {
const form = useRef(null);
const methods = useForm({ defaultValues });
const onSubmit: SubmitHandler<IFormInputs> = data => {
fetch('/api/registration', { method: 'POST', body: Object.values(data) as any})
.then((data) => {
props.updateData(data);
})
methods.reset(defaultValues);
}
return (
<>
<div className="mt-10 sm:mt-0">
<p>Личный кабинет</p>
<div className="tabs">
<a className="tab tab-bordered tab-active">Команды</a>
<a className="tab tab-bordered ">Персональные данные</a>
</div>
<div className="md:gap-6">
<div className="mt-5 md:mt-0 md:col-span-2">
<FormProvider {...methods} >
<form ref={form} onSubmit={methods.handleSubmit(onSubmit)}>
<div className="shadow overflow-hidden sm:rounded-md">
<div className="px-4 py-5 bg-white sm:p-6">
<div className="grid grid-cols-6 gap-6">
<div className="col-span-6 sm:col-span-3">
<Input placeholder="Фиксики" name="team_name" text="Название команды" additional={""} />
</div>
<div className="col-span-6 sm:col-span-3">
<SelectNominations text={'Номинация'} name={'nominations'}/>
</div>
<div className="col-span-6 sm:col-span-3">
<Input placeholder="Иванов Иван Иванович" name="name_first_participant" text="ФИО первого участника" additional={""} />
</div>
<div className="col-span-6 sm:col-span-3">
<Select text={'Класс участника'} name={'first_partial_class'}/>
</div>
<div className="col-span-6 sm:col-span-3">
<Input placeholder="Иванов Петр Иванович" name="name_second_participant" text="ФИО второго участника" additional={""} />
</div>
<div className="col-span-6 sm:col-span-3">
<Select text={'Класс участника'} name={'second_class'}/>
</div>
</div>
</div>
<div className="px-4 py-3 bg-gray-50 text-left sm:px-6">
<label className="form-check-label inline-block text-gray-800" >
Нажимая на кнопку &quot;Зарегистрировать команду&quot;, настоящим участники (их законные представители) и тренер (руководитель) подтверждают свое согласие на обработку персональных данных МАОУ СОШ 103
</label>
</div>
<div className="px-4 py-3 bg-gray-50 text-right sm:px-6">
<button
type="submit"
className="inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
>
Зарегистрировать команду
</button>
</div>
</div>
</form>
</FormProvider>
</div>
</div>
</div>
</>
);
};
export default UserForm;

167
package-lock.json generated

@ -16,6 +16,7 @@
"@tailwindcss/typography": "^0.5.2",
"@types/node-fetch": "^2.6.2",
"axios": "^0.27.2",
"daisyui": "^2.51.5",
"date-fns": "^2.28.0",
"gray-matter": "^4.0.3",
"highlight.js": "^11.7.0",
@ -3249,7 +3250,6 @@
"version": "10.4.7",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz",
"integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==",
"dev": true,
"funding": [
{
"type": "opencollective",
@ -4515,6 +4515,18 @@
"node": ">=0.10.0"
}
},
"node_modules/color": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
"dependencies": {
"color-convert": "^2.0.1",
"color-string": "^1.9.0"
},
"engines": {
"node": ">=12.5.0"
}
},
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@ -4528,6 +4540,31 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/color-string": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
"dependencies": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
}
},
"node_modules/color/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/color/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/colorette": {
"version": "2.0.19",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
@ -4810,6 +4847,15 @@
"resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz",
"integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g=="
},
"node_modules/css-selector-tokenizer": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz",
"integrity": "sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==",
"dependencies": {
"cssesc": "^3.0.0",
"fastparse": "^1.1.2"
}
},
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@ -4853,6 +4899,25 @@
"integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==",
"peer": true
},
"node_modules/daisyui": {
"version": "2.51.5",
"resolved": "https://registry.npmjs.org/daisyui/-/daisyui-2.51.5.tgz",
"integrity": "sha512-L05dRw0tasmz2Ha+10LhftEGLq4kaA8vRR/T0wDaXfHwqcgsf81jfXDJ6NlZ63Z7Rl1k3rj7UHs0l0p7CM3aYA==",
"dependencies": {
"color": "^4.2",
"css-selector-tokenizer": "^0.8.0",
"postcss-js": "^4.0.0",
"tailwindcss": "^3"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/daisyui"
},
"peerDependencies": {
"autoprefixer": "^10.0.2",
"postcss": "^8.1.6"
}
},
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
@ -6512,6 +6577,11 @@
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
"node_modules/fastparse": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
"integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ=="
},
"node_modules/fastq": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
@ -6827,7 +6897,6 @@
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
"integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
"dev": true,
"engines": {
"node": "*"
},
@ -14296,7 +14365,6 @@
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
"integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
@ -17242,6 +17310,19 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"node_modules/simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
"dependencies": {
"is-arrayish": "^0.3.1"
}
},
"node_modules/simple-swizzle/node_modules/is-arrayish": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"node_modules/sisteransi": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
@ -22733,7 +22814,6 @@
"version": "10.4.7",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz",
"integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==",
"dev": true,
"requires": {
"browserslist": "^4.20.3",
"caniuse-lite": "^1.0.30001335",
@ -23688,6 +23768,30 @@
"object-visit": "^1.0.0"
}
},
"color": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
"requires": {
"color-convert": "^2.0.1",
"color-string": "^1.9.0"
},
"dependencies": {
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
}
}
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@ -23701,6 +23805,15 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"color-string": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
"requires": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
}
},
"colorette": {
"version": "2.0.19",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
@ -23947,6 +24060,15 @@
"resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz",
"integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g=="
},
"css-selector-tokenizer": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz",
"integrity": "sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==",
"requires": {
"cssesc": "^3.0.0",
"fastparse": "^1.1.2"
}
},
"cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@ -23983,6 +24105,17 @@
"integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==",
"peer": true
},
"daisyui": {
"version": "2.51.5",
"resolved": "https://registry.npmjs.org/daisyui/-/daisyui-2.51.5.tgz",
"integrity": "sha512-L05dRw0tasmz2Ha+10LhftEGLq4kaA8vRR/T0wDaXfHwqcgsf81jfXDJ6NlZ63Z7Rl1k3rj7UHs0l0p7CM3aYA==",
"requires": {
"color": "^4.2",
"css-selector-tokenizer": "^0.8.0",
"postcss-js": "^4.0.0",
"tailwindcss": "^3"
}
},
"damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
@ -25268,6 +25401,11 @@
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
"fastparse": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
"integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ=="
},
"fastq": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
@ -25502,8 +25640,7 @@
"fraction.js": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
"integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
"dev": true
"integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA=="
},
"fragment-cache": {
"version": "0.2.1",
@ -30945,8 +31082,7 @@
"normalize-range": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
"integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
"dev": true
"integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="
},
"normalize-url": {
"version": "4.5.1",
@ -33105,6 +33241,21 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
"requires": {
"is-arrayish": "^0.3.1"
},
"dependencies": {
"is-arrayish": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
}
}
},
"sisteransi": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",

@ -32,6 +32,7 @@
"@tailwindcss/typography": "^0.5.2",
"@types/node-fetch": "^2.6.2",
"axios": "^0.27.2",
"daisyui": "^2.51.5",
"date-fns": "^2.28.0",
"gray-matter": "^4.0.3",
"highlight.js": "^11.7.0",

@ -1,6 +1,7 @@
import React, {useEffect, useState} from 'react';
import Layout from '../../components/Layout';
import RegistrationForm from '../../components/RegistrationForm';
import UserForm from '../../components/UserForm';
import LoadingTeamsForm from '../../components/LoadingTeamsForm';
import { useSelector } from 'react-redux';
import { useAppDispatch } from '../../redux/store';
@ -28,7 +29,10 @@ export const Registration = (): JSX.Element => {
title: 'Регистрация на соревнования',
}}
>
<RegistrationForm updateData={UpdateUser}/>
<UserForm />
{
//<RegistrationForm updateData={UpdateUser}/>
}
<ToastContainer />
<div className="relative overflow-x-auto shadow-md sm:rounded-lg">
<div className="px-4 sm:px-2 m-4 block">

@ -71,5 +71,5 @@ module.exports = {
variants: {
typography: ['dark'],
},
plugins: [require('@tailwindcss/typography')],
plugins: [require("daisyui")],
};

@ -1673,7 +1673,7 @@ atob@^2.1.2:
resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
autoprefixer@^10.4.7:
autoprefixer@^10.0.2, autoprefixer@^10.4.7:
version "10.4.7"
resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz"
integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==
@ -2433,6 +2433,11 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
color-name@^1.0.0, color-name@1.1.3:
version "1.1.3"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
color-name@^1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
@ -2443,10 +2448,21 @@ color-name@~1.1.4:
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
color-string@^1.9.0:
version "1.9.1"
resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
dependencies:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
color@^4.2:
version "4.2.3"
resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz"
integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==
dependencies:
color-convert "^2.0.1"
color-string "^1.9.0"
colorette@^2.0.16, colorette@^2.0.17:
version "2.0.19"
@ -2676,6 +2692,14 @@ css-selector-parser@^1.4.1:
resolved "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz"
integrity sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==
css-selector-tokenizer@^0.8.0:
version "0.8.0"
resolved "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz"
integrity sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==
dependencies:
cssesc "^3.0.0"
fastparse "^1.1.2"
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
@ -2708,6 +2732,16 @@ cyclist@^1.0.1:
resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz"
integrity sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==
daisyui@^2.51.5:
version "2.51.5"
resolved "https://registry.npmjs.org/daisyui/-/daisyui-2.51.5.tgz"
integrity sha512-L05dRw0tasmz2Ha+10LhftEGLq4kaA8vRR/T0wDaXfHwqcgsf81jfXDJ6NlZ63Z7Rl1k3rj7UHs0l0p7CM3aYA==
dependencies:
color "^4.2"
css-selector-tokenizer "^0.8.0"
postcss-js "^4.0.0"
tailwindcss "^3"
damerau-levenshtein@^1.0.8:
version "1.0.8"
resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz"
@ -3612,6 +3646,11 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
fastparse@^1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz"
integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
fastq@^1.6.0:
version "1.13.0"
resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz"
@ -4674,6 +4713,11 @@ is-arrayish@^0.2.1:
resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
is-arrayish@^0.3.1:
version "0.3.2"
resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
is-bigint@^1.0.1:
version "1.0.4"
resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz"
@ -7548,7 +7592,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.3.3, postcss@^8.4.14, postcss@>=8.0.9:
postcss@^8.0.0, postcss@^8.1.0, postcss@^8.1.6, postcss@^8.2.14, postcss@^8.3.3, postcss@^8.4.14, postcss@>=8.0.9:
version "8.4.14"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz"
integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
@ -8619,6 +8663,13 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
simple-swizzle@^0.2.2:
version "0.2.2"
resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"
integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
dependencies:
is-arrayish "^0.3.1"
sisteransi@^1.0.5:
version "1.0.5"
resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz"
@ -9135,7 +9186,7 @@ symbol-tree@^3.2.4:
resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
tailwindcss@^3.1.4, "tailwindcss@>=3.0.0 || >= 3.0.0-alpha.1 || insiders":
tailwindcss@^3, tailwindcss@^3.1.4, "tailwindcss@>=3.0.0 || >= 3.0.0-alpha.1 || insiders":
version "3.1.4"
resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.4.tgz"
integrity sha512-NrxbFV4tYsga/hpWbRyUfIaBrNMXDxx5BsHgBS4v5tlyjf+sDsgBg5m9OxjrXIqAS/uR9kicxLKP+bEHI7BSeQ==

Loading…
Cancel
Save