refactor: migrace vsech formularu na FormField komponentu + JWT upgrade

- FormField.jsx: pridana podpora style prop
- 23 stranek migrovano na FormField (166 vyskytu, -246 radku)
- firebase/php-jwt upgrade v6.11 -> v7.0.3 (security advisory fix)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 19:33:36 +01:00
parent 37122579d0
commit 2328ba2840
26 changed files with 366 additions and 612 deletions

View File

@@ -3,6 +3,7 @@ import { useNavigate, Link } from 'react-router-dom'
import { useAlert } from '../context/AlertContext'
import { useAuth } from '../context/AuthContext'
import { motion } from 'framer-motion'
import FormField from '../components/FormField'
import Forbidden from '../components/Forbidden'
import AdminDatePicker from '../components/AdminDatePicker'
import apiFetch from '../utils/api'
@@ -190,8 +191,7 @@ export default function ProjectCreate() {
<h3 className="admin-card-title">Základní údaje</h3>
<div className="admin-form">
<div className="admin-form-row">
<div className="admin-form-group">
<label className="admin-form-label">Číslo projektu</label>
<FormField label="Číslo projektu">
<input
type="text"
value={form.project_number}
@@ -199,9 +199,8 @@ export default function ProjectCreate() {
className="admin-form-input"
placeholder="Ponechte prázdné pro automatické"
/>
</div>
<div className={`admin-form-group${errors.name ? ' has-error' : ''}`}>
<label className="admin-form-label required">Název</label>
</FormField>
<FormField label="Název" error={errors.name} required>
<input
type="text"
value={form.name}
@@ -209,13 +208,11 @@ export default function ProjectCreate() {
className="admin-form-input"
placeholder="Název projektu"
/>
{errors.name && <span className="admin-form-error">{errors.name}</span>}
</div>
</FormField>
</div>
<div className="admin-form-row">
<div className={`admin-form-group${errors.customer_id ? ' has-error' : ''}`}>
<label className="admin-form-label required">Zákazník</label>
<FormField label="Zákazník" error={errors.customer_id} required>
{form.customer_id ? (
<div className="offers-customer-selected">
<span>{form.customer_name}</span>
@@ -257,16 +254,14 @@ export default function ProjectCreate() {
)}
</div>
)}
{errors.customer_id && <span className="admin-form-error">{errors.customer_id}</span>}
</div>
<div className="admin-form-group">
<label className="admin-form-label">Datum zahájení</label>
</FormField>
<FormField label="Datum zahájení">
<AdminDatePicker
mode="date"
value={form.start_date}
onChange={(val) => updateForm('start_date', val)}
/>
</div>
</FormField>
</div>
</div>
</div>