/
Cybran65
/
Project_0
Обзор
Документация
Войти
/
Cybran65
/
Project_0
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/components/Dialogs/NewProjectDialog.tsx
46 строк
2 KB
Cybran65
style: выравнивание модели, масштаб ленты и векторные иконки
09 авг 2026, 01:10
09 авг 2026, 01:10
9ead2b4
Код
Авторство
О чём код?
import { useState } from 'react'; import styles from './Dialogs.module.css'; interface Props { onCreate: () => void; onCancel: () => void; } /** Создание проекта. */ export default function NewProjectDialog({ onCreate, onCancel }: Props) { const [name, setName] = useState('Новый объект'); const [template, setTemplate] = useState('Здание'); const [area, setArea] = useState('30 × 30'); return ( <div className={styles.form}> <p className={styles.note}> Параметры нового проекта. </p> <div className={styles.rows}> <label htmlFor="np-name">Название</label> <input id="np-name" type="text" value={name} onChange={(e) => setName(e.target.value)} /> <label htmlFor="np-template">Шаблон</label> <select id="np-template" value={template} onChange={(e) => setTemplate(e.target.value)}> <option>Здание</option> <option>Участок</option> <option>Пустой проект</option> </select> <label htmlFor="np-area">Рабочая область, м</label> <input id="np-area" type="text" value={area} onChange={(e) => setArea(e.target.value)} /> </div> <div className={styles.actions}> <button type="button" className={styles.secondary} onClick={onCancel}> Отмена </button> <button type="button" className={styles.primary} onClick={onCreate}> Создать </button> </div> </div> ); }