@dxos/react-ui-editor 0.4.4-next.e0df51e → 0.4.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.
@@ -11,7 +11,7 @@ import { EditorState as EditorState2 } from "@codemirror/state";
11
11
  import { EditorView as EditorView15 } from "@codemirror/view";
12
12
  import { useFocusableGroup } from "@fluentui/react-tabster";
13
13
  import defaultsDeep2 from "lodash.defaultsdeep";
14
- import React, { forwardRef, useCallback, useEffect as useEffect2, useImperativeHandle, useRef, useState as useState2 } from "react";
14
+ import React, { forwardRef, useCallback, useEffect as useEffect2, useImperativeHandle, useRef, useState as useState2, useMemo as useMemo2 } from "react";
15
15
  import { log as log3 } from "@dxos/log";
16
16
  import { useThemeContext } from "@dxos/react-ui";
17
17
  import { focusRing } from "@dxos/react-ui-theme";
@@ -3945,7 +3945,7 @@ var BaseTextEditor = /* @__PURE__ */ forwardRef(({ model, readonly, autoFocus, s
3945
3945
  EditorView15.exceptionSink.of((err) => {
3946
3946
  log3.catch(err, void 0, {
3947
3947
  F: __dxlog_file4,
3948
- L: 112,
3948
+ L: 113,
3949
3949
  S: void 0,
3950
3950
  C: (f, a) => f(...a)
3951
3951
  });
@@ -4003,6 +4003,7 @@ var BaseTextEditor = /* @__PURE__ */ forwardRef(({ model, readonly, autoFocus, s
4003
4003
  };
4004
4004
  }, [
4005
4005
  rootRef,
4006
+ extensions,
4006
4007
  model,
4007
4008
  readonly,
4008
4009
  themeMode
@@ -4028,38 +4029,49 @@ var BaseTextEditor = /* @__PURE__ */ forwardRef(({ model, readonly, autoFocus, s
4028
4029
  ...tabsterDOMAttribute
4029
4030
  });
4030
4031
  });
4031
- var TextEditor = /* @__PURE__ */ forwardRef(({ readonly, placeholder: placeholder3, lineWrapping, theme = textTheme, slots, extensions = [], ...props }, forwardedRef) => {
4032
+ var TextEditor = /* @__PURE__ */ forwardRef(({ readonly, placeholder: placeholder3, lineWrapping, theme = textTheme, slots, extensions: _extensions, ...props }, forwardedRef) => {
4032
4033
  const { themeMode } = useThemeContext();
4033
4034
  const updatedSlots = defaultsDeep2({}, slots, defaultTextSlots);
4035
+ const extensions = useMemo2(() => [
4036
+ createBasicBundle({
4037
+ themeMode,
4038
+ placeholder: placeholder3,
4039
+ lineWrapping
4040
+ }),
4041
+ ..._extensions ?? []
4042
+ ], [
4043
+ themeMode,
4044
+ placeholder3,
4045
+ lineWrapping,
4046
+ _extensions
4047
+ ]);
4034
4048
  return /* @__PURE__ */ React.createElement(BaseTextEditor, {
4035
4049
  ref: forwardedRef,
4036
4050
  readonly,
4037
- extensions: [
4038
- createBasicBundle({
4039
- themeMode,
4040
- placeholder: placeholder3,
4041
- lineWrapping
4042
- }),
4043
- ...extensions
4044
- ],
4051
+ extensions,
4045
4052
  theme,
4046
4053
  slots: updatedSlots,
4047
4054
  ...props
4048
4055
  });
4049
4056
  });
4050
- var MarkdownEditor = /* @__PURE__ */ forwardRef(({ readonly, placeholder: placeholder3, theme = markdownTheme, slots, extensions = [], ...props }, forwardedRef) => {
4057
+ var MarkdownEditor = /* @__PURE__ */ forwardRef(({ readonly, placeholder: placeholder3, theme = markdownTheme, slots, extensions: _extensions, ...props }, forwardedRef) => {
4051
4058
  const { themeMode } = useThemeContext();
4052
4059
  const updatedSlots = defaultsDeep2({}, slots, defaultMarkdownSlots);
4060
+ const extensions = useMemo2(() => [
4061
+ createMarkdownExtensions({
4062
+ themeMode,
4063
+ placeholder: placeholder3
4064
+ }),
4065
+ ..._extensions ?? []
4066
+ ], [
4067
+ themeMode,
4068
+ placeholder3,
4069
+ _extensions
4070
+ ]);
4053
4071
  return /* @__PURE__ */ React.createElement(BaseTextEditor, {
4054
4072
  ref: forwardedRef,
4055
4073
  readonly,
4056
- extensions: [
4057
- createMarkdownExtensions({
4058
- themeMode,
4059
- placeholder: placeholder3
4060
- }),
4061
- ...extensions
4062
- ],
4074
+ extensions,
4063
4075
  theme,
4064
4076
  slots: updatedSlots,
4065
4077
  ...props
@@ -4533,6 +4545,7 @@ var useTextEditor = ({ autoFocus, scrollTo, debug, doc, selection, extensions }
4533
4545
  const [view, setView] = useState4();
4534
4546
  const parentRef = useRef3(null);
4535
4547
  useEffect3(() => {
4548
+ let view2;
4536
4549
  if (parentRef.current) {
4537
4550
  const state = EditorState3.create({
4538
4551
  doc,
@@ -4542,7 +4555,7 @@ var useTextEditor = ({ autoFocus, scrollTo, debug, doc, selection, extensions }
4542
4555
  EditorView16.exceptionSink.of((err) => {
4543
4556
  log5.catch(err, void 0, {
4544
4557
  F: __dxlog_file6,
4545
- L: 57,
4558
+ L: 60,
4546
4559
  S: void 0,
4547
4560
  C: (f, a) => f(...a)
4548
4561
  });
@@ -4553,7 +4566,7 @@ var useTextEditor = ({ autoFocus, scrollTo, debug, doc, selection, extensions }
4553
4566
  })
4554
4567
  ].filter(isNotFalsy5)
4555
4568
  });
4556
- const view2 = new EditorView16({
4569
+ view2 = new EditorView16({
4557
4570
  parent: parentRef.current,
4558
4571
  scrollTo,
4559
4572
  state,
@@ -4569,10 +4582,11 @@ var useTextEditor = ({ autoFocus, scrollTo, debug, doc, selection, extensions }
4569
4582
  setView(view2);
4570
4583
  }
4571
4584
  return () => {
4572
- view?.destroy();
4585
+ view2?.destroy();
4573
4586
  };
4574
4587
  }, [
4575
- parentRef
4588
+ parentRef,
4589
+ extensions
4576
4590
  ]);
4577
4591
  useEffect3(() => {
4578
4592
  if (view) {
@@ -4630,13 +4644,13 @@ var createThemeExtensions = ({ theme, themeMode, slots } = {}) => {
4630
4644
 
4631
4645
  // packages/ui/react-ui-editor/src/hooks/useTextModel.ts
4632
4646
  import get4 from "lodash.get";
4633
- import { useState as useState5, useMemo as useMemo2 } from "react";
4647
+ import { useState as useState5, useMemo as useMemo3 } from "react";
4634
4648
  import { generateName } from "@dxos/display-name";
4635
4649
  import { getRawDoc } from "@dxos/echo-schema";
4636
4650
  import { invariant as invariant3 } from "@dxos/invariant";
4637
4651
  import { isAutomergeObject } from "@dxos/react-client/echo";
4638
4652
  var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/useTextModel.ts";
4639
- var useTextModel = (props) => useMemo2(() => createModel(props), Object.values(props));
4653
+ var useTextModel = (props) => useMemo3(() => createModel(props), Object.values(props));
4640
4654
  var useInMemoryTextModel = ({ id, defaultContent }) => {
4641
4655
  const [content, setContent] = useState5(defaultContent ?? "");
4642
4656
  return {