Skip to content
This repository was archived by the owner on Mar 4, 2020. It is now read-only.
This repository was archived by the owner on Mar 4, 2020. It is now read-only.

Allow to render styles to multiple documents #1178

@layershifter

Description

@layershifter

Feature Request

Problem description

Fela uses own per-renderer cache for style nodes, it means that if you will try to render something into a separate document you will fail 💣 Styles will be inserted into the parent document 🎲

See CodeSandbox for more details.

Repro

https://codesandbox.io/s/62m20qlpn

Proposed solution

I tried to combine our existing two renderers (felaRenderer & felaRtlRenderer) to one renderer, but we will still have broken transitions (see #516).

So, we will still need two renderers 😭

Expose ltrRenderer and rtlRenderer on Provider

Original idea was to expose only renderer prop, but it failed, so we need to expose two renders.

import { createRendererConfig, Provider, themes } from '@stardust-ui/react'

const subRenderer = createRendererConfig()
const subRtlRenderer = createRendererConfig()

ReactDOM.render(
  <Provider ltrRenderer={subRenderer} rtlRenderer={subRtlRenderer} theme={themes.teams}>
    <App />
  </Provider>,
  document.getElementById('root'),
)

Create renderers on demand

Generic idea is to pass current document via context and if it's different, create new renderers.

Pros

  • Do not expose anything weird via API

Metadata

Metadata

Assignees

No one assigned

    Labels

    vstsPaired with ticket in vsts

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions