@nocios/crudify-ui 1.3.4 → 1.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -39
- package/README_DEPTH.md +400 -216
- package/dist/index.d.mts +26 -26
- package/dist/index.d.ts +26 -26
- package/dist/index.js +1982 -1982
- package/dist/index.mjs +1837 -1837
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ npm install @mui/material @mui/icons-material react react-dom
|
|
|
29
29
|
### 1. Configurar SessionProvider
|
|
30
30
|
|
|
31
31
|
```tsx
|
|
32
|
-
import { SessionProvider } from
|
|
32
|
+
import { SessionProvider } from "@nocios/crudify-ui";
|
|
33
33
|
|
|
34
34
|
function App() {
|
|
35
35
|
return (
|
|
@@ -53,13 +53,13 @@ REACT_APP_CRUDIFY_ENV=dev
|
|
|
53
53
|
### useAuth - Autenticación
|
|
54
54
|
|
|
55
55
|
```tsx
|
|
56
|
-
import { useAuth } from
|
|
56
|
+
import { useAuth } from "@nocios/crudify-ui";
|
|
57
57
|
|
|
58
58
|
function LoginComponent() {
|
|
59
59
|
const { login, logout, isAuthenticated, isLoading } = useAuth();
|
|
60
60
|
|
|
61
61
|
const handleLogin = async () => {
|
|
62
|
-
const result = await login(
|
|
62
|
+
const result = await login("user@example.com", "password");
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
return isAuthenticated ? (
|
|
@@ -75,7 +75,7 @@ function LoginComponent() {
|
|
|
75
75
|
### useUserData - Datos del Usuario
|
|
76
76
|
|
|
77
77
|
```tsx
|
|
78
|
-
import { useUserData } from
|
|
78
|
+
import { useUserData } from "@nocios/crudify-ui";
|
|
79
79
|
|
|
80
80
|
function UserProfile() {
|
|
81
81
|
const { userData, sessionData, isLoading } = useUserData();
|
|
@@ -95,22 +95,20 @@ function UserProfile() {
|
|
|
95
95
|
### useData - Operaciones CRUD
|
|
96
96
|
|
|
97
97
|
```tsx
|
|
98
|
-
import { useData } from
|
|
98
|
+
import { useData } from "@nocios/crudify-ui";
|
|
99
99
|
|
|
100
100
|
function ProductManager() {
|
|
101
101
|
const { create, read, update, remove } = useData();
|
|
102
102
|
|
|
103
103
|
const createProduct = async () => {
|
|
104
|
-
await create(
|
|
104
|
+
await create("products", { name: "Nuevo Producto", price: 99.99 });
|
|
105
105
|
};
|
|
106
106
|
|
|
107
107
|
const getProducts = async () => {
|
|
108
|
-
const products = await read(
|
|
108
|
+
const products = await read("products", { limit: 10 });
|
|
109
109
|
};
|
|
110
110
|
|
|
111
|
-
return
|
|
112
|
-
<button onClick={createProduct}>Crear Producto</button>
|
|
113
|
-
);
|
|
111
|
+
return <button onClick={createProduct}>Crear Producto</button>;
|
|
114
112
|
}
|
|
115
113
|
```
|
|
116
114
|
|
|
@@ -119,7 +117,7 @@ function ProductManager() {
|
|
|
119
117
|
### CrudifyLogin - Login Completo
|
|
120
118
|
|
|
121
119
|
```tsx
|
|
122
|
-
import { CrudifyLogin } from
|
|
120
|
+
import { CrudifyLogin } from "@nocios/crudify-ui";
|
|
123
121
|
|
|
124
122
|
function AuthPage() {
|
|
125
123
|
return (
|
|
@@ -127,10 +125,10 @@ function AuthPage() {
|
|
|
127
125
|
config={{
|
|
128
126
|
appName: "Mi App",
|
|
129
127
|
logo: "/logo.png",
|
|
130
|
-
colors: { primaryColor: "#1976d2" }
|
|
128
|
+
colors: { primaryColor: "#1976d2" },
|
|
131
129
|
}}
|
|
132
130
|
onLoginSuccess={(userData) => {
|
|
133
|
-
console.log(
|
|
131
|
+
console.log("Login exitoso:", userData);
|
|
134
132
|
}}
|
|
135
133
|
language="es"
|
|
136
134
|
/>
|
|
@@ -141,7 +139,7 @@ function AuthPage() {
|
|
|
141
139
|
### ProtectedRoute - Protección de Rutas
|
|
142
140
|
|
|
143
141
|
```tsx
|
|
144
|
-
import { ProtectedRoute } from
|
|
142
|
+
import { ProtectedRoute } from "@nocios/crudify-ui";
|
|
145
143
|
|
|
146
144
|
function App() {
|
|
147
145
|
return (
|
|
@@ -152,16 +150,29 @@ function App() {
|
|
|
152
150
|
}
|
|
153
151
|
```
|
|
154
152
|
|
|
153
|
+
### Policies - Gestión de Políticas Públicas
|
|
154
|
+
|
|
155
|
+
```tsx
|
|
156
|
+
import { Policies, POLICY_ACTIONS, PolicyAction } from "@nocios/crudify-ui";
|
|
157
|
+
|
|
158
|
+
function ModuleConfiguration() {
|
|
159
|
+
const [policies, setPolicies] = useState([]);
|
|
160
|
+
const availableFields = ["name", "email", "description", "status"];
|
|
161
|
+
|
|
162
|
+
return <Policies policies={policies} onChange={setPolicies} availableFields={availableFields} errors={null} isSubmitting={false} />;
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
155
166
|
## 🔄 API de Crudify Browser
|
|
156
167
|
|
|
157
168
|
Re-exporta completamente `@nocios/crudify-browser`:
|
|
158
169
|
|
|
159
170
|
```tsx
|
|
160
|
-
import { crudify } from
|
|
171
|
+
import { crudify } from "@nocios/crudify-ui";
|
|
161
172
|
|
|
162
173
|
// Usar directamente la API de crudify
|
|
163
|
-
const result = await crudify.create(
|
|
164
|
-
const users = await crudify.read(
|
|
174
|
+
const result = await crudify.create("users", userData);
|
|
175
|
+
const users = await crudify.read("users");
|
|
165
176
|
```
|
|
166
177
|
|
|
167
178
|
## 🛠️ Utilidades
|
|
@@ -169,7 +180,7 @@ const users = await crudify.read('users');
|
|
|
169
180
|
### JWT Utils
|
|
170
181
|
|
|
171
182
|
```tsx
|
|
172
|
-
import { decodeJwtSafely, getCurrentUserEmail } from
|
|
183
|
+
import { decodeJwtSafely, getCurrentUserEmail } from "@nocios/crudify-ui";
|
|
173
184
|
|
|
174
185
|
const payload = decodeJwtSafely(token);
|
|
175
186
|
const email = getCurrentUserEmail();
|
|
@@ -178,7 +189,7 @@ const email = getCurrentUserEmail();
|
|
|
178
189
|
### Error Handler
|
|
179
190
|
|
|
180
191
|
```tsx
|
|
181
|
-
import { handleCrudifyError, getErrorMessage } from
|
|
192
|
+
import { handleCrudifyError, getErrorMessage } from "@nocios/crudify-ui";
|
|
182
193
|
|
|
183
194
|
try {
|
|
184
195
|
// operación
|
|
@@ -191,14 +202,9 @@ try {
|
|
|
191
202
|
## 🚀 Ejemplo Completo
|
|
192
203
|
|
|
193
204
|
```tsx
|
|
194
|
-
import React from
|
|
195
|
-
import { BrowserRouter, Routes, Route } from
|
|
196
|
-
import {
|
|
197
|
-
SessionProvider,
|
|
198
|
-
ProtectedRoute,
|
|
199
|
-
CrudifyLogin,
|
|
200
|
-
useSessionContext
|
|
201
|
-
} from '@nocios/crudify-ui';
|
|
205
|
+
import React from "react";
|
|
206
|
+
import { BrowserRouter, Routes, Route } from "react-router-dom";
|
|
207
|
+
import { SessionProvider, ProtectedRoute, CrudifyLogin, useSessionContext } from "@nocios/crudify-ui";
|
|
202
208
|
|
|
203
209
|
function Dashboard() {
|
|
204
210
|
const { sessionData, logout } = useSessionContext();
|
|
@@ -214,11 +220,8 @@ function Dashboard() {
|
|
|
214
220
|
|
|
215
221
|
function LoginPage() {
|
|
216
222
|
return (
|
|
217
|
-
<div style={{ maxWidth:
|
|
218
|
-
<CrudifyLogin
|
|
219
|
-
config={{ appName: "Mi App" }}
|
|
220
|
-
onLoginSuccess={(userData) => console.log('Login:', userData)}
|
|
221
|
-
/>
|
|
223
|
+
<div style={{ maxWidth: "400px", margin: "0 auto" }}>
|
|
224
|
+
<CrudifyLogin config={{ appName: "Mi App" }} onLoginSuccess={(userData) => console.log("Login:", userData)} />
|
|
222
225
|
</div>
|
|
223
226
|
);
|
|
224
227
|
}
|
|
@@ -249,12 +252,7 @@ function App() {
|
|
|
249
252
|
Tipos completos incluidos:
|
|
250
253
|
|
|
251
254
|
```tsx
|
|
252
|
-
import type {
|
|
253
|
-
CrudifyLoginProps,
|
|
254
|
-
UseAuthReturn,
|
|
255
|
-
UserProfile,
|
|
256
|
-
TokenData
|
|
257
|
-
} from '@nocios/crudify-ui';
|
|
255
|
+
import type { CrudifyLoginProps, UseAuthReturn, UserProfile, TokenData } from "@nocios/crudify-ui";
|
|
258
256
|
```
|
|
259
257
|
|
|
260
258
|
## 🌐 Internacionalización
|
|
@@ -288,4 +286,4 @@ MIT © [Nocios](https://github.com/nocios)
|
|
|
288
286
|
|
|
289
287
|
---
|
|
290
288
|
|
|
291
|
-
**¿Necesitas ayuda?** Consulta [README_DEPTH.md](./README_DEPTH.md) para documentación completa.
|
|
289
|
+
**¿Necesitas ayuda?** Consulta [README_DEPTH.md](./README_DEPTH.md) para documentación completa.
|