chore: Ensure comment data is validated before persisting (#6322)

Fix flash on render of comment create
This commit is contained in:
Tom Moor
2023-12-28 14:46:50 -04:00
committed by GitHub
parent 79764b1e64
commit 428b3c9553
30 changed files with 163 additions and 46 deletions

View File

@@ -157,9 +157,11 @@ export default abstract class Store<T extends Model> {
...options,
});
invariant(res?.data, "Data should be available");
this.addPolicies(res.policies);
return this.add(res.data);
return runInAction(`create#${this.modelName}`, () => {
invariant(res?.data, "Data should be available");
this.addPolicies(res.policies);
return this.add(res.data);
});
} finally {
this.isSaving = false;
}
@@ -182,9 +184,11 @@ export default abstract class Store<T extends Model> {
...options,
});
invariant(res?.data, "Data should be available");
this.addPolicies(res.policies);
return this.add(res.data);
return runInAction(`update#${this.modelName}`, () => {
invariant(res?.data, "Data should be available");
this.addPolicies(res.policies);
return this.add(res.data);
});
} finally {
this.isSaving = false;
}
@@ -229,9 +233,12 @@ export default abstract class Store<T extends Model> {
const res = await client.post(`/${this.apiEndpoint}.info`, {
id,
});
invariant(res?.data, "Data should be available");
this.addPolicies(res.policies);
return this.add(res.data);
return runInAction(`info#${this.modelName}`, () => {
invariant(res?.data, "Data should be available");
this.addPolicies(res.policies);
return this.add(res.data);
});
} catch (err) {
if (err instanceof AuthorizationError || err instanceof NotFoundError) {
this.remove(id);