Skip to content

Commit

Permalink
Export AutoRichText component
Browse files Browse the repository at this point in the history
  • Loading branch information
MillanWangGadget committed Sep 26, 2024
1 parent b30a841 commit 3f6198d
Show file tree
Hide file tree
Showing 11 changed files with 54 additions and 19 deletions.
5 changes: 5 additions & 0 deletions packages/react/.changeset/shiny-fireants-learn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@gadgetinc/react": patch
---

Made `AutoRichTextInput` available in `@gadgetinc/react/auto/polaris` to be used in AutoForm components
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import React from "react";
import { AutoRichTextInputProps } from "../../../auto/shared/AutoRichTextInputProps.js";

// lazy import for smaller bundle size by default
const LazyLoadedMUIAutoRichTextInput = React.lazy(() => import("./MUIAutoRichTextInput.js"));

export const MUIAutoRichTextInput = (props: AutoRichTextInputProps) => {
return (
<>
<LazyLoadedMUIAutoRichTextInput {...props} />
</>
);
};
4 changes: 1 addition & 3 deletions packages/react/src/auto/mui/inputs/MUIAutoInput.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from "react";
import { FieldType } from "../../../metadata.js";
import { useFieldMetadata } from "../../hooks/useFieldMetadata.js";
import { MUIAutoRichTextInput } from "./LazyLoadedMUIAutoRichTextInput.js";
import { MUIAutoBooleanInput } from "./MUIAutoBooleanInput.js";
import MUIAutoDateTimePicker from "./MUIAutoDateTimePicker.js";
import { MUIAutoEncryptedStringInput } from "./MUIAutoEncryptedStringInput.js";
Expand All @@ -14,9 +15,6 @@ import { MUIAutoTextInput } from "./MUIAutoTextInput.js";
import { MUIAutoBelongsToInput } from "./relationships/MUIAutoBelongsToInput.js";
import { MUIAutoHasManyInput } from "./relationships/MUIAutoHasManyInput.js";

// lazy import for smaller bundle size by default
const MUIAutoRichTextInput = React.lazy(() => import("./MUIAutoRichTextInput.js"));

export const MUIAutoInput = (props: { field: string; label?: string }) => {
const { metadata } = useFieldMetadata(props.field);
const config = metadata.configuration;
Expand Down
3 changes: 3 additions & 0 deletions packages/react/src/auto/mui/inputs/MUIAutoRichTextInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ import AutoRichTextInput from "../../shared/AutoRichTextInput.js";
import "../styles/rich-text.css";
import { MUIAutoFormControl } from "./MUIAutoFormControl.js";

/**
* Prefer using the LazyLoadedMUIAutoRichTextInput.tsx variant of this component to reduce the bundle size by default.
*/
export default function MUIAutoRichTextInput(props: ComponentProps<typeof AutoRichTextInput>) {
return (
<MUIAutoFormControl {...props}>
Expand Down
1 change: 1 addition & 0 deletions packages/react/src/auto/mui/test-index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
export { MUIAutoButton as AutoButton } from "./MUIAutoButton.js";
export * from "./MUIAutoForm.js";
export { MUIAutoForm as AutoForm } from "./MUIAutoForm.js";
export { MUIAutoRichTextInput as AutoRichTextInput } from "./inputs/LazyLoadedMUIAutoRichTextInput.js";
export { MUIAutoBooleanInput as AutoBooleanInput } from "./inputs/MUIAutoBooleanInput.js";
export { MUIAutoDateTimePicker as AutoDateTimePicker } from "./inputs/MUIAutoDateTimePicker.js";
export { MUIAutoEnumInput as AutoEnumInput } from "./inputs/MUIAutoEnumInput.js";
Expand Down
1 change: 1 addition & 0 deletions packages/react/src/auto/polaris/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export { PolarisAutoButton as AutoButton } from "./PolarisAutoButton.js";
export { PolarisAutoForm as AutoForm, PolarisAutoFormSkeleton as AutoFormSkeleton } from "./PolarisAutoForm.js";
export { PolarisAutoTable as AutoTable } from "./PolarisAutoTable.js";
export { PolarisAutoRichTextInput as AutoRichTextInput } from "./inputs/LazyLoadedPolarisAutoRichTextInput.js";
export { PolarisAutoBooleanInput as AutoBooleanInput } from "./inputs/PolarisAutoBooleanInput.js";
export { PolarisAutoDateTimePicker as AutoDateTimePicker } from "./inputs/PolarisAutoDateTimePicker.js";
export { PolarisAutoEncryptedStringInput as AutoEncryptedStringInput } from "./inputs/PolarisAutoEncryptedStringInput.js";
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import React from "react";
import { AutoRichTextInputProps } from "../../shared/AutoRichTextInputProps.js";

const LazyLoadedPolarisAutoRichTextInput = React.lazy(() => import("./PolarisAutoRichTextInput.js"));

export const PolarisAutoRichTextInput = (props: AutoRichTextInputProps) => {
return (
<>
<LazyLoadedPolarisAutoRichTextInput {...props} />
</>
);
};
4 changes: 1 addition & 3 deletions packages/react/src/auto/polaris/inputs/PolarisAutoInput.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from "react";
import { FieldType } from "../../../metadata.js";
import { useFieldMetadata } from "../../hooks/useFieldMetadata.js";
import { PolarisAutoRichTextInput } from "./LazyLoadedPolarisAutoRichTextInput.js";
import { PolarisAutoBooleanInput } from "./PolarisAutoBooleanInput.js";
import { PolarisAutoDateTimePicker } from "./PolarisAutoDateTimePicker.js";
import { PolarisAutoEncryptedStringInput } from "./PolarisAutoEncryptedStringInput.js";
Expand All @@ -15,9 +16,6 @@ import { PolarisAutoTextInput } from "./PolarisAutoTextInput.js";
import { PolarisAutoBelongsToInput } from "./relationships/PolarisAutoBelongsToInput.js";
import { PolarisAutoHasManyInput } from "./relationships/PolarisAutoHasManyInput.js";

// lazy import for smaller bundle size by default
const PolarisAutoRichTextInput = React.lazy(() => import("./PolarisAutoRichTextInput.js"));

export const PolarisAutoInput = (props: { field: string; label?: string }) => {
const { metadata } = useFieldMetadata(props.field);
const config = metadata.configuration;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import { useStringInputController } from "../../hooks/useStringInputController.j
import AutoRichTextInput from "../../shared/AutoRichTextInput.js";
import "../styles/rich-text.css";

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

Expand Down
14 changes: 1 addition & 13 deletions packages/react/src/auto/shared/AutoRichTextInput.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,9 @@
import type { ForwardedRef } from "react";
import React, { useEffect, useRef, useState } from "react";
import type { Control } from "react-hook-form";
import { useFormContext } from "react-hook-form";
import { get } from "../../utils.js";
import { useStringInputController } from "../hooks/useStringInputController.js";
import { multiref } from "../hooks/utils.js";

interface MDXEditorMethods {
setMarkdown: (markdown: string) => void;
}

interface AutoRichTextInputProps {
field: string;
control?: Control<any>;
editorRef?: ForwardedRef<MDXEditorMethods> | null;
label?: string;
}
import { AutoRichTextInputProps, MDXEditorMethods } from "./AutoRichTextInputProps.js";

const AutoRichTextInput: React.FC<AutoRichTextInputProps> = (props) => {
const { formState } = useFormContext();
Expand Down
13 changes: 13 additions & 0 deletions packages/react/src/auto/shared/AutoRichTextInputProps.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import type { ForwardedRef } from "react";
import type { Control } from "react-hook-form";

export interface MDXEditorMethods {
setMarkdown: (markdown: string) => void;
}

export interface AutoRichTextInputProps {
field: string;
control?: Control<any>;
editorRef?: ForwardedRef<MDXEditorMethods> | null;
label?: string;
}

0 comments on commit 3f6198d

Please sign in to comment.