mirror of
https://github.com/outline/outline.git
synced 2026-03-13 16:19:12 -05:00
fix: Date/time commands operate differently when hitting space than other menu items
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import { InputRule } from "prosemirror-inputrules";
|
||||
import { Schema } from "prosemirror-model";
|
||||
import { Command } from "prosemirror-state";
|
||||
import {
|
||||
@@ -7,7 +6,6 @@ import {
|
||||
getCurrentTimeAsString,
|
||||
} from "../../utils/date";
|
||||
import Extension from "../lib/Extension";
|
||||
import { EventType } from "../types";
|
||||
|
||||
/**
|
||||
* An editor extension that adds commands to insert the current date and time.
|
||||
@@ -17,30 +15,6 @@ export default class DateTime extends Extension {
|
||||
return "date_time";
|
||||
}
|
||||
|
||||
inputRules() {
|
||||
return [
|
||||
// Note: There is a space at the end of the pattern here otherwise the
|
||||
// /datetime rule can never be matched.
|
||||
// these extra input patterns are needed until the block menu matches
|
||||
// in places other than the start of a line
|
||||
new InputRule(/\/date\s$/, ({ tr }, _match, start, end) => {
|
||||
tr.delete(start, end).insertText(getCurrentDateAsString() + " ");
|
||||
this.editor.events.emit(EventType.SuggestionsMenuClose);
|
||||
return tr;
|
||||
}),
|
||||
new InputRule(/\/time\s$/, ({ tr }, _match, start, end) => {
|
||||
tr.delete(start, end).insertText(getCurrentTimeAsString() + " ");
|
||||
this.editor.events.emit(EventType.SuggestionsMenuClose);
|
||||
return tr;
|
||||
}),
|
||||
new InputRule(/\/datetime\s$/, ({ tr }, _match, start, end) => {
|
||||
tr.delete(start, end).insertText(`${getCurrentDateTimeAsString()} `);
|
||||
this.editor.events.emit(EventType.SuggestionsMenuClose);
|
||||
return tr;
|
||||
}),
|
||||
];
|
||||
}
|
||||
|
||||
commands(_options: { schema: Schema }) {
|
||||
return {
|
||||
date: (): Command => (state, dispatch) => {
|
||||
|
||||
@@ -8,8 +8,6 @@ import { Primitive } from "utility-types";
|
||||
export type PlainTextSerializer = (node: ProsemirrorNode) => string;
|
||||
|
||||
export enum EventType {
|
||||
SuggestionsMenuOpen = "suggestionMenuOpen",
|
||||
SuggestionsMenuClose = "suggestionMenuClose",
|
||||
LinkToolbarOpen = "linkMenuOpen",
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user