@makroz/web 1.2.5 → 1.2.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 +1 -1
- package/bin/mk-update.js +245 -41
- package/dist/auth/AuthStorageAdapter.d.ts +74 -0
- package/dist/auth/AuthStorageAdapter.d.ts.map +1 -0
- package/dist/auth/AuthStorageAdapter.js +140 -0
- package/dist/auth/AuthStorageAdapter.js.map +1 -0
- package/dist/auth/MkAuthProvider.d.ts +11 -2
- package/dist/auth/MkAuthProvider.d.ts.map +1 -1
- package/dist/auth/MkAuthProvider.js +15 -25
- package/dist/auth/MkAuthProvider.js.map +1 -1
- package/dist/components/MkFileUpload.d.ts.map +1 -1
- package/dist/components/MkFileUpload.js +36 -2
- package/dist/components/MkFileUpload.js.map +1 -1
- package/dist/components/MkTable.d.ts +8 -1
- package/dist/components/MkTable.d.ts.map +1 -1
- package/dist/components/MkTable.js +28 -2
- package/dist/components/MkTable.js.map +1 -1
- package/dist/hooks/useApi.d.ts +21 -5
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/dist/hooks/useApi.js +83 -63
- package/dist/hooks/useApi.js.map +1 -1
- package/dist/hooks/useMkInfiniteList.d.ts +1 -1
- package/dist/hooks/useMkList.d.ts +8 -12
- package/dist/hooks/useMkList.d.ts.map +1 -1
- package/dist/hooks/useMkList.js +23 -9
- package/dist/hooks/useMkList.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/theme/MkThemeProvider.d.ts.map +1 -1
- package/dist/theme/MkThemeProvider.js.map +1 -1
- package/eslint-plugin-mk/__tests__/no-cross-module-import-dynamic.test.js +89 -0
- package/eslint-plugin-mk/rules/no-cross-module-import.js +16 -0
- package/package.json +2 -2
|
@@ -3,13 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { useEffect, useMemo, useRef, useState, useCallback } from 'react';
|
|
4
4
|
import { QueryClient, QueryClientProvider, useQuery, useMutation, useQueryClient, } from '@tanstack/react-query';
|
|
5
5
|
import { MkAuthContext } from './MkAuthContext';
|
|
6
|
-
|
|
7
|
-
? {
|
|
8
|
-
getItem: (key) => window.localStorage.getItem(key),
|
|
9
|
-
setItem: (key, value) => window.localStorage.setItem(key, value),
|
|
10
|
-
removeItem: (key) => window.localStorage.removeItem(key),
|
|
11
|
-
}
|
|
12
|
-
: undefined;
|
|
6
|
+
import { getDefaultAuthStorage } from './AuthStorageAdapter';
|
|
13
7
|
function tokenKey(scope, kind) {
|
|
14
8
|
return `mk_auth_${scope}_${kind}_token`;
|
|
15
9
|
}
|
|
@@ -21,22 +15,24 @@ function userKey(scope) {
|
|
|
21
15
|
* Exported only as `<MkAuthProvider>`, which wraps it in
|
|
22
16
|
* `<QueryClientProvider>`.
|
|
23
17
|
*/
|
|
24
|
-
function MkAuthProviderInner({ scope, apiBaseUrl, children, storage
|
|
25
|
-
var _a
|
|
18
|
+
function MkAuthProviderInner({ scope, apiBaseUrl, children, storage: storageProp, fetcher, }) {
|
|
19
|
+
var _a;
|
|
26
20
|
const normalizedBase = apiBaseUrl.replace(/\/+$/, '');
|
|
27
21
|
const queryClient = useQueryClient();
|
|
28
22
|
const fetchImpl = fetcher !== null && fetcher !== void 0 ? fetcher : (_a = globalThis.fetch) === null || _a === void 0 ? void 0 : _a.bind(globalThis);
|
|
23
|
+
// Resolve the storage adapter once per provider instance. Re-creating
|
|
24
|
+
// it every render would invalidate every `useCallback` that lists
|
|
25
|
+
// `storage` as a dep, churning child re-renders for no reason.
|
|
26
|
+
const storage = useMemo(() => storageProp !== null && storageProp !== void 0 ? storageProp : getDefaultAuthStorage(), [storageProp]);
|
|
29
27
|
// Persisted token + user snapshots (read on first render only, to keep
|
|
30
28
|
// `useState` initializer cheap; we still write back on every change).
|
|
31
|
-
const initialAccess =
|
|
32
|
-
const initialRefresh =
|
|
33
|
-
const initialUserJson = storage
|
|
29
|
+
const initialAccess = storage.getItem(tokenKey(scope, 'access'));
|
|
30
|
+
const initialRefresh = storage.getItem(tokenKey(scope, 'refresh'));
|
|
31
|
+
const initialUserJson = storage.getItem(userKey(scope));
|
|
34
32
|
const initialUser = useRef(initialUserJson ? safeParse(initialUserJson) : null).current;
|
|
35
33
|
const [user, setUserState] = useState(initialUser);
|
|
36
34
|
const [error, setError] = useState(null);
|
|
37
35
|
const persistUser = useCallback((next) => {
|
|
38
|
-
if (!storage)
|
|
39
|
-
return;
|
|
40
36
|
if (next) {
|
|
41
37
|
storage.setItem(userKey(scope), JSON.stringify(next));
|
|
42
38
|
}
|
|
@@ -45,8 +41,6 @@ function MkAuthProviderInner({ scope, apiBaseUrl, children, storage = DEFAULT_ST
|
|
|
45
41
|
}
|
|
46
42
|
}, [scope, storage]);
|
|
47
43
|
const persistTokens = useCallback((access, refresh) => {
|
|
48
|
-
if (!storage)
|
|
49
|
-
return;
|
|
50
44
|
if (access) {
|
|
51
45
|
storage.setItem(tokenKey(scope, 'access'), access);
|
|
52
46
|
}
|
|
@@ -74,8 +68,7 @@ function MkAuthProviderInner({ scope, apiBaseUrl, children, storage = DEFAULT_ST
|
|
|
74
68
|
const meQuery = useQuery({
|
|
75
69
|
queryKey: ['mk-auth', scope, 'me'],
|
|
76
70
|
queryFn: async ({ signal }) => {
|
|
77
|
-
|
|
78
|
-
const access = (_a = storage === null || storage === void 0 ? void 0 : storage.getItem(tokenKey(scope, 'access'))) !== null && _a !== void 0 ? _a : null;
|
|
71
|
+
const access = storage.getItem(tokenKey(scope, 'access'));
|
|
79
72
|
if (!access) {
|
|
80
73
|
throw new Error('No access token available');
|
|
81
74
|
}
|
|
@@ -113,8 +106,7 @@ function MkAuthProviderInner({ scope, apiBaseUrl, children, storage = DEFAULT_ST
|
|
|
113
106
|
// ---- refresh mutation (also used on mount when /me 401s) ---------------
|
|
114
107
|
const refreshMutation = useMutation({
|
|
115
108
|
mutationFn: async () => {
|
|
116
|
-
|
|
117
|
-
const refresh = (_a = storage === null || storage === void 0 ? void 0 : storage.getItem(tokenKey(scope, 'refresh'))) !== null && _a !== void 0 ? _a : null;
|
|
109
|
+
const refresh = storage.getItem(tokenKey(scope, 'refresh'));
|
|
118
110
|
if (!refresh) {
|
|
119
111
|
throw new Error('No refresh token available');
|
|
120
112
|
}
|
|
@@ -157,7 +149,7 @@ function MkAuthProviderInner({ scope, apiBaseUrl, children, storage = DEFAULT_ST
|
|
|
157
149
|
// ---- logout mutation ---------------------------------------------------
|
|
158
150
|
const logoutMutation = useMutation({
|
|
159
151
|
mutationFn: async () => {
|
|
160
|
-
const access = storage
|
|
152
|
+
const access = storage.getItem(tokenKey(scope, 'access'));
|
|
161
153
|
if (!access)
|
|
162
154
|
return;
|
|
163
155
|
const res = await fetchImpl(`${normalizedBase}/api/${scope}/auth/logout`, {
|
|
@@ -187,9 +179,8 @@ function MkAuthProviderInner({ scope, apiBaseUrl, children, storage = DEFAULT_ST
|
|
|
187
179
|
// meQuery executes automatically on mount if access token exists (enabled: true).
|
|
188
180
|
const tokenRefreshed = useRef(false);
|
|
189
181
|
useEffect(() => {
|
|
190
|
-
var _a;
|
|
191
182
|
if (meQuery.isError && !tokenRefreshed.current) {
|
|
192
|
-
const refresh =
|
|
183
|
+
const refresh = storage.getItem(tokenKey(scope, 'refresh'));
|
|
193
184
|
if (refresh) {
|
|
194
185
|
tokenRefreshed.current = true;
|
|
195
186
|
refreshMutation
|
|
@@ -213,8 +204,7 @@ function MkAuthProviderInner({ scope, apiBaseUrl, children, storage = DEFAULT_ST
|
|
|
213
204
|
}, [meQuery.isError, scope, storage, refreshMutation, persistTokens, setUser, clearAll, meQuery]);
|
|
214
205
|
// Handle initial state if no token exists
|
|
215
206
|
useEffect(() => {
|
|
216
|
-
|
|
217
|
-
const access = (_a = storage === null || storage === void 0 ? void 0 : storage.getItem(tokenKey(scope, 'access'))) !== null && _a !== void 0 ? _a : null;
|
|
207
|
+
const access = storage.getItem(tokenKey(scope, 'access'));
|
|
218
208
|
if (!access) {
|
|
219
209
|
setUser(null);
|
|
220
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MkAuthProvider.js","sourceRoot":"","sources":["../../src/auth/MkAuthProvider.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MkAuthProvider.js","sourceRoot":"","sources":["../../src/auth/MkAuthProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MkFileUpload.d.ts","sourceRoot":"","sources":["../../src/components/MkFileUpload.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MkFileUpload.d.ts","sourceRoot":"","sources":["../../src/components/MkFileUpload.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAqJpD,CAAC"}
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback, useRef, useState } from 'react';
|
|
2
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
3
|
import styles from './MkFileUpload.module.css';
|
|
4
4
|
export const MkFileUpload = ({ onFiles, accept, multiple = false, maxSizeMB = 10, label = 'Arrastra archivos aquí o haz clic', sublabel, disabled = false, error, className, }) => {
|
|
5
5
|
const inputRef = useRef(null);
|
|
6
6
|
const [isDragging, setIsDragging] = useState(false);
|
|
7
7
|
const [localError, setLocalError] = useState('');
|
|
8
8
|
const [fileList, setFileList] = useState([]);
|
|
9
|
+
// Track every preview URL we create so we can revoke them on
|
|
10
|
+
// unmount and on replacement. Without this, every replace
|
|
11
|
+
// (`!multiple` selection) and every unmount leaks blob URLs that
|
|
12
|
+
// the browser keeps the underlying blob alive for — a real memory
|
|
13
|
+
// cost when users pick many large images.
|
|
14
|
+
const previewUrlsRef = useRef([]);
|
|
15
|
+
// Revoke all tracked URLs on unmount. Empty-deps so we close over
|
|
16
|
+
// the ref (which is mutated by processFiles/removeFile), not over
|
|
17
|
+
// `fileList` (which would capture only the mount-time value).
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
return () => {
|
|
20
|
+
previewUrlsRef.current.forEach((url) => URL.revokeObjectURL(url));
|
|
21
|
+
previewUrlsRef.current = [];
|
|
22
|
+
};
|
|
23
|
+
}, []);
|
|
9
24
|
const processFiles = useCallback((rawFiles) => {
|
|
10
25
|
const results = [];
|
|
11
26
|
const errors = [];
|
|
@@ -17,7 +32,9 @@ export const MkFileUpload = ({ onFiles, accept, multiple = false, maxSizeMB = 10
|
|
|
17
32
|
}
|
|
18
33
|
const info = { file, name: file.name, sizeMB, type: file.type };
|
|
19
34
|
if (file.type.startsWith('image/')) {
|
|
20
|
-
|
|
35
|
+
const url = URL.createObjectURL(file);
|
|
36
|
+
info.preview = url;
|
|
37
|
+
previewUrlsRef.current.push(url);
|
|
21
38
|
}
|
|
22
39
|
results.push(info);
|
|
23
40
|
});
|
|
@@ -26,6 +43,18 @@ export const MkFileUpload = ({ onFiles, accept, multiple = false, maxSizeMB = 10
|
|
|
26
43
|
return;
|
|
27
44
|
}
|
|
28
45
|
setLocalError('');
|
|
46
|
+
if (!multiple) {
|
|
47
|
+
// Single-selection mode replaces the fileList wholesale. The
|
|
48
|
+
// previous previews are no longer reachable via the DOM, so
|
|
49
|
+
// revoke them now to release the underlying blobs.
|
|
50
|
+
fileList.forEach((f) => {
|
|
51
|
+
if (f.preview)
|
|
52
|
+
URL.revokeObjectURL(f.preview);
|
|
53
|
+
});
|
|
54
|
+
previewUrlsRef.current = results
|
|
55
|
+
.map((r) => r.preview)
|
|
56
|
+
.filter((u) => Boolean(u));
|
|
57
|
+
}
|
|
29
58
|
const next = multiple ? [...fileList, ...results] : results;
|
|
30
59
|
setFileList(next);
|
|
31
60
|
onFiles(next);
|
|
@@ -38,6 +67,11 @@ export const MkFileUpload = ({ onFiles, accept, multiple = false, maxSizeMB = 10
|
|
|
38
67
|
}
|
|
39
68
|
}, [disabled, processFiles]);
|
|
40
69
|
const removeFile = useCallback((idx) => {
|
|
70
|
+
const removed = fileList[idx];
|
|
71
|
+
if (removed === null || removed === void 0 ? void 0 : removed.preview) {
|
|
72
|
+
URL.revokeObjectURL(removed.preview);
|
|
73
|
+
previewUrlsRef.current = previewUrlsRef.current.filter((u) => u !== removed.preview);
|
|
74
|
+
}
|
|
41
75
|
const next = fileList.filter((_, i) => i !== idx);
|
|
42
76
|
setFileList(next);
|
|
43
77
|
onFiles(next);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MkFileUpload.js","sourceRoot":"","sources":["../../src/components/MkFileUpload.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MkFileUpload.js","sourceRoot":"","sources":["../../src/components/MkFileUpload.tsx"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,14 @@ interface MkTableProps<T> {
|
|
|
21
21
|
onPageChange?: (page: number) => void;
|
|
22
22
|
actions?: (item: T) => MkDropdownOptionType[];
|
|
23
23
|
onAction?: (action: string | number, item: T) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Override the default `key` extraction. Use this only if your
|
|
26
|
+
* rows have none of `id`, `uuid`, or `key` (the built-in smart
|
|
27
|
+
* fallback) — supply a stable, unique string per row so React
|
|
28
|
+
* can reconcile the list correctly across sort / filter.
|
|
29
|
+
*/
|
|
30
|
+
keyExtractor?: (item: T, index: number) => string;
|
|
24
31
|
}
|
|
25
|
-
export declare function MkTable<T>({ data, columns, loading, onSort, sortField, sortOrder, pagination, onPageChange, actions, onAction }: MkTableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
export declare function MkTable<T>({ data, columns, loading, onSort, sortField, sortOrder, pagination, onPageChange, actions, onAction, keyExtractor, }: MkTableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
26
33
|
export {};
|
|
27
34
|
//# sourceMappingURL=MkTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MkTable.d.ts","sourceRoot":"","sources":["../../src/components/MkTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGzD,UAAU,MAAM,CAAC,CAAC;IACd,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,YAAY,CAAC,CAAC;IACpB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,oBAAoB,EAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"MkTable.d.ts","sourceRoot":"","sources":["../../src/components/MkTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGzD,UAAU,MAAM,CAAC,CAAC;IACd,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,YAAY,CAAC,CAAC;IACpB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,oBAAoB,EAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IACtD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACrD;AA6BD,wBAAgB,OAAO,CAAC,CAAC,EAAE,EACvB,IAAS,EACT,OAAY,EACZ,OAAO,EACP,MAAM,EACN,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,YAAkC,GACrC,EAAE,YAAY,CAAC,CAAC,CAAC,2CA4FjB"}
|
|
@@ -1,11 +1,37 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import styles from './MkTable.module.css';
|
|
3
3
|
import { MkDropDown } from './MkDropDown';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Default row-key resolver. Tries the common stable-id field names
|
|
6
|
+
* first, then warns once in dev when nothing matches, and finally
|
|
7
|
+
* falls back to a positional placeholder. The positional fallback
|
|
8
|
+
* is unique per index within a render, but it WILL cause React to
|
|
9
|
+
* reconcile rows incorrectly across sort/filter — the console
|
|
10
|
+
* warning is there so the missing stable id gets fixed at the
|
|
11
|
+
* source.
|
|
12
|
+
*/
|
|
13
|
+
function defaultKeyExtractor(item, index) {
|
|
14
|
+
const candidate = item;
|
|
15
|
+
const toKey = (v) => typeof v === 'string' || typeof v === 'number' ? String(v) : '';
|
|
16
|
+
if (toKey(candidate === null || candidate === void 0 ? void 0 : candidate.id))
|
|
17
|
+
return toKey(candidate.id);
|
|
18
|
+
if (toKey(candidate === null || candidate === void 0 ? void 0 : candidate.uuid))
|
|
19
|
+
return toKey(candidate.uuid);
|
|
20
|
+
if (toKey(candidate === null || candidate === void 0 ? void 0 : candidate.key))
|
|
21
|
+
return toKey(candidate.key);
|
|
22
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
23
|
+
// eslint-disable-next-line no-console
|
|
24
|
+
console.warn(`[MkTable] Row at index ${index} has no id/uuid/key. ` +
|
|
25
|
+
'Falling back to a positional key — add a stable id to fix ' +
|
|
26
|
+
'reconciliation bugs after sort/filter.');
|
|
27
|
+
}
|
|
28
|
+
return `mk-row-${index}`;
|
|
29
|
+
}
|
|
30
|
+
export function MkTable({ data = [], columns = [], loading, onSort, sortField, sortOrder, pagination, onPageChange, actions, onAction, keyExtractor = defaultKeyExtractor, }) {
|
|
5
31
|
const handleSort = (key) => {
|
|
6
32
|
if (onSort)
|
|
7
33
|
onSort(key);
|
|
8
34
|
};
|
|
9
|
-
return (_jsxs("div", { className: styles.container, children: [_jsx("div", { className: styles.tableWrapper, children: _jsxs("table", { className: styles.table, children: [_jsx("thead", { children: _jsxs("tr", { children: [columns.map((col) => (_jsx("th", { onClick: () => col.sortable && handleSort(String(col.key)), className: col.sortable ? styles.sortable : '', children: _jsxs("div", { className: styles.headerContent, children: [col.label, col.sortable && sortField === col.key && (_jsx("span", { className: styles.sortIcon, children: sortOrder === 'asc' ? '↑' : '↓' }))] }) }, String(col.key)))), actions && _jsx("th", { className: styles.actionsHeader, children: "Acciones" })] }) }), _jsxs("tbody", { children: [loading && (_jsx("tr", { className: styles.loadingRow, children: _jsx("td", { colSpan: columns.length, children: _jsx("div", { className: styles.skeleton }) }) })), !loading && data.length === 0 && (_jsx("tr", { className: styles.emptyRow, children: _jsx("td", { colSpan: columns.length, children: "No se encontraron datos." }) })), !loading && data.map((item, idx) => (_jsxs("tr", { className: styles.row, style: { '--row-index': idx }, children: [columns.map((col) => (_jsx("td", { children: col.render ? col.render(item) : item[col.key] }, String(col.key)))), actions && (_jsx("td", { className: styles.actionsCell, children: _jsx(MkDropDown, { options: actions(item), onSelect: (val) => onAction === null || onAction === void 0 ? void 0 : onAction(val, item) }) }))] }, idx)))] })] }) }), pagination && pagination.last_page && pagination.last_page > 1 && (_jsxs("div", { className: styles.pagination, children: [_jsx("button", { disabled: pagination.current_page === 1, onClick: () => onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange((pagination.current_page || 1) - 1), className: styles.pageBtn, children: "Anterior" }), _jsxs("span", { className: styles.pageInfo, children: ["P\u00E1gina ", pagination.current_page, " de ", pagination.last_page] }), _jsx("button", { disabled: pagination.current_page === pagination.last_page, onClick: () => onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange((pagination.current_page || 1) + 1), className: styles.pageBtn, children: "Siguiente" })] }))] }));
|
|
35
|
+
return (_jsxs("div", { className: styles.container, children: [_jsx("div", { className: styles.tableWrapper, children: _jsxs("table", { className: styles.table, children: [_jsx("thead", { children: _jsxs("tr", { children: [columns.map((col) => (_jsx("th", { onClick: () => col.sortable && handleSort(String(col.key)), className: col.sortable ? styles.sortable : '', children: _jsxs("div", { className: styles.headerContent, children: [col.label, col.sortable && sortField === col.key && (_jsx("span", { className: styles.sortIcon, children: sortOrder === 'asc' ? '↑' : '↓' }))] }) }, String(col.key)))), actions && _jsx("th", { className: styles.actionsHeader, children: "Acciones" })] }) }), _jsxs("tbody", { children: [loading && (_jsx("tr", { className: styles.loadingRow, children: _jsx("td", { colSpan: columns.length, children: _jsx("div", { className: styles.skeleton }) }) })), !loading && data.length === 0 && (_jsx("tr", { className: styles.emptyRow, children: _jsx("td", { colSpan: columns.length, children: "No se encontraron datos." }) })), !loading && data.map((item, idx) => (_jsxs("tr", { className: styles.row, style: { '--row-index': idx }, children: [columns.map((col) => (_jsx("td", { children: col.render ? col.render(item) : item[col.key] }, String(col.key)))), actions && (_jsx("td", { className: styles.actionsCell, children: _jsx(MkDropDown, { options: actions(item), onSelect: (val) => onAction === null || onAction === void 0 ? void 0 : onAction(val, item) }) }))] }, keyExtractor(item, idx))))] })] }) }), pagination && pagination.last_page && pagination.last_page > 1 && (_jsxs("div", { className: styles.pagination, children: [_jsx("button", { disabled: pagination.current_page === 1, onClick: () => onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange((pagination.current_page || 1) - 1), className: styles.pageBtn, children: "Anterior" }), _jsxs("span", { className: styles.pageInfo, children: ["P\u00E1gina ", pagination.current_page, " de ", pagination.last_page] }), _jsx("button", { disabled: pagination.current_page === pagination.last_page, onClick: () => onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange((pagination.current_page || 1) + 1), className: styles.pageBtn, children: "Siguiente" })] }))] }));
|
|
10
36
|
}
|
|
11
37
|
//# sourceMappingURL=MkTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MkTable.js","sourceRoot":"","sources":["../../src/components/MkTable.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"MkTable.js","sourceRoot":"","sources":["../../src/components/MkTable.tsx"],"names":[],"mappings":"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"}
|
package/dist/hooks/useApi.d.ts
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ApiStatus, MkResponse } from '@makroz/core';
|
|
2
|
+
import { type MkQueryParams } from '@makroz/core';
|
|
3
|
+
/**
|
|
4
|
+
* Web `useApi` hook.
|
|
5
|
+
*
|
|
6
|
+
* State, refs, and lifecycle are owned here (web-local) while the
|
|
7
|
+
* actual fetch execution + AbortController + response.ok logic lives
|
|
8
|
+
* in `@makroz/core`'s `executeApiRequest`. The mobile wrapper follows
|
|
9
|
+
* the same shape, so both packages share semantics without sharing a
|
|
10
|
+
* React instance (pnpm strict-mode hoisting would otherwise create
|
|
11
|
+
* two React copies and trip `Invalid hook call`).
|
|
12
|
+
*
|
|
13
|
+
* Public return shape is byte-compatible with v1.2.5 so consumer
|
|
14
|
+
* call sites do not need to change.
|
|
15
|
+
*/
|
|
2
16
|
interface UseApiOptions {
|
|
3
17
|
baseUrl?: string;
|
|
4
18
|
headers?: Record<string, string>;
|
|
@@ -6,14 +20,16 @@ interface UseApiOptions {
|
|
|
6
20
|
export declare function useApi<T = unknown>(options?: UseApiOptions): {
|
|
7
21
|
status: ApiStatus;
|
|
8
22
|
data: T | null;
|
|
9
|
-
error:
|
|
23
|
+
error: string | null;
|
|
10
24
|
waiting: number;
|
|
11
25
|
loading: boolean;
|
|
12
|
-
get: <R = T>(endpoint: string, params?:
|
|
13
|
-
post: <R = T>(endpoint: string, body:
|
|
14
|
-
put: <R = T>(endpoint: string, body:
|
|
26
|
+
get: <R = T>(endpoint: string, params?: MkQueryParams) => Promise<MkResponse<R>>;
|
|
27
|
+
post: <R = T>(endpoint: string, body: unknown) => Promise<MkResponse<R>>;
|
|
28
|
+
put: <R = T>(endpoint: string, body: unknown) => Promise<MkResponse<R>>;
|
|
15
29
|
delete: (endpoint: string) => Promise<MkResponse<void>>;
|
|
16
30
|
remove: (endpoint: string) => Promise<MkResponse<void>>;
|
|
31
|
+
abort: () => void;
|
|
32
|
+
refetch: () => void;
|
|
17
33
|
};
|
|
18
34
|
export {};
|
|
19
35
|
//# sourceMappingURL=useApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useApi.d.ts","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"useApi.d.ts","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAGnF;;;;;;;;;;;;GAYG;AAEH,UAAU,aAAa;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,wBAAgB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,GAAE,aAAkB;;;;;;UAwHtD,CAAC,gBAAgB,MAAM,WAAW,aAAa;WAK/C,CAAC,gBAAgB,MAAM,QAAQ,OAAO;UAKtC,CAAC,gBAAgB,MAAM,QAAQ,OAAO;uBAK5B,MAAM;uBAAN,MAAM;;;EAkBxB"}
|
package/dist/hooks/useApi.js
CHANGED
|
@@ -1,83 +1,101 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useCallback, useMemo, useRef, useState } from 'react';
|
|
2
|
+
import { executeApiRequest, ApiCoreError } from '@makroz/core';
|
|
2
3
|
import { useMkApiContext } from '../context/MkApiContext';
|
|
3
|
-
const buildQueryParams = (params) => {
|
|
4
|
-
const query = new URLSearchParams();
|
|
5
|
-
if (!params)
|
|
6
|
-
return "";
|
|
7
|
-
// Specific MK-Director mappings
|
|
8
|
-
if (params.q)
|
|
9
|
-
query.append('q', String(params.q));
|
|
10
|
-
if (params.sort)
|
|
11
|
-
query.append('sort', String(params.sort));
|
|
12
|
-
if (params.page)
|
|
13
|
-
query.append('page', String(params.page));
|
|
14
|
-
if (params.per_page)
|
|
15
|
-
query.append('per_page', String(params.per_page));
|
|
16
|
-
// Advanced Filtering mapping: { filter: { status: 'A', price: { gt: 100 } } }
|
|
17
|
-
if (params.filter && typeof params.filter === 'object') {
|
|
18
|
-
Object.entries(params.filter).forEach(([field, value]) => {
|
|
19
|
-
if (typeof value === 'object' && value !== null) {
|
|
20
|
-
Object.entries(value).forEach(([op, opVal]) => {
|
|
21
|
-
query.append(`filter[${field}][${op}]`, String(opVal));
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
query.append(`filter[${field}]`, String(value));
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
const queryString = query.toString();
|
|
30
|
-
return queryString ? `?${queryString}` : "";
|
|
31
|
-
};
|
|
32
4
|
export function useApi(options = {}) {
|
|
33
5
|
const context = useMkApiContext();
|
|
6
|
+
const baseUrl = options.baseUrl || context.baseUrl;
|
|
7
|
+
const mergedHeaders = useMemo(() => { var _a, _b; return (Object.assign(Object.assign({}, ((_a = context.headers) !== null && _a !== void 0 ? _a : {})), ((_b = options.headers) !== null && _b !== void 0 ? _b : {}))); }, [context.headers, options.headers]);
|
|
8
|
+
// Resolve fetch ONCE per provider, not per call. We deliberately
|
|
9
|
+
// prefer `globalThis.fetch` (browser global) so the same lookup
|
|
10
|
+
// path works in dev, prod, and jsdom-test envs. Note: do NOT
|
|
11
|
+
// `.bind(globalThis)` here — vi.fn() mocks in tests are sensitive
|
|
12
|
+
// to `this` rebinding, and the bare global already has the right
|
|
13
|
+
// receiver.
|
|
14
|
+
const fetchImpl = useMemo(() => globalThis.fetch, []);
|
|
34
15
|
const [status, setStatus] = useState('idle');
|
|
35
16
|
const [data, setData] = useState(null);
|
|
36
17
|
const [error, setError] = useState(null);
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
18
|
+
const controllerRef = useRef(null);
|
|
19
|
+
const lastRequestRef = useRef(null);
|
|
20
|
+
const abort = useCallback(() => {
|
|
21
|
+
var _a;
|
|
22
|
+
(_a = controllerRef.current) === null || _a === void 0 ? void 0 : _a.abort();
|
|
23
|
+
controllerRef.current = null;
|
|
24
|
+
}, []);
|
|
25
|
+
const call = useCallback(async (req) => {
|
|
26
|
+
var _a, _b;
|
|
27
|
+
// Cancel any prior in-flight request so the newest wins.
|
|
28
|
+
(_a = controllerRef.current) === null || _a === void 0 ? void 0 : _a.abort();
|
|
29
|
+
const controller = new AbortController();
|
|
30
|
+
controllerRef.current = controller;
|
|
31
|
+
lastRequestRef.current = req;
|
|
32
|
+
context.setWaiting(1, `call:${req.endpoint}`);
|
|
48
33
|
try {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
method,
|
|
55
|
-
|
|
56
|
-
|
|
34
|
+
setStatus('loading');
|
|
35
|
+
setError(null);
|
|
36
|
+
const result = await executeApiRequest({
|
|
37
|
+
baseUrl,
|
|
38
|
+
endpoint: req.endpoint,
|
|
39
|
+
method: req.method,
|
|
40
|
+
body: req.body,
|
|
41
|
+
params: req.params,
|
|
42
|
+
headers: mergedHeaders,
|
|
43
|
+
signal: controller.signal,
|
|
44
|
+
timeoutMs: req.timeoutMs,
|
|
45
|
+
fetchImpl,
|
|
57
46
|
});
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
47
|
+
// Stale-response guard: if a newer call started while
|
|
48
|
+
// we were awaiting, drop this response silently.
|
|
49
|
+
if (controller.signal.aborted && controllerRef.current !== controller) {
|
|
50
|
+
return result;
|
|
61
51
|
}
|
|
62
52
|
setData(result.data);
|
|
63
53
|
setStatus('success');
|
|
64
54
|
return result;
|
|
65
55
|
}
|
|
66
56
|
catch (err) {
|
|
67
|
-
|
|
68
|
-
|
|
57
|
+
if (err instanceof Error && err.name === 'AbortError') {
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
60
|
+
if (controllerRef.current !== controller) {
|
|
61
|
+
throw err;
|
|
62
|
+
}
|
|
63
|
+
const message = err instanceof Error
|
|
64
|
+
? err.message
|
|
65
|
+
: typeof err === 'string'
|
|
66
|
+
? err
|
|
67
|
+
: 'Unknown fetch error';
|
|
68
|
+
// BC: state stores the message string (what v1.2.5 consumers
|
|
69
|
+
// expect). The thrown value is the full ApiCoreError so
|
|
70
|
+
// callers using `.rejects.toThrow(...)` still get the
|
|
71
|
+
// structured info via `instanceof ApiCoreError`.
|
|
72
|
+
setError(message);
|
|
69
73
|
setStatus('error');
|
|
70
|
-
throw err
|
|
74
|
+
throw err instanceof Error
|
|
75
|
+
? err
|
|
76
|
+
: new ApiCoreError(message, {
|
|
77
|
+
status: 0,
|
|
78
|
+
statusText: 'unknown',
|
|
79
|
+
endpoint: req.endpoint,
|
|
80
|
+
method: ((_b = req.method) !== null && _b !== void 0 ? _b : 'GET'),
|
|
81
|
+
});
|
|
71
82
|
}
|
|
72
83
|
finally {
|
|
73
|
-
context.setWaiting(-1, `-call:${endpoint}`);
|
|
84
|
+
context.setWaiting(-1, `-call:${req.endpoint}`);
|
|
85
|
+
if (controllerRef.current === controller) {
|
|
86
|
+
controllerRef.current = null;
|
|
87
|
+
}
|
|
74
88
|
}
|
|
75
|
-
}, [context]);
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
89
|
+
}, [baseUrl, mergedHeaders, fetchImpl, context]);
|
|
90
|
+
const refetch = useCallback(() => {
|
|
91
|
+
const last = lastRequestRef.current;
|
|
92
|
+
if (last)
|
|
93
|
+
void call(last);
|
|
94
|
+
}, [call]);
|
|
95
|
+
const get = useCallback((endpoint, params) => call({ endpoint, method: 'GET', params }), [call]);
|
|
96
|
+
const post = useCallback((endpoint, body) => call({ endpoint, method: 'POST', body }), [call]);
|
|
97
|
+
const put = useCallback((endpoint, body) => call({ endpoint, method: 'PUT', body }), [call]);
|
|
98
|
+
const deleteFn = useCallback((endpoint) => call({ endpoint, method: 'DELETE' }), [call]);
|
|
81
99
|
return {
|
|
82
100
|
status,
|
|
83
101
|
data,
|
|
@@ -88,7 +106,9 @@ export function useApi(options = {}) {
|
|
|
88
106
|
post,
|
|
89
107
|
put,
|
|
90
108
|
delete: deleteFn,
|
|
91
|
-
remove:
|
|
109
|
+
remove: deleteFn,
|
|
110
|
+
abort,
|
|
111
|
+
refetch,
|
|
92
112
|
};
|
|
93
113
|
}
|
|
94
114
|
//# sourceMappingURL=useApi.js.map
|
package/dist/hooks/useApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useApi.js","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useApi.js","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"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"}
|