diff --git a/.changeset/pink-sides-swim.md b/.changeset/pink-sides-swim.md new file mode 100644 index 0000000000..4608da0254 --- /dev/null +++ b/.changeset/pink-sides-swim.md @@ -0,0 +1,5 @@ +--- +"@khanacademy/perseus-editor": patch +--- + +Internal: Improved type safety in the WidgetEditor component diff --git a/packages/perseus-editor/src/components/widget-editor.tsx b/packages/perseus-editor/src/components/widget-editor.tsx index 940648e384..2ab0bcbbbb 100644 --- a/packages/perseus-editor/src/components/widget-editor.tsx +++ b/packages/perseus-editor/src/components/widget-editor.tsx @@ -11,7 +11,6 @@ import SectionControlButton from "./section-control-button"; import ToggleableCaret from "./toggleable-caret"; import WidgetEditorSettings from "./widget-editor-settings"; -import type Editor from "../editor"; import type {APIOptions} from "@khanacademy/perseus"; import type {Alignment, PerseusWidget} from "@khanacademy/perseus-core"; @@ -58,7 +57,10 @@ export function _upgradeWidgetInfo(widgetInfo: PerseusWidget): PerseusWidget { // with all available transforms applied, but the results of those // transforms will not be propogated upwards until serialization. class WidgetEditor extends React.Component { - widget: React.RefObject; + widget: React.RefObject<{ + serialize(): unknown; + getSaveWarnings?: () => unknown; + }>; constructor(props: Props) { super(props); @@ -86,7 +88,7 @@ class WidgetEditor extends React.Component { }; _handleWidgetChange = ( - newProps: Props, + newOptions: PerseusWidget["options"], cb: () => unknown, silent: boolean, ) => { @@ -96,7 +98,7 @@ class WidgetEditor extends React.Component { options: { ...this.state.widgetInfo.options, ...(this.widget.current?.serialize() ?? {}), - ...newProps, + ...newOptions, }, } as PerseusWidget; this.props.onChange(newWidgetInfo, cb, silent);