feat: mobilni responsivita, testy, klavesove zkratky, drag & drop, univerzalizace
- Mobile responsive CSS (touch targets 44px, iOS anti-zoom, reduced motion) - Vitest setup s 39 testy (formatters, attendanceHelpers, useTableSort) - Klavesove zkratky (Shift+? napoveda, Ctrl+S ulozit, navigace) - Drag & drop pro polozky nabidek (@dnd-kit, SortableRow, useSortableList) - Univerzalizace: odstraneni BOHA brandingu z UI, emailu, PDF - Smazany nepotrebne soubory (deploy.sh, AUTH_SYSTEM.md, example_design, .htaccess) - CORS konfigurovatelny pres env promennou Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -330,16 +330,6 @@ export default function OfferDetail() {
|
||||
setItems(prev => prev.length > 1 ? prev.filter((_, i) => i !== index) : prev)
|
||||
}
|
||||
|
||||
const moveItem = (index, direction) => {
|
||||
setItems(prev => {
|
||||
const newItems = [...prev]
|
||||
const target = index + direction
|
||||
if (target < 0 || target >= newItems.length) return prev
|
||||
;[newItems[index], newItems[target]] = [newItems[target], newItems[index]]
|
||||
return newItems
|
||||
})
|
||||
}
|
||||
|
||||
const addItemFromTemplate = (template) => {
|
||||
setItems(prev => [...prev, {
|
||||
_key: `item-${++_keyCounter}`,
|
||||
@@ -921,10 +911,10 @@ export default function OfferDetail() {
|
||||
|
||||
<OfferItemsSection
|
||||
items={items}
|
||||
setItems={setItems}
|
||||
updateItem={updateItem}
|
||||
addItem={addItem}
|
||||
removeItem={removeItem}
|
||||
moveItem={moveItem}
|
||||
itemTemplates={itemTemplates}
|
||||
showItemTemplateMenu={showItemTemplateMenu}
|
||||
setShowItemTemplateMenu={setShowItemTemplateMenu}
|
||||
|
||||
Reference in New Issue
Block a user