smartrte-react 0.1.3 → 0.1.4

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.
@@ -108,9 +108,7 @@ export function ClassicEditor({ value, onChange, placeholder = "Type here…", m
108
108
  range = document.createRange();
109
109
  range.selectNodeContents(host);
110
110
  range.collapse(false);
111
- sel = window.getSelection();
112
- sel?.removeAllRanges();
113
- sel?.addRange(range);
111
+ safeSelectRange(range);
114
112
  }
115
113
  const img = document.createElement("img");
116
114
  img.src = src;
@@ -127,15 +125,26 @@ export function ClassicEditor({ value, onChange, placeholder = "Type here…", m
127
125
  const r = document.createRange();
128
126
  r.setStartAfter(img);
129
127
  r.collapse(true);
130
- const s = window.getSelection();
131
- s?.removeAllRanges();
132
- s?.addRange(r);
128
+ safeSelectRange(r);
133
129
  setSelectedImage(img);
134
130
  scheduleImageOverlay();
135
131
  handleInput();
136
132
  }
137
133
  catch { }
138
134
  };
135
+ const safeSelectRange = (range) => {
136
+ try {
137
+ if (!range)
138
+ return;
139
+ const start = range.startContainer;
140
+ if (!start || !start.isConnected)
141
+ return;
142
+ const sel = window.getSelection();
143
+ sel?.removeAllRanges();
144
+ sel?.addRange(range);
145
+ }
146
+ catch { }
147
+ };
139
148
  const insertFormulaAtSelection = (tex) => {
140
149
  if (!tex)
141
150
  return;
@@ -150,9 +159,7 @@ export function ClassicEditor({ value, onChange, placeholder = "Type here…", m
150
159
  range = document.createRange();
151
160
  range.selectNodeContents(host);
152
161
  range.collapse(false);
153
- sel = window.getSelection();
154
- sel?.removeAllRanges();
155
- sel?.addRange(range);
162
+ safeSelectRange(range);
156
163
  }
157
164
  const span = document.createElement("span");
158
165
  span.setAttribute("data-formula", tex);
@@ -176,9 +183,7 @@ export function ClassicEditor({ value, onChange, placeholder = "Type here…", m
176
183
  const r = document.createRange();
177
184
  r.setStartAfter(span);
178
185
  r.collapse(true);
179
- const s = window.getSelection();
180
- s?.removeAllRanges();
181
- s?.addRange(r);
186
+ safeSelectRange(r);
182
187
  handleInput();
183
188
  }
184
189
  catch { }
@@ -1003,7 +1008,7 @@ export function ClassicEditor({ value, onChange, placeholder = "Type here…", m
1003
1008
  else {
1004
1009
  setTableMenu(null);
1005
1010
  }
1006
- }, dangerouslySetInnerHTML: { __html: value || "" } }), selectedImage && imageOverlay && (_jsxs("div", { style: {
1011
+ } }), selectedImage && imageOverlay && (_jsxs("div", { style: {
1007
1012
  position: "fixed",
1008
1013
  left: imageOverlay.left,
1009
1014
  top: imageOverlay.top,