feat: Allow checkboxes to be toggled without going into 'edit' mode (#1349)

This commit is contained in:
Tom Moor 2020-07-28 20:43:34 -07:00 committed by GitHub
parent 169ad5b025
commit bc4806ac30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 4 deletions

View File

@ -181,7 +181,7 @@ class DataLoader extends React.Component<Props> {
revision={revision}
abilities={abilities}
location={location}
readOnly={!this.isEditing}
readOnly={!this.isEditing || !abilities.update || document.isArchived}
onSearchLink={this.onSearchLink}
onCreateLink={this.onCreateLink}
/>

View File

@ -294,8 +294,16 @@ class DocumentScene extends React.Component<Props> {
onChange = getEditorText => {
this.getEditorText = getEditorText;
this.updateIsDirtyDebounced();
this.autosave();
// document change while read only is presumed to be a checkbox edit,
// in that case we don't delay in saving for a better user experience.
if (this.props.readOnly) {
this.updateIsDirty();
this.onSave({ done: false, autosave: true });
} else {
this.updateIsDirtyDebounced();
this.autosave();
}
};
onChangeTitle = event => {
@ -320,6 +328,7 @@ class DocumentScene extends React.Component<Props> {
revision,
readOnly,
location,
abilities,
auth,
ui,
match,
@ -443,7 +452,8 @@ class DocumentScene extends React.Component<Props> {
onSave={this.onSave}
onPublish={this.onPublish}
onCancel={this.goBack}
readOnly={readOnly || document.isArchived}
readOnly={readOnly}
readOnlyWriteCheckboxes={readOnly && abilities.update}
ui={this.props.ui}
/>
</Flex>

View File

@ -83,6 +83,7 @@ class DocumentEditor extends React.Component<Props> {
placeholder="Start with a title…"
value={!title && readOnly ? "Untitled" : title}
style={startsWithEmojiAndSpace ? { marginLeft: "-1.2em" } : undefined}
readOnlyWriteCheckboxes
readOnly={readOnly}
autoFocus={!title}
maxLength={100}