Factor out cloning to a util and use it everywhere

This commit is contained in:
Travis Ralston 2020-06-22 14:14:43 -06:00
parent 9e3c101172
commit 1fe3e33dbf
9 changed files with 29 additions and 13 deletions

View file

@ -18,7 +18,7 @@ limitations under the License.
import {MatrixClientPeg} from '../../MatrixClientPeg';
import MatrixClientBackedSettingsHandler from "./MatrixClientBackedSettingsHandler";
import {SettingLevel} from "../SettingsStore";
import {objectKeyChanges} from "../../utils/objects";
import {objectClone, objectKeyChanges} from "../../utils/objects";
const BREADCRUMBS_LEGACY_EVENT_TYPE = "im.vector.riot.breadcrumb_rooms";
const BREADCRUMBS_EVENT_TYPE = "im.vector.setting.breadcrumbs";
@ -162,7 +162,7 @@ export default class AccountSettingsHandler extends MatrixClientBackedSettingsHa
const event = cli.getAccountData(eventType);
if (!event || !event.getContent()) return null;
return JSON.parse(JSON.stringify(event.getContent())); // clone to prevent mutation
return objectClone(event.getContent()); // clone to prevent mutation
}
_notifyBreadcrumbsUpdate(event) {

View file

@ -18,7 +18,7 @@ limitations under the License.
import {MatrixClientPeg} from '../../MatrixClientPeg';
import MatrixClientBackedSettingsHandler from "./MatrixClientBackedSettingsHandler";
import {SettingLevel} from "../SettingsStore";
import {objectKeyChanges} from "../../utils/objects";
import {objectClone, objectKeyChanges} from "../../utils/objects";
const ALLOWED_WIDGETS_EVENT_TYPE = "im.vector.setting.allowed_widgets";
@ -137,6 +137,6 @@ export default class RoomAccountSettingsHandler extends MatrixClientBackedSettin
const event = room.getAccountData(eventType);
if (!event || !event.getContent()) return null;
return event.getContent();
return objectClone(event.getContent()); // clone to prevent mutation
}
}

View file

@ -18,7 +18,7 @@ limitations under the License.
import {MatrixClientPeg} from '../../MatrixClientPeg';
import MatrixClientBackedSettingsHandler from "./MatrixClientBackedSettingsHandler";
import {SettingLevel} from "../SettingsStore";
import {objectKeyChanges} from "../../utils/objects";
import {objectClone, objectKeyChanges} from "../../utils/objects";
/**
* Gets and sets settings at the "room" level.
@ -117,6 +117,6 @@ export default class RoomSettingsHandler extends MatrixClientBackedSettingsHandl
const event = room.currentState.getStateEvents(eventType, "");
if (!event || !event.getContent()) return null;
return event.getContent();
return objectClone(event.getContent()); // clone to prevent mutation
}
}