Clean up editor drafts for unknown rooms (#12850)
* Clean up editor drafts for unknown rooms and add tests. * lint * Call cleanUpDraftsIfRequired when we know a live update has completed. * Fix test for new call site of draft cleaning * fix test
This commit is contained in:
parent
6e7ddbbae9
commit
e6835fe9d2
4 changed files with 122 additions and 1 deletions
|
@ -143,6 +143,7 @@ import { checkSessionLockFree, getSessionLock } from "../../utils/SessionLock";
|
|||
import { SessionLockStolenView } from "./auth/SessionLockStolenView";
|
||||
import { ConfirmSessionLockTheftView } from "./auth/ConfirmSessionLockTheftView";
|
||||
import { LoginSplashView } from "./auth/LoginSplashView";
|
||||
import { cleanUpDraftsIfRequired } from "../../DraftCleaner";
|
||||
|
||||
// legacy export
|
||||
export { default as Views } from "../../Views";
|
||||
|
@ -1528,6 +1529,9 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
|||
}
|
||||
|
||||
if (state === SyncState.Syncing && prevState === SyncState.Syncing) {
|
||||
// We know we have performabed a live update and known rooms should be in a good state.
|
||||
// Now is a good time to clean up drafts.
|
||||
cleanUpDraftsIfRequired();
|
||||
return;
|
||||
}
|
||||
logger.debug(`MatrixClient sync state => ${state}`);
|
||||
|
|
|
@ -71,6 +71,9 @@ import { IDiff } from "../../../editor/diff";
|
|||
import { getBlobSafeMimeType } from "../../../utils/blobs";
|
||||
import { EMOJI_REGEX } from "../../../HtmlUtils";
|
||||
|
||||
// The prefix used when persisting editor drafts to localstorage.
|
||||
export const EDITOR_STATE_STORAGE_PREFIX = "mx_cider_state_";
|
||||
|
||||
/**
|
||||
* Build the mentions information based on the editor model (and any related events):
|
||||
*
|
||||
|
@ -604,7 +607,7 @@ export class SendMessageComposer extends React.Component<ISendMessageComposerPro
|
|||
}
|
||||
|
||||
private get editorStateKey(): string {
|
||||
let key = `mx_cider_state_${this.props.room.roomId}`;
|
||||
let key = EDITOR_STATE_STORAGE_PREFIX + this.props.room.roomId;
|
||||
if (this.props.relation?.rel_type === THREAD_RELATION_TYPE.name) {
|
||||
key += `_${this.props.relation.event_id}`;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue