contentoh-components-library 21.6.33 → 21.6.34
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/.claude/launch.json +15 -0
- package/dist/components/organisms/LinkVariantsModal/styles.js +1 -1
- package/dist/components/pages/ProviderProductEdition/index.js +20 -3
- package/dist/components/pages/RetailerProductEdition/index.js +25 -3
- package/package.json +1 -1
- package/src/components/pages/ProviderProductEdition/index.js +13 -0
- package/src/components/pages/RetailerProductEdition/index.js +26 -3
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.0.1",
|
|
3
|
+
"configurations": [
|
|
4
|
+
{
|
|
5
|
+
"name": "creators",
|
|
6
|
+
"runtimeExecutable": "sh",
|
|
7
|
+
"runtimeArgs": [
|
|
8
|
+
"-c",
|
|
9
|
+
"cd /Users/macbook/contentoh/content-creation-frontend && export PATH=/Users/macbook/.nvm/versions/node/v16.20.2/bin:$PATH && exec npm start"
|
|
10
|
+
],
|
|
11
|
+
"port": 3000,
|
|
12
|
+
"autoPort": false
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -82,7 +82,7 @@ var ImageGrid = _styledComponents.default.div(_templateObject12 || (_templateObj
|
|
|
82
82
|
|
|
83
83
|
exports.ImageGrid = ImageGrid;
|
|
84
84
|
|
|
85
|
-
var Direction = _styledComponents.default.div(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-items: stretch;\n gap: 10px;\n margin-bottom: 12px;\n\n .lado {\n flex: 1 1 0;\n min-width: 0;\n padding: 10px 12px;\n border: 1px solid ", ";\n border-radius: 6px;\n background-color: ", ";\n }\n\n /* El padre es el que manda en esta pantalla, y se marca como tal. */\n .lado:first-of-type {\n border-color: rgba(", ", 0.45);\n background-color: rgba(", ", 0.05);\n }\n\n .rol {\n display: block;\n font-family: ", ";\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n color: ", ";\n }\n\n strong {\n display: block;\n margin-top: 2px;\n font-family: ", ";\n font-size: 13px;\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* Cu\xE1l de los dos es la ficha abierta: sin esto,
|
|
85
|
+
var Direction = _styledComponents.default.div(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-items: stretch;\n gap: 10px;\n margin-bottom: 12px;\n\n .lado {\n flex: 1 1 0;\n min-width: 0;\n padding: 10px 12px;\n border: 1px solid ", ";\n border-radius: 6px;\n background-color: ", ";\n }\n\n /* El padre es el que manda en esta pantalla, y se marca como tal. */\n .lado:first-of-type {\n border-color: rgba(", ", 0.45);\n background-color: rgba(", ", 0.05);\n }\n\n .rol {\n display: block;\n font-family: ", ";\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n color: ", ";\n }\n\n strong {\n display: block;\n margin-top: 2px;\n font-family: ", ";\n font-size: 13px;\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* Cu\xE1l de los dos es la ficha abierta: sin esto, al relacionar un padre no se\n sabe de qu\xE9 lado est\xE1 uno. */\n .actual {\n display: block;\n margin-top: 2px;\n font-size: 11px;\n font-style: italic;\n color: ", ";\n }\n\n .flecha {\n align-self: center;\n flex-shrink: 0;\n font-size: 20px;\n line-height: 1;\n color: ", ";\n }\n"])), _variables.GlobalColors.s2, _variables.GlobalColors.white, PINK_RGB, PINK_RGB, _variables.FontFamily.Raleway_600, PINK, _variables.FontFamily.Raleway_600, _variables.GlobalColors.deep_gray, _variables.GlobalColors.gray, PINK);
|
|
86
86
|
|
|
87
87
|
exports.Direction = Direction;
|
|
88
88
|
|
|
@@ -315,7 +315,20 @@ var ProviderProductEditionView = function ProviderProductEditionView(_ref) {
|
|
|
315
315
|
};
|
|
316
316
|
|
|
317
317
|
setProductData();
|
|
318
|
-
}, []);
|
|
318
|
+
}, []);
|
|
319
|
+
/*
|
|
320
|
+
Contador que fuerza a releer los servicios tras ligar.
|
|
321
|
+
El efecto de abajo depende de estatus, versión y cadena activa, y ligar no
|
|
322
|
+
cambia ninguno: cambia la HERENCIA de cada campo en el servidor. Al planchar,
|
|
323
|
+
lo que era propio pasa a heredado, y sin releer los chips siguen diciendo lo
|
|
324
|
+
de antes hasta que alguien cierra y reabre el producto.
|
|
325
|
+
*/
|
|
326
|
+
|
|
327
|
+
var _useState31 = (0, _react.useState)(0),
|
|
328
|
+
_useState32 = (0, _slicedToArray2.default)(_useState31, 2),
|
|
329
|
+
linkNonce = _useState32[0],
|
|
330
|
+
setLinkNonce = _useState32[1]; // Setter de los servicios y porcentages del producto
|
|
331
|
+
|
|
319
332
|
|
|
320
333
|
(0, _react.useEffect)(function () {
|
|
321
334
|
if (!state.product || !state.active_retailer) return;
|
|
@@ -481,7 +494,7 @@ var ProviderProductEditionView = function ProviderProductEditionView(_ref) {
|
|
|
481
494
|
}();
|
|
482
495
|
|
|
483
496
|
fetchData();
|
|
484
|
-
}, [(_state$product2 = state.product) === null || _state$product2 === void 0 ? void 0 : _state$product2.datasheet_status, (_state$product3 = state.product) === null || _state$product3 === void 0 ? void 0 : _state$product3.description_status, (_state$product4 = state.product) === null || _state$product4 === void 0 ? void 0 : _state$product4.images_status, (_state$product5 = state.product) === null || _state$product5 === void 0 ? void 0 : _state$product5.status, (_state$product6 = state.product) === null || _state$product6 === void 0 ? void 0 : _state$product6.percentages, (_state$product7 = state.product) === null || _state$product7 === void 0 ? void 0 : _state$product7.version, state.active_retailer, token]); // Actualizador de campos del ui para que coincidan con el retailer activo
|
|
497
|
+
}, [(_state$product2 = state.product) === null || _state$product2 === void 0 ? void 0 : _state$product2.datasheet_status, (_state$product3 = state.product) === null || _state$product3 === void 0 ? void 0 : _state$product3.description_status, (_state$product4 = state.product) === null || _state$product4 === void 0 ? void 0 : _state$product4.images_status, (_state$product5 = state.product) === null || _state$product5 === void 0 ? void 0 : _state$product5.status, (_state$product6 = state.product) === null || _state$product6 === void 0 ? void 0 : _state$product6.percentages, (_state$product7 = state.product) === null || _state$product7 === void 0 ? void 0 : _state$product7.version, state.active_retailer, token, linkNonce]); // Actualizador de campos del ui para que coincidan con el retailer activo
|
|
485
498
|
|
|
486
499
|
(0, _react.useEffect)(function () {
|
|
487
500
|
if (!state.active_retailer) return;
|
|
@@ -1187,7 +1200,11 @@ var ProviderProductEditionView = function ProviderProductEditionView(_ref) {
|
|
|
1187
1200
|
payload: updatedProduct
|
|
1188
1201
|
}); // La lista cacheada quedó vieja: se descarta para que vuelva a pedirse.
|
|
1189
1202
|
|
|
1190
|
-
setFamily(null); // Y
|
|
1203
|
+
setFamily(null); // Y los servicios, para que los chips reflejen la herencia recién creada.
|
|
1204
|
+
|
|
1205
|
+
setLinkNonce(function (n) {
|
|
1206
|
+
return n + 1;
|
|
1207
|
+
}); // Y en sessionStorage, que es de donde sale el producto al recargar. Sin
|
|
1191
1208
|
// esto el arreglo dura hasta el siguiente F5 y vuelve el contador viejo,
|
|
1192
1209
|
// que es justo el síntoma que se reportó.
|
|
1193
1210
|
|
|
@@ -1233,8 +1233,9 @@ var RetailerProductEditionView = function RetailerProductEditionView(_ref) {
|
|
|
1233
1233
|
*/
|
|
1234
1234
|
|
|
1235
1235
|
/*
|
|
1236
|
-
Refresca tras ligar, sin recargar: el producto sale de
|
|
1237
|
-
un
|
|
1236
|
+
Refresca tras ligar, sin recargar la página: el producto sale de
|
|
1237
|
+
sessionStorage, así que un F5 devolvería el mismo objeto y el contador
|
|
1238
|
+
seguiría igual.
|
|
1238
1239
|
*/
|
|
1239
1240
|
|
|
1240
1241
|
var handleOnLinkedVariants = function handleOnLinkedVariants(result) {
|
|
@@ -1251,13 +1252,34 @@ var RetailerProductEditionView = function RetailerProductEditionView(_ref) {
|
|
|
1251
1252
|
type: "SET_PRODUCT",
|
|
1252
1253
|
payload: updatedProduct
|
|
1253
1254
|
});
|
|
1254
|
-
setFamily(null);
|
|
1255
1255
|
|
|
1256
1256
|
try {
|
|
1257
1257
|
sessionStorage.setItem("productSelected", JSON.stringify(updatedProduct));
|
|
1258
1258
|
} catch (error) {
|
|
1259
1259
|
console.error("linkVariants/sessionStorage: ", error);
|
|
1260
1260
|
}
|
|
1261
|
+
/*
|
|
1262
|
+
Volver a preguntar, no vaciar.
|
|
1263
|
+
Antes esto hacía `setFamily(null)` para invalidar la caché, y en esta
|
|
1264
|
+
pantalla eso tenía el efecto contrario al buscado: el bloque de parentesco
|
|
1265
|
+
se decide con `esHijoDeOtro`, que sale de `family`, no del producto. Con
|
|
1266
|
+
`family` en null el bloque desaparecía, así que después de ligar la
|
|
1267
|
+
pantalla se quedaba SIN ninguna señal de que el producto ya tenía padre
|
|
1268
|
+
—justo lo que el usuario acababa de hacer—.
|
|
1269
|
+
*/
|
|
1270
|
+
|
|
1271
|
+
|
|
1272
|
+
loadFamily(true);
|
|
1273
|
+
/*
|
|
1274
|
+
Y se recargan los servicios, porque ligar cambia la herencia de cada campo
|
|
1275
|
+
en el servidor: al planchar, lo que era propio pasa a heredado y los chips
|
|
1276
|
+
tienen que decirlo. Sin esto la ficha sigue mostrando el estado anterior
|
|
1277
|
+
hasta que alguien cierra y vuelve a abrir el producto.
|
|
1278
|
+
Sin `enableLoading` para no parpadear el esqueleto encima de una pantalla
|
|
1279
|
+
que ya está pintada.
|
|
1280
|
+
*/
|
|
1281
|
+
|
|
1282
|
+
loadData(false);
|
|
1261
1283
|
};
|
|
1262
1284
|
/*
|
|
1263
1285
|
Acción "Volver a heredar" de los chips. Repinta en sitio con lo que devuelve
|
package/package.json
CHANGED
|
@@ -207,6 +207,16 @@ const ProviderProductEditionView = ({
|
|
|
207
207
|
setProductData();
|
|
208
208
|
}, []);
|
|
209
209
|
|
|
210
|
+
/*
|
|
211
|
+
Contador que fuerza a releer los servicios tras ligar.
|
|
212
|
+
|
|
213
|
+
El efecto de abajo depende de estatus, versión y cadena activa, y ligar no
|
|
214
|
+
cambia ninguno: cambia la HERENCIA de cada campo en el servidor. Al planchar,
|
|
215
|
+
lo que era propio pasa a heredado, y sin releer los chips siguen diciendo lo
|
|
216
|
+
de antes hasta que alguien cierra y reabre el producto.
|
|
217
|
+
*/
|
|
218
|
+
const [linkNonce, setLinkNonce] = useState(0);
|
|
219
|
+
|
|
210
220
|
// Setter de los servicios y porcentages del producto
|
|
211
221
|
useEffect(() => {
|
|
212
222
|
if (!state.product || !state.active_retailer) return;
|
|
@@ -363,6 +373,7 @@ const ProviderProductEditionView = ({
|
|
|
363
373
|
state.product?.version,
|
|
364
374
|
state.active_retailer,
|
|
365
375
|
token,
|
|
376
|
+
linkNonce,
|
|
366
377
|
]);
|
|
367
378
|
|
|
368
379
|
// Actualizador de campos del ui para que coincidan con el retailer activo
|
|
@@ -941,6 +952,8 @@ const ProviderProductEditionView = ({
|
|
|
941
952
|
dispatch({ type: "SET_PRODUCT", payload: updatedProduct });
|
|
942
953
|
// La lista cacheada quedó vieja: se descarta para que vuelva a pedirse.
|
|
943
954
|
setFamily(null);
|
|
955
|
+
// Y los servicios, para que los chips reflejen la herencia recién creada.
|
|
956
|
+
setLinkNonce((n) => n + 1);
|
|
944
957
|
|
|
945
958
|
// Y en sessionStorage, que es de donde sale el producto al recargar. Sin
|
|
946
959
|
// esto el arreglo dura hasta el siguiente F5 y vuelve el contador viejo,
|
|
@@ -849,8 +849,9 @@ const RetailerProductEditionView = ({
|
|
|
849
849
|
*/
|
|
850
850
|
|
|
851
851
|
/*
|
|
852
|
-
Refresca tras ligar, sin recargar: el producto sale de
|
|
853
|
-
un
|
|
852
|
+
Refresca tras ligar, sin recargar la página: el producto sale de
|
|
853
|
+
sessionStorage, así que un F5 devolvería el mismo objeto y el contador
|
|
854
|
+
seguiría igual.
|
|
854
855
|
*/
|
|
855
856
|
const handleOnLinkedVariants = (result) => {
|
|
856
857
|
if (!result) return;
|
|
@@ -869,13 +870,35 @@ const RetailerProductEditionView = ({
|
|
|
869
870
|
};
|
|
870
871
|
|
|
871
872
|
dispatch({ type: "SET_PRODUCT", payload: updatedProduct });
|
|
872
|
-
setFamily(null);
|
|
873
873
|
|
|
874
874
|
try {
|
|
875
875
|
sessionStorage.setItem("productSelected", JSON.stringify(updatedProduct));
|
|
876
876
|
} catch (error) {
|
|
877
877
|
console.error("linkVariants/sessionStorage: ", error);
|
|
878
878
|
}
|
|
879
|
+
|
|
880
|
+
/*
|
|
881
|
+
Volver a preguntar, no vaciar.
|
|
882
|
+
|
|
883
|
+
Antes esto hacía `setFamily(null)` para invalidar la caché, y en esta
|
|
884
|
+
pantalla eso tenía el efecto contrario al buscado: el bloque de parentesco
|
|
885
|
+
se decide con `esHijoDeOtro`, que sale de `family`, no del producto. Con
|
|
886
|
+
`family` en null el bloque desaparecía, así que después de ligar la
|
|
887
|
+
pantalla se quedaba SIN ninguna señal de que el producto ya tenía padre
|
|
888
|
+
—justo lo que el usuario acababa de hacer—.
|
|
889
|
+
*/
|
|
890
|
+
loadFamily(true);
|
|
891
|
+
|
|
892
|
+
/*
|
|
893
|
+
Y se recargan los servicios, porque ligar cambia la herencia de cada campo
|
|
894
|
+
en el servidor: al planchar, lo que era propio pasa a heredado y los chips
|
|
895
|
+
tienen que decirlo. Sin esto la ficha sigue mostrando el estado anterior
|
|
896
|
+
hasta que alguien cierra y vuelve a abrir el producto.
|
|
897
|
+
|
|
898
|
+
Sin `enableLoading` para no parpadear el esqueleto encima de una pantalla
|
|
899
|
+
que ya está pintada.
|
|
900
|
+
*/
|
|
901
|
+
loadData(false);
|
|
879
902
|
};
|
|
880
903
|
|
|
881
904
|
/*
|