@asteby/metacore-runtime-react 20.0.0 → 20.1.0
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/CHANGELOG.md +10 -0
- package/dist/dynamic-kanban.d.ts +2 -2
- package/dist/dynamic-kanban.d.ts.map +1 -1
- package/dist/dynamic-kanban.js +6 -2
- package/package.json +1 -1
- package/src/dynamic-kanban.tsx +8 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @asteby/metacore-runtime-react
|
|
2
2
|
|
|
3
|
+
## 20.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8de09a9: DynamicKanban: traduce el label de cada etapa via i18n (`t(stage.label)` con fallback al valor crudo) — antes mostraba la key cruda (ej. `integration_github.stage.backlog`) en vez de "Backlog". Y da min-height a las lanes para que el scroll horizontal del board quede abajo en vez de flotar cuando las columnas están vacías.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 8de09a9: fix(kanban): el drag-to-move ya no duplica `/me` en el PUT (causaba 404 "No se pudo mover la tarjeta"); el board respeta el ancho del padre (`min-w-0`) y deja de desbordarse horizontalmente.
|
|
12
|
+
|
|
3
13
|
## 20.0.0
|
|
4
14
|
|
|
5
15
|
### Minor Changes
|
package/dist/dynamic-kanban.d.ts
CHANGED
|
@@ -44,8 +44,8 @@ export interface DynamicKanbanProps {
|
|
|
44
44
|
/** Model key as registered on the backend (e.g. "issue"). */
|
|
45
45
|
model: string;
|
|
46
46
|
/**
|
|
47
|
-
* Data endpoint base
|
|
48
|
-
* PUTs to `<base
|
|
47
|
+
* Data endpoint base — the org-scoped LIST endpoint (e.g.
|
|
48
|
+
* `/data/<model>/me`). The optimistic update PUTs to `<base>/<id>`.
|
|
49
49
|
*/
|
|
50
50
|
endpoint?: string;
|
|
51
51
|
/** Bump to force a metadata + records refetch (same contract as DynamicTable). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-kanban.d.ts","sourceRoot":"","sources":["../src/dynamic-kanban.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAqC9B,OAAO,KAAK,EACR,aAAa,EACb,gBAAgB,EAGhB,SAAS,EACT,eAAe,EAClB,MAAM,SAAS,CAAA;AAMhB;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,EAAE,CAejE;AAQD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAE/C,wBAAgB,YAAY,CACxB,OAAO,EAAE,GAAG,EAAE,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,EAAE,GACpB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAepB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,WAAW,EAAE,eAAe,EAAE,GAAG,SAAS,EAC1C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACX,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC3B,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACnB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAYpB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC7B,QAAQ,EAAE,aAAa,EACvB,SAAS,SAAI,GACd;IAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAkBhE;AA8BD,MAAM,WAAW,kBAAkB;IAC/B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kFAAkF;IAClF,cAAc,CAAC,EAAE,GAAG,CAAA;IACpB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,aAAa,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,cAAc,EACd,WAAW,EACX,QAAc,EACd,QAAQ,EACR,QAAQ,GACX,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"dynamic-kanban.d.ts","sourceRoot":"","sources":["../src/dynamic-kanban.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAqC9B,OAAO,KAAK,EACR,aAAa,EACb,gBAAgB,EAGhB,SAAS,EACT,eAAe,EAClB,MAAM,SAAS,CAAA;AAMhB;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,EAAE,CAejE;AAQD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAE/C,wBAAgB,YAAY,CACxB,OAAO,EAAE,GAAG,EAAE,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,EAAE,GACpB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAepB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,WAAW,EAAE,eAAe,EAAE,GAAG,SAAS,EAC1C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACX,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC3B,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACnB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAYpB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC7B,QAAQ,EAAE,aAAa,EACvB,SAAS,SAAI,GACd;IAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAkBhE;AA8BD,MAAM,WAAW,kBAAkB;IAC/B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kFAAkF;IAClF,cAAc,CAAC,EAAE,GAAG,CAAA;IACpB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,aAAa,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,cAAc,EACd,WAAW,EACX,QAAc,EACd,QAAQ,EACR,QAAQ,GACX,EAAE,kBAAkB,qBAmSpB"}
|
package/dist/dynamic-kanban.js
CHANGED
|
@@ -261,7 +261,11 @@ export function DynamicKanban({ model, endpoint, refreshTrigger, onCardClick, pa
|
|
|
261
261
|
setRecords((rs) => rs.map((r) => String(r.id) === cardId ? { ...r, [groupByKey]: destStage } : r));
|
|
262
262
|
try {
|
|
263
263
|
const base = endpoint || `/data/${model}`;
|
|
264
|
-
|
|
264
|
+
// `base` is the org-scoped list endpoint (e.g. `/data/<model>/me`),
|
|
265
|
+
// so the per-record update is just `<base>/<id>` — same convention
|
|
266
|
+
// as DynamicTable/DynamicRelation. Appending an extra `/me` here
|
|
267
|
+
// produced `/data/<model>/me/me/<id>` → 404 on drag-to-move.
|
|
268
|
+
const res = (await api.put(`${base}/${cardId}`, {
|
|
265
269
|
[groupByKey]: destStage,
|
|
266
270
|
}));
|
|
267
271
|
if (res?.data && res.data.success === false) {
|
|
@@ -298,7 +302,7 @@ export function DynamicKanban({ model, endpoint, refreshTrigger, onCardClick, pa
|
|
|
298
302
|
order: Number.MAX_SAFE_INTEGER,
|
|
299
303
|
});
|
|
300
304
|
}
|
|
301
|
-
return (_jsxs(DndContext, { sensors: sensors, onDragStart: onDragStart, onDragEnd: onDragEnd, children: [_jsx("div", { className: "flex gap-4 overflow-x-auto p-1", "data-testid": "kanban-board", children: lanes.map((stage) => {
|
|
305
|
+
return (_jsxs(DndContext, { sensors: sensors, onDragStart: onDragStart, onDragEnd: onDragEnd, children: [_jsx("div", { className: "flex min-w-0 gap-4 overflow-x-auto p-1", "data-testid": "kanban-board", children: lanes.map((stage) => {
|
|
302
306
|
const cards = grouped.get(stage.key) ?? [];
|
|
303
307
|
const droppableAllowed = !activeId ||
|
|
304
308
|
stage.key === activeStage ||
|
package/package.json
CHANGED
package/src/dynamic-kanban.tsx
CHANGED
|
@@ -238,8 +238,8 @@ export interface DynamicKanbanProps {
|
|
|
238
238
|
/** Model key as registered on the backend (e.g. "issue"). */
|
|
239
239
|
model: string
|
|
240
240
|
/**
|
|
241
|
-
* Data endpoint base
|
|
242
|
-
* PUTs to `<base
|
|
241
|
+
* Data endpoint base — the org-scoped LIST endpoint (e.g.
|
|
242
|
+
* `/data/<model>/me`). The optimistic update PUTs to `<base>/<id>`.
|
|
243
243
|
*/
|
|
244
244
|
endpoint?: string
|
|
245
245
|
/** Bump to force a metadata + records refetch (same contract as DynamicTable). */
|
|
@@ -411,7 +411,11 @@ export function DynamicKanban({
|
|
|
411
411
|
|
|
412
412
|
try {
|
|
413
413
|
const base = endpoint || `/data/${model}`
|
|
414
|
-
|
|
414
|
+
// `base` is the org-scoped list endpoint (e.g. `/data/<model>/me`),
|
|
415
|
+
// so the per-record update is just `<base>/<id>` — same convention
|
|
416
|
+
// as DynamicTable/DynamicRelation. Appending an extra `/me` here
|
|
417
|
+
// produced `/data/<model>/me/me/<id>` → 404 on drag-to-move.
|
|
418
|
+
const res = (await api.put(`${base}/${cardId}`, {
|
|
415
419
|
[groupByKey]: destStage,
|
|
416
420
|
})) as { data?: ApiResponse<any> }
|
|
417
421
|
if (res?.data && res.data.success === false) {
|
|
@@ -473,7 +477,7 @@ export function DynamicKanban({
|
|
|
473
477
|
|
|
474
478
|
return (
|
|
475
479
|
<DndContext sensors={sensors} onDragStart={onDragStart} onDragEnd={onDragEnd}>
|
|
476
|
-
<div className="flex gap-4 overflow-x-auto p-1" data-testid="kanban-board">
|
|
480
|
+
<div className="flex min-w-0 gap-4 overflow-x-auto p-1" data-testid="kanban-board">
|
|
477
481
|
{lanes.map((stage) => {
|
|
478
482
|
const cards = grouped.get(stage.key) ?? []
|
|
479
483
|
const droppableAllowed =
|