diff --git a/packages/components/src/internal/partials/BaseInput/BaseInput.tsx b/packages/components/src/internal/partials/BaseInput/BaseInput.tsx index 806c57f3..2a2b0f00 100644 --- a/packages/components/src/internal/partials/BaseInput/BaseInput.tsx +++ b/packages/components/src/internal/partials/BaseInput/BaseInput.tsx @@ -9,7 +9,6 @@ const INPUT_ID_PREFIX = 'ids-input-'; const BaseInput = ({ name, - type, disabled = false, error = false, extraClasses = '', @@ -18,6 +17,7 @@ const BaseInput = ({ required = false, size = 'medium', title = '', + type = 'text', value = '', }: BaseInputProps) => { const componentGeneratedNumberId = useGenerateSimpleNumberId(); diff --git a/packages/components/src/internal/partials/BaseInput/BaseInput.types.ts b/packages/components/src/internal/partials/BaseInput/BaseInput.types.ts index 3725c9fe..50acb309 100644 --- a/packages/components/src/internal/partials/BaseInput/BaseInput.types.ts +++ b/packages/components/src/internal/partials/BaseInput/BaseInput.types.ts @@ -28,8 +28,8 @@ interface BaseInputPropsProps extends BaseComponentAttributes { } interface BaseInputVisibleProps extends BaseInputPropsProps { - type: Exclude; required: boolean; + type?: Exclude; extraInputAttrs?: Omit, keyof BaseInputVisibleProps>; } diff --git a/src/storybook/addons/framework-selector/FrameworkSelectorDecorator.tsx b/src/storybook/addons/framework-selector/FrameworkSelectorDecorator.tsx index 68852f79..27236e88 100644 --- a/src/storybook/addons/framework-selector/FrameworkSelectorDecorator.tsx +++ b/src/storybook/addons/framework-selector/FrameworkSelectorDecorator.tsx @@ -21,7 +21,12 @@ interface IframeMethods { } type IframeMessageData = IframeResize | IframeMethods; -const getStoryId = (kind: string) => kind.replace('components/src/', '').toLowerCase(); +const camelCaseToSnakeCase = (str: string) => str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase(); +const getStoryId = (kind: string) => { + const storyId = kind.replace('components/src/', ''); + + return camelCaseToSnakeCase(storyId); +}; const getIframeSrc = (id: string, args: argsType) => { const baseUrl = process.env.TWIG_COMPONENTS_BASE_URL; @@ -36,6 +41,7 @@ const getIframeSrc = (id: string, args: argsType) => { return accumulator; } + const propertyFinalName = camelCaseToSnakeCase(propertyName); let propertyFinalValue = propertyValue; // eslint-disable-next-line @typescript-eslint/no-unsafe-argument @@ -43,7 +49,7 @@ const getIframeSrc = (id: string, args: argsType) => { propertyFinalValue = renderToString(propertyValue); } - return { ...accumulator, [propertyName]: propertyFinalValue }; + return { ...accumulator, [propertyFinalName]: propertyFinalValue }; /* eslint-enable @typescript-eslint/no-unsafe-assignment */ }, {}); const storyPropertiesStringified = JSON.stringify(storyProperties); @@ -61,6 +67,7 @@ const FrameworkSelectorDecorator = ( ): Renderer['storyResult'] | React.JSX.Element => { const [globals] = useGlobals(); const [args] = useArgs(); + const iframeWrapperRef = useRef(null); const iframeRef = useRef(null); const { id, title }: { id: string; title: string } = context; const renderTwigSelector = () => { @@ -68,28 +75,32 @@ const FrameworkSelectorDecorator = ( const twigUrl = getIframeSrc(storyId, args); return ( -