Skip to content

Commit 29920aa

Browse files
Merge pull request #656 from gadget-inc/mill/exportAutoRichTextField
Export AutoRichText component
2 parents c3139a5 + 3f6198d commit 29920aa

11 files changed

+54
-19
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@gadgetinc/react": patch
3+
---
4+
5+
Made `AutoRichTextInput` available in `@gadgetinc/react/auto/polaris` to be used in AutoForm components
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import React from "react";
2+
import { AutoRichTextInputProps } from "../../../auto/shared/AutoRichTextInputProps.js";
3+
4+
// lazy import for smaller bundle size by default
5+
const LazyLoadedMUIAutoRichTextInput = React.lazy(() => import("./MUIAutoRichTextInput.js"));
6+
7+
export const MUIAutoRichTextInput = (props: AutoRichTextInputProps) => {
8+
return (
9+
<>
10+
<LazyLoadedMUIAutoRichTextInput {...props} />
11+
</>
12+
);
13+
};

packages/react/src/auto/mui/inputs/MUIAutoInput.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React from "react";
22
import { FieldType } from "../../../metadata.js";
33
import { useFieldMetadata } from "../../hooks/useFieldMetadata.js";
4+
import { MUIAutoRichTextInput } from "./LazyLoadedMUIAutoRichTextInput.js";
45
import { MUIAutoBooleanInput } from "./MUIAutoBooleanInput.js";
56
import MUIAutoDateTimePicker from "./MUIAutoDateTimePicker.js";
67
import { MUIAutoEncryptedStringInput } from "./MUIAutoEncryptedStringInput.js";
@@ -14,9 +15,6 @@ import { MUIAutoTextInput } from "./MUIAutoTextInput.js";
1415
import { MUIAutoBelongsToInput } from "./relationships/MUIAutoBelongsToInput.js";
1516
import { MUIAutoHasManyInput } from "./relationships/MUIAutoHasManyInput.js";
1617

17-
// lazy import for smaller bundle size by default
18-
const MUIAutoRichTextInput = React.lazy(() => import("./MUIAutoRichTextInput.js"));
19-
2018
export const MUIAutoInput = (props: { field: string; label?: string }) => {
2119
const { metadata } = useFieldMetadata(props.field);
2220
const config = metadata.configuration;

packages/react/src/auto/mui/inputs/MUIAutoRichTextInput.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import AutoRichTextInput from "../../shared/AutoRichTextInput.js";
44
import "../styles/rich-text.css";
55
import { MUIAutoFormControl } from "./MUIAutoFormControl.js";
66

7+
/**
8+
* Prefer using the LazyLoadedMUIAutoRichTextInput.tsx variant of this component to reduce the bundle size by default.
9+
*/
710
export default function MUIAutoRichTextInput(props: ComponentProps<typeof AutoRichTextInput>) {
811
return (
912
<MUIAutoFormControl {...props}>

packages/react/src/auto/mui/test-index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
export { MUIAutoButton as AutoButton } from "./MUIAutoButton.js";
33
export * from "./MUIAutoForm.js";
44
export { MUIAutoForm as AutoForm } from "./MUIAutoForm.js";
5+
export { MUIAutoRichTextInput as AutoRichTextInput } from "./inputs/LazyLoadedMUIAutoRichTextInput.js";
56
export { MUIAutoBooleanInput as AutoBooleanInput } from "./inputs/MUIAutoBooleanInput.js";
67
export { MUIAutoDateTimePicker as AutoDateTimePicker } from "./inputs/MUIAutoDateTimePicker.js";
78
export { MUIAutoEnumInput as AutoEnumInput } from "./inputs/MUIAutoEnumInput.js";

packages/react/src/auto/polaris/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export { PolarisAutoButton as AutoButton } from "./PolarisAutoButton.js";
22
export { PolarisAutoForm as AutoForm, PolarisAutoFormSkeleton as AutoFormSkeleton } from "./PolarisAutoForm.js";
33
export { PolarisAutoTable as AutoTable } from "./PolarisAutoTable.js";
4+
export { PolarisAutoRichTextInput as AutoRichTextInput } from "./inputs/LazyLoadedPolarisAutoRichTextInput.js";
45
export { PolarisAutoBooleanInput as AutoBooleanInput } from "./inputs/PolarisAutoBooleanInput.js";
56
export { PolarisAutoDateTimePicker as AutoDateTimePicker } from "./inputs/PolarisAutoDateTimePicker.js";
67
export { PolarisAutoEncryptedStringInput as AutoEncryptedStringInput } from "./inputs/PolarisAutoEncryptedStringInput.js";
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import React from "react";
2+
import { AutoRichTextInputProps } from "../../shared/AutoRichTextInputProps.js";
3+
4+
const LazyLoadedPolarisAutoRichTextInput = React.lazy(() => import("./PolarisAutoRichTextInput.js"));
5+
6+
export const PolarisAutoRichTextInput = (props: AutoRichTextInputProps) => {
7+
return (
8+
<>
9+
<LazyLoadedPolarisAutoRichTextInput {...props} />
10+
</>
11+
);
12+
};

packages/react/src/auto/polaris/inputs/PolarisAutoInput.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React from "react";
22
import { FieldType } from "../../../metadata.js";
33
import { useFieldMetadata } from "../../hooks/useFieldMetadata.js";
4+
import { PolarisAutoRichTextInput } from "./LazyLoadedPolarisAutoRichTextInput.js";
45
import { PolarisAutoBooleanInput } from "./PolarisAutoBooleanInput.js";
56
import { PolarisAutoDateTimePicker } from "./PolarisAutoDateTimePicker.js";
67
import { PolarisAutoEncryptedStringInput } from "./PolarisAutoEncryptedStringInput.js";
@@ -15,9 +16,6 @@ import { PolarisAutoTextInput } from "./PolarisAutoTextInput.js";
1516
import { PolarisAutoBelongsToInput } from "./relationships/PolarisAutoBelongsToInput.js";
1617
import { PolarisAutoHasManyInput } from "./relationships/PolarisAutoHasManyInput.js";
1718

18-
// lazy import for smaller bundle size by default
19-
const PolarisAutoRichTextInput = React.lazy(() => import("./PolarisAutoRichTextInput.js"));
20-
2119
export const PolarisAutoInput = (props: { field: string; label?: string }) => {
2220
const { metadata } = useFieldMetadata(props.field);
2321
const config = metadata.configuration;

packages/react/src/auto/polaris/inputs/PolarisAutoRichTextInput.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ import { useStringInputController } from "../../hooks/useStringInputController.j
55
import AutoRichTextInput from "../../shared/AutoRichTextInput.js";
66
import "../styles/rich-text.css";
77

8+
/**
9+
* Prefer using the LazyLoadedMUIAutoRichTextInput.tsx variant of this component to reduce the bundle size by default.
10+
*/
811
export default function PolarisAutoRichTextInput(props: ComponentProps<typeof AutoRichTextInput>) {
912
const controller = useStringInputController({ field: props.field, control: props.control });
1013

packages/react/src/auto/shared/AutoRichTextInput.tsx

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,9 @@
1-
import type { ForwardedRef } from "react";
21
import React, { useEffect, useRef, useState } from "react";
3-
import type { Control } from "react-hook-form";
42
import { useFormContext } from "react-hook-form";
53
import { get } from "../../utils.js";
64
import { useStringInputController } from "../hooks/useStringInputController.js";
75
import { multiref } from "../hooks/utils.js";
8-
9-
interface MDXEditorMethods {
10-
setMarkdown: (markdown: string) => void;
11-
}
12-
13-
interface AutoRichTextInputProps {
14-
field: string;
15-
control?: Control<any>;
16-
editorRef?: ForwardedRef<MDXEditorMethods> | null;
17-
label?: string;
18-
}
6+
import { AutoRichTextInputProps, MDXEditorMethods } from "./AutoRichTextInputProps.js";
197

208
const AutoRichTextInput: React.FC<AutoRichTextInputProps> = (props) => {
219
const { formState } = useFormContext();

0 commit comments

Comments
 (0)