diff --git a/components/LoadingTeamsForm.tsx b/components/LoadingTeamsForm.tsx index f1f5bdc..17b87af 100644 --- a/components/LoadingTeamsForm.tsx +++ b/components/LoadingTeamsForm.tsx @@ -7,6 +7,7 @@ type UserProps = { name_first_participant: string; name_second_participant: string; name_third_party: string; + nominations: string; classTeam: string[]; }; @@ -17,6 +18,7 @@ export const LoadingTeamsForm : React.FC = ({ name_first_participant, name_second_participant, name_third_party, + nominations, classTeam }) => { @@ -45,6 +47,10 @@ export const LoadingTeamsForm : React.FC = ({ { flatten(classTeam)} + + { nominations} + + ); }; diff --git a/components/RegistrationForm.tsx b/components/RegistrationForm.tsx index d8c0ec6..322a71d 100644 --- a/components/RegistrationForm.tsx +++ b/components/RegistrationForm.tsx @@ -1,11 +1,11 @@ import React,{useRef} from 'react'; import { useForm, SubmitHandler, FormProvider } from "react-hook-form"; -import { Select, Input, Link } from "./UX"; +import { Select, Input, Link, SelectNominations } from "./UX"; interface IFormInputs { name_team_coach: string, coach_telefon_number: string, - email_address: string, + nominations: string, city_team: string, training_institution_team: string, team_name: string, @@ -21,7 +21,7 @@ interface IFormInputs { const defaultValues = { name_team_coach: ``, coach_telefon_number: ``, - email_address: '', + nominations: 0, city_team: '', training_institution_team: '', team_name: '', @@ -73,10 +73,6 @@ export const RegistrationForm = (props): JSX.Element => { -
- ()[]\\.,;:s@"]+(.[^<>()[]\\.,;:s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/ })`} /> -
-
@@ -89,6 +85,10 @@ export const RegistrationForm = (props): JSX.Element => { +
+ +
+
diff --git a/components/UX/SelectNominations.tsx b/components/UX/SelectNominations.tsx new file mode 100644 index 0000000..be890a5 --- /dev/null +++ b/components/UX/SelectNominations.tsx @@ -0,0 +1,31 @@ +import React from 'react'; +//import { useFormContext } from "react-hook-form"; +import { useFormContext } from "react-hook-form"; + +type Props = { + text: string; + name: string; + children?: JSX.Element[] | JSX.Element; + } + + +export const SelectNominations: React.FC = ({text, name}) => { + const { register } = useFormContext(); + return( + <> + + + + ) +} \ No newline at end of file diff --git a/components/UX/index.ts b/components/UX/index.ts index 29a0e80..5f2a1bd 100644 --- a/components/UX/index.ts +++ b/components/UX/index.ts @@ -1,4 +1,5 @@ export * from './Select' export * from './Alert' export * from './Input' -export * from './Link' \ No newline at end of file +export * from './Link' +export * from './SelectNominations' \ No newline at end of file diff --git a/pages/api/loadingLegisteredCommands.ts b/pages/api/loadingLegisteredCommands.ts index 427f2eb..e3afbfd 100644 --- a/pages/api/loadingLegisteredCommands.ts +++ b/pages/api/loadingLegisteredCommands.ts @@ -1,6 +1,6 @@ import Select from "../../server/db/select"; -const sql = "SELECT team_name, training_institution_team, name_team_coach, name_first_participant, name_second_participant, name_third_party, concat(first_partial_class,',',second_class,',',third_part_class) as classTeam, reg_time_add FROM members WHERE 1 ORDER BY reg_time_add DESC"; +const sql = "SELECT team_name, training_institution_team, name_team_coach, nominations, name_first_participant, name_second_participant, name_third_party, concat(first_partial_class,',',second_class,',',third_part_class) as classTeam, reg_time_add FROM members WHERE 1 ORDER BY reg_time_add DESC"; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export default function handler(req, res) { diff --git a/pages/api/registration.ts b/pages/api/registration.ts index 2a1b5f7..2e8acd1 100644 --- a/pages/api/registration.ts +++ b/pages/api/registration.ts @@ -1,7 +1,7 @@ import type { NextApiRequest, NextApiResponse } from 'next' import Insert from "../../server/db/insert"; -const sql = "INSERT INTO members (name_team_coach, coach_telefon_number, trainer_mail, city_team, training_institution_team, team_name, name_first_participant, first_partial_class, name_second_participant, second_class, name_third_party, third_part_class) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; +const sql = "INSERT INTO members (name_team_coach, coach_telefon_number, nominations, city_team, training_institution_team, team_name, name_first_participant, first_partial_class, name_second_participant, second_class, name_third_party, third_part_class) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types diff --git a/pages/registration.tsx b/pages/registration.tsx index bc12cf4..687576d 100644 --- a/pages/registration.tsx +++ b/pages/registration.tsx @@ -50,7 +50,10 @@ export const Registration = (): JSX.Element => { ФИО участников - Возрастная группа + Класс + + + Номинация diff --git a/posts/regulations.mdx b/posts/regulations.mdx index ec15ee4..c693cc0 100644 --- a/posts/regulations.mdx +++ b/posts/regulations.mdx @@ -25,7 +25,7 @@ image: '/images/robottop.png' + младшая группа» 7-11 лет; + средняя группа» 12-14 лет; + старшая группа» 14-18 лет; -* Номинация "Робо - ШОРТ-ТРЕК" +* Номинация "ШОРТ-ТРЕК" + младшая группа» 7-11 лет; + средняя группа» 12-14 лет; + старшая группа» 14-18 лет; @@ -55,6 +55,7 @@ image: '/images/robottop.png' + Заезд большей части робота в зону финиш - 5 б.; + Баллы за время начисляются следующим образом: * 60 секунд - время затраченное на выполнения задание = баллы. ++ Штрафной бал за задетую шайбу - 5 б. ### Результат попытки не засчитывается, если: * Фальстарт оператора робота (оператор нажал стартовую кнопку раньше команды судьи). @@ -77,7 +78,7 @@ image: '/images/robottop.png' /> Рисунок 1 - Вид игрового поля -## 2. Наминация "Робо-Шорт-Трек" +## 2. Наминация "Шорт-Трек" #### 2.1 Первый этап: * В заездах участвуют одновременно два робота (пара) на поле * В данном этапе роботы движутся в автоматическом режиме, любое вмешательство извне в движение робота невозможно @@ -127,10 +128,10 @@ image: '/images/robottop.png' Рисунок 2 - Вид игрового поля ## 3 Робот: -* К соревнованиям в номинациях **«Робо-слалом»** и **«Робо - Шорт-Трек»** допускаются роботы, собранные на базе произвольного конструктора. +* К соревнованиям в номинациях **«Робо-слалом»** и **«Шорт-Трек»** допускаются роботы, собранные на базе произвольного конструктора. * Размер роботов не больше 200x200x200 (мм). * Все элементы конструкции, включая систему питания, должны находиться непосредственно на самом роботе. -* Роботы принимающие участие в состязания «Робо-слалом» и «Робо - ШОРТ-ТРЕК» собираются на месте проведения Соревнований. На сборку и отладку роботов отводится два часа. +* Роботы принимающие участие в состязания «Робо-слалом» и «ШОРТ-ТРЕК» собираются на месте проведения Соревнований. На сборку и отладку роботов отводится два часа. * К первому этапу допускаются только автономные роботы, при любой попытке дистанционного управления, команда дисквалифицируется. * Во втором этапе участвуют только дистанционно управляемые роботы. Управление роботами на втором этапе состязаний производится извне через любой беспроводной канал связи. Допустимо использование любых устройств для беспроводного управления. * В каждом заезде дается две попытки на выполнение задания. После первой попытки дается время на восстановление конструкции в случае поломки любой его части - 2 минуты. diff --git a/redux/user/types.ts b/redux/user/types.ts index 9be5052..132f9e1 100644 --- a/redux/user/types.ts +++ b/redux/user/types.ts @@ -5,6 +5,7 @@ export type User = { name_first_participant: string; name_second_participant: string; name_third_party: string; + nominations: string; classTeam: string[]; };