@communecter/cocolight-api-client 1.0.144 → 1.0.145
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/dist/cocolight-api-client.browser.js +1 -1
- package/dist/cocolight-api-client.cjs +1 -1
- package/dist/cocolight-api-client.mjs.js +1 -1
- package/dist/cocolight-api-client.vite.mjs.js +1 -1
- package/dist/cocolight-api-client.vite.mjs.js.map +1 -1
- package/package.json +1 -1
- package/src/api/BaseEntity.ts +9 -2
- package/src/api/User.ts +3 -1
package/package.json
CHANGED
package/src/api/BaseEntity.ts
CHANGED
|
@@ -722,7 +722,14 @@ export class BaseEntity<TServerData = any> {
|
|
|
722
722
|
deps: object
|
|
723
723
|
): BaseEntity<any> {
|
|
724
724
|
const instance = new this(parent, {}, deps);
|
|
725
|
-
instance
|
|
725
|
+
// Revival d'une entité fraîche : l'instance est construite avec un draft vide
|
|
726
|
+
// (`new this(parent, {}, deps)`), donc son `_initialDraftData` ne contient que les
|
|
727
|
+
// `defaultFields`. Sans `forceInitialDraftReset`, le draft reçoit tous les champs serveur
|
|
728
|
+
// via `_setData` mais le baseline de diff reste minimal → chaque champ peuplé est vu comme
|
|
729
|
+
// « modifié » et le premier `save()` (même sans édition) repousse toute l'entité
|
|
730
|
+
// (ex. ~35 `UPDATE_PATH_VALUE` pour un POI équipement). On réconcilie donc le baseline avec
|
|
731
|
+
// l'état serveur chargé. Sûr ici : aucune édition utilisateur à préserver sur une instance neuve.
|
|
732
|
+
instance._setData(data as any, { forceInitialDraftReset: true });
|
|
726
733
|
return instance;
|
|
727
734
|
}
|
|
728
735
|
|
|
@@ -3470,7 +3477,7 @@ export class BaseEntity<TServerData = any> {
|
|
|
3470
3477
|
throw new ApiError(`${this.constructor.name} non enregistrée.`, 404);
|
|
3471
3478
|
}
|
|
3472
3479
|
|
|
3473
|
-
this._assertNotEntityType("updateSlug", ["badges", "news", "
|
|
3480
|
+
this._assertNotEntityType("updateSlug", ["badges", "news", "comments", "actions"]);
|
|
3474
3481
|
|
|
3475
3482
|
const type = this.getEntityType() as CheckData["type"];
|
|
3476
3483
|
|
package/src/api/User.ts
CHANGED
|
@@ -266,7 +266,9 @@ export class User extends BaseEntity<UserItemNormalized> {
|
|
|
266
266
|
const Ctor = this as any;
|
|
267
267
|
const instance = new Ctor(parent, data, deps);
|
|
268
268
|
if (data && typeof data === "object" && Object.keys(data).length > 0 && typeof instance._setData === "function") {
|
|
269
|
-
|
|
269
|
+
// Voir BaseEntity.fromServerData : on réconcilie le baseline de diff avec l'état serveur
|
|
270
|
+
// pour qu'une entité fraîchement revifiée ne se croie pas « entièrement modifiée ».
|
|
271
|
+
instance._setData(data as UserItemNormalized, { forceInitialDraftReset: true });
|
|
270
272
|
}
|
|
271
273
|
return instance;
|
|
272
274
|
}
|