@fluentui/react-jsx-runtime
TypeScript icon, indicating that this package has built-in type declarations

9.0.38 • Public • Published

@fluentui/react-jsx-runtime

React JSX runtime for Fluent UI React

Fluent UI React requires the usage of a custom JSX runtime to support the slots API

Usage

This library should only be used in the case where you are trying to use the internal slot API of Fluent UI React. If you are not using the internal slot API, you should not need to use this library.

In case you want to re-compose a component and redeclare its render method then this API will be necessary, here's our documentation on Rendering a component with slots

To properly render a component with slots the createElement method of @fluentui/react-jsx-runtime can be used as a replacement for React.createElement:

/** @jsxRuntime classic */
/** @jsx createElement */

// createElement custom JSX pragma is required to support slot creation
import { createElement } from '@fluentui/react-jsx-runtime';
import { assertSlots } from '@fluentui/react-utilities';

const renderButton_unstable = (state: ButtonState) => {
  const { iconOnly, iconPosition } = state;

  assertSlots<ButtonSlots>(state);

  return (
    <state.root>
      {iconPosition !== 'after' && state.icon && <state.icon />}
      {!iconOnly && state.root.children}
      {iconPosition === 'after' && state.icon && <state.icon />}
    </state.root>
  );
};

In case you're using typescript or any modern javascript transpiler, you can use JSX import source feature instead of depending on declaring the runtime on every file

In TSC case you can simply add this do tsconfig.json file:

{
  "compilerOptions": {
    "jsx": "react-jsx",
    "jsxImportSource": "@fluentui/react-jsx-runtime"
  }
}

/@fluentui/react-jsx-runtime/

    Package Sidebar

    Install

    npm i @fluentui/react-jsx-runtime

    Weekly Downloads

    85,960

    Version

    9.0.38

    License

    MIT

    Unpacked Size

    84 kB

    Total Files

    69

    Last publish

    Collaborators

    • sopranopillow
    • microsoft1es
    • justslone
    • chrisdholt
    • miroslavstastny
    • levithomason
    • uifabricteam
    • uifrnbot
    • dzearing
    • layershifter
    • ling1726
    • travisspomer