Skip to content

JSX preserve mode: make is not a valid component name #7432

Open
@cknitt

Description

@cknitt

Consider a module Test.res with the following code:

let context = React.createContext(0)

module ContextProvider = {
  let make = React.Context.provider(context)
}

@react.component
let make = (~children) => {
  <ContextProvider value=42> {children} </ContextProvider>
}

Without JSX preserve mode enabled, the compiler output is (correct):

function Test(props) {
  return JsxRuntime.jsx(make, {
    value: 42,
    children: props.children
  });
}

With JSX preserve mode:

function Test(props) {
  return <make value={42}>
  {props.children}
  </make>;
}

However, make is not a valid React component name as it is not uppercase.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions