b1b1f05e3c
POST/PUT/DELETE формы для записей справочников. Schema-driven рендер полей из definition.schemaJson — i18n-aware (x-localized → input на каждый supportedLocale), enum → select, type → text/number/checkbox/array. Валидация через ajv (Draft-07, match backend networknt validator). - new: api/mutations.ts с Idempotency-Key (crypto.randomUUID) и query invalidation - new: SchemaDrivenForm — react-hook-form + ajv compile per-schema, errors через setError по ajv instancePath - new: Modal (Esc + backdrop click) и confirm dialog для close-операции - nginx: regex location ^/api/v1/dictionaries/[^/]+$ → writer (admin schema fetch) - queries: dictionaryDetailQuery возвращает full def с schemaJson - i18n: RU/EN ключи для CRUD (create/edit/close, validFrom/validTo, confirm)
36 lines
933 B
JSON
36 lines
933 B
JSON
{
|
|
"name": "ordinis-admin-ui",
|
|
"private": true,
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview --host 0.0.0.0 --port 4173"
|
|
},
|
|
"dependencies": {
|
|
"@hookform/resolvers": "^3.9.1",
|
|
"@tanstack/react-query": "^5.62.0",
|
|
"@tanstack/react-router": "^1.86.0",
|
|
"ajv": "^8.17.1",
|
|
"ajv-formats": "^3.0.1",
|
|
"axios": "^1.7.9",
|
|
"i18next": "^24.0.5",
|
|
"i18next-browser-languagedetector": "^8.0.2",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-hook-form": "^7.54.2",
|
|
"react-i18next": "^15.4.0"
|
|
},
|
|
"devDependencies": {
|
|
"@tanstack/router-vite-plugin": "^1.86.0",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"@vitejs/plugin-react": "^4.3.4",
|
|
"tailwindcss": "^4.0.0-beta.7",
|
|
"@tailwindcss/vite": "^4.0.0-beta.7",
|
|
"typescript": "^5.7.2",
|
|
"vite": "^6.0.5"
|
|
}
|
|
}
|