@expensify/react-native-live-markdown 0.1.70 → 0.1.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,87 +1,104 @@
1
1
  export default class InputHistory {
2
2
  currentText = null;
3
3
  timeout = null;
4
- constructor(depth, debounceTime = 150) {
4
+ constructor(depth, debounceTime = 150, startingText = '') {
5
5
  this.depth = depth;
6
- this.history = [];
6
+ this.items = [{
7
+ text: startingText,
8
+ cursorPosition: startingText.length
9
+ }];
7
10
  this.historyIndex = 0;
8
11
  this.debounceTime = debounceTime;
9
12
  }
10
13
  getCurrentItem() {
11
- return this.history[this.historyIndex] || null;
14
+ return this.items[this.historyIndex] || null;
12
15
  }
13
16
  setHistory(newHistory) {
14
- this.history = newHistory.slice(newHistory.length - this.depth);
17
+ this.items = newHistory.slice(newHistory.length - this.depth);
15
18
  this.historyIndex = newHistory.length - 1;
16
19
  }
17
20
  setHistoryIndex(index) {
18
21
  this.historyIndex = index;
19
22
  }
20
23
  clear() {
21
- this.history = [];
24
+ this.items = [];
22
25
  this.historyIndex = 0;
23
26
  }
24
- debouncedAdd(text, cursorPosition) {
25
- this.currentText = text;
27
+ throttledAdd(text, cursorPosition) {
26
28
  if (this.timeout) {
27
29
  clearTimeout(this.timeout);
28
30
  }
31
+ if (this.currentText === null) {
32
+ this.timeout = null;
33
+ this.add(text, cursorPosition);
34
+ } else {
35
+ this.items[this.historyIndex] = {
36
+ text,
37
+ cursorPosition
38
+ };
39
+ }
40
+ this.currentText = text;
29
41
  this.timeout = setTimeout(() => {
30
- if (this.currentText == null) {
31
- return;
32
- }
33
- this.add(this.currentText, cursorPosition);
34
42
  this.currentText = null;
35
43
  }, this.debounceTime);
36
44
  }
45
+ stopTimeout() {
46
+ if (this.timeout) {
47
+ clearTimeout(this.timeout);
48
+ this.timeout = null;
49
+ }
50
+ this.currentText = null;
51
+ }
37
52
  add(text, cursorPosition) {
38
- if (this.history.length > 0) {
39
- const lastItem = this.history[this.history.length - 1];
40
- if (lastItem && text === lastItem.text) {
41
- this.historyIndex = this.history.length - 1;
53
+ if (this.items.length > 0) {
54
+ const currentItem = this.items[this.historyIndex];
55
+ if (currentItem && text === currentItem.text) {
42
56
  return;
43
57
  }
44
58
  }
45
- if (this.historyIndex < this.history.length - 1) {
46
- this.history.splice(this.historyIndex + 1);
59
+ if (this.historyIndex < this.items.length - 1) {
60
+ this.items.splice(this.historyIndex + 1);
61
+ this.historyIndex = this.items.length - 1;
47
62
  }
48
- this.history.push({
63
+ this.items.push({
49
64
  text,
50
65
  cursorPosition
51
66
  });
52
- if (this.history.length > this.depth) {
53
- this.history.shift();
67
+ if (this.items.length > this.depth) {
68
+ this.items.shift();
69
+ } else {
70
+ this.historyIndex += 1;
54
71
  }
55
- this.historyIndex = this.history.length - 1;
56
72
  }
57
73
  undo() {
58
- if (this.currentText !== null && this.timeout) {
59
- clearTimeout(this.timeout);
60
- this.timeout = null;
61
- return this.history[this.historyIndex] || null;
62
- }
63
- if (this.history.length === 0 || this.historyIndex - 1 < 0) {
74
+ this.stopTimeout();
75
+ if (this.items.length === 0 || this.historyIndex - 1 < 0) {
64
76
  return null;
65
77
  }
78
+ const currentHistoryItem = this.items[this.historyIndex];
79
+ const previousHistoryItem = this.items[this.historyIndex - 1];
80
+ const undoItem = previousHistoryItem ? {
81
+ text: previousHistoryItem.text,
82
+ cursorPosition: Math.min(((currentHistoryItem === null || currentHistoryItem === void 0 ? void 0 : currentHistoryItem.cursorPosition) ?? 0) - (((currentHistoryItem === null || currentHistoryItem === void 0 ? void 0 : currentHistoryItem.text) ?? '').length - ((previousHistoryItem === null || previousHistoryItem === void 0 ? void 0 : previousHistoryItem.text) ?? '').length), ((previousHistoryItem === null || previousHistoryItem === void 0 ? void 0 : previousHistoryItem.text) ?? '').length)
83
+ } : null;
66
84
  if (this.historyIndex > 0) {
67
85
  this.historyIndex -= 1;
68
86
  }
69
- return this.history[this.historyIndex] || null;
87
+ return undoItem;
70
88
  }
71
89
  redo() {
72
90
  if (this.currentText !== null && this.timeout) {
73
- clearTimeout(this.timeout);
74
- return this.history[this.history.length - 1] || null;
91
+ this.stopTimeout();
75
92
  }
76
- if (this.history.length === 0 || this.historyIndex + 1 > this.history.length) {
93
+ if (this.items.length === 0 || this.historyIndex + 1 > this.items.length) {
77
94
  return null;
78
95
  }
79
- if (this.historyIndex < this.history.length - 1) {
96
+ if (this.historyIndex < this.items.length - 1) {
80
97
  this.historyIndex += 1;
81
98
  } else {
82
99
  return null;
83
100
  }
84
- return this.history[this.historyIndex] || null;
101
+ return this.items[this.historyIndex] || null;
85
102
  }
86
103
  }
87
104
  //# sourceMappingURL=InputHistory.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["InputHistory","currentText","timeout","constructor","depth","debounceTime","history","historyIndex","getCurrentItem","setHistory","newHistory","slice","length","setHistoryIndex","index","clear","debouncedAdd","text","cursorPosition","clearTimeout","setTimeout","add","lastItem","splice","push","shift","undo","redo"],"sourceRoot":"../../../src","sources":["web/InputHistory.ts"],"mappings":"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"}
1
+ {"version":3,"names":["InputHistory","currentText","timeout","constructor","depth","debounceTime","startingText","items","text","cursorPosition","length","historyIndex","getCurrentItem","setHistory","newHistory","slice","setHistoryIndex","index","clear","throttledAdd","clearTimeout","add","setTimeout","stopTimeout","currentItem","splice","push","shift","undo","currentHistoryItem","previousHistoryItem","undoItem","Math","min","redo"],"sourceRoot":"../../../src","sources":["web/InputHistory.ts"],"mappings":"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"}