https://github.com/mor-ald/test-task-selsup
Тестовое задание в Selsup
https://github.com/mor-ald/test-task-selsup
Last synced: 2 months ago
JSON representation
Тестовое задание в Selsup
- Host: GitHub
- URL: https://github.com/mor-ald/test-task-selsup
- Owner: Mor-ald
- Created: 2025-01-30T08:27:02.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2025-01-30T13:23:07.000Z (5 months ago)
- Last Synced: 2025-02-07T04:42:38.825Z (4 months ago)
- Language: TypeScript
- Homepage: https://test-task-selsup.netlify.app/
- Size: 115 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Тестовое задание в Selsup
## Описание
Есть следующие структуры данных, описывающих товар – интерфейс **Model** и набор параметров этого товара. Необходимо реализовать на React компоненты, которые позволяют редактировать структуру **Model** – проставлять значения параметров при этом параметры должны выводиться все и сразу должны быть доступны для редактирования, а переданные значения в структуре проставлены в форме редактирования, которые передаются в params: **Param[]**, а так же позволяют получить полную структуру в методе **getModel()** – содержащую все проставленные значения параметров. Решение должно быть легко расширяемым (например, позволять легко добавлять новые типы параметров – не только текстовые, но например числовые или со списком значений).
Ваша реализация должна работать только с текстовыми параметрами **Input** – тип **string**.
Решение необходимо оформить в виде одного файла со всеми компонентами и типами которые используются.
```ts
interface Param {
id: number;
name: string;
type: ‘string’;
}interface ParamValue {
paramId: number;
value: string;
}interface Model {
paramValues: ParamValue[];
colors: Color[];
}interface Props {
params: Param[];
model: Model;
}class ParamEditor extends React.Component {
public getModel(): Model {
}
}
```Пример структуры:
- params:
```json
[
{
"id": 1,
"name": "Назначение"
},
{
"id": 2,
"name": "Длина"
}
]
```- model:
```json
{
"paramValues": [
{
"paramId": 1,
"value": "повседневное"
},
{
"paramId": 2,
"value": "макси"
}
]
}
```