diff --git a/.all-contributorsrc b/.all-contributorsrc index a2dcb363..42bb9709 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -510,6 +510,25 @@ "contributions": [ "code" ] + }, + { + "login": "MichaelDeBoey", + "name": "Michaël De Boey", + "avatar_url": "https://avatars.githubusercontent.com/u/6643991?v=4", + "profile": "https://michaeldeboey.be", + "contributions": [ + "maintenance" + ] + }, + { + "login": "xobotyi", + "name": "Anton Zinovyev", + "avatar_url": "https://avatars.githubusercontent.com/u/6178739?v=4", + "profile": "https://github.com/xobotyi", + "contributions": [ + "bug", + "code" + ] } ], "skipCi": true, diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 411fc7f7..bb85b6f9 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,8 +1,11 @@ -# config options: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/enabling-and-disabling-version-updates - version: 2 updates: - - package-ecosystem: "npm" - directory: "/" + - package-ecosystem: github-actions + directory: / + schedule: + interval: daily + + - package-ecosystem: npm + directory: / schedule: - interval: "daily" + interval: daily diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index da53131f..373a2cf4 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -17,19 +17,17 @@ jobs: if: ${{ !contains(github.head_ref, 'all-contributors') }} strategy: matrix: - node: [10.13, 12, 14, 15] + node: [10.13, 10, 12, 14, 16] runs-on: ubuntu-latest steps: - name: 🛑 Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.6.0 - with: - access_token: ${{ secrets.GITHUB_TOKEN }} + uses: styfle/cancel-workflow-action@0.9.0 - name: ⬇️ Checkout repo uses: actions/checkout@v2 - name: ⎔ Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} @@ -55,15 +53,13 @@ jobs: github.ref) && github.event_name == 'push' }} steps: - name: 🛑 Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.6.0 - with: - access_token: ${{ secrets.GITHUB_TOKEN }} + uses: styfle/cancel-workflow-action@0.9.0 - name: ⬇️ Checkout repo uses: actions/checkout@v2 - name: ⎔ Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: 14 diff --git a/README.md b/README.md index d0f0a073..a976ce7b 100644 --- a/README.md +++ b/README.md @@ -238,6 +238,8 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Mikhail Vasin

📖
Aleksandar Grbic

📖
Jonathan Holmes

💻 +
Michaël De Boey

🚧 +
Anton Zinovyev

🐛 💻 diff --git a/package.json b/package.json index 69f7f3c7..7f8c147c 100644 --- a/package.json +++ b/package.json @@ -58,14 +58,14 @@ "docz": "2.3.1", "docz-theme-default": "1.2.0", "docz-utils": "2.3.0", - "eslint": "7.23.0", - "kcd-scripts": "8.1.1", + "eslint": "7.24.0", + "kcd-scripts": "9.1.0", "prettier": "^2.2.1", "react": "17.0.2", "react-dom": "^17.0.1", "react-test-renderer": "17.0.2", "ts-node": "^9.1.1", - "typescript": "4.2.3" + "typescript": "4.2.4" }, "peerDependencies": { "react": ">=16.9.0", diff --git a/src/server/pure.ts b/src/server/pure.ts index 1bacd008..b37b6df5 100644 --- a/src/server/pure.ts +++ b/src/server/pure.ts @@ -2,7 +2,7 @@ import ReactDOMServer from 'react-dom/server' import ReactDOM from 'react-dom' import { act } from 'react-dom/test-utils' -import { RendererProps, RendererOptions } from '../types/react' +import { RendererOptions, RendererProps } from '../types/react' import { createRenderHook } from '../core' import { createTestHarness } from '../helpers/createTestHarness' @@ -12,8 +12,8 @@ function createServerRenderer( { wrapper }: RendererOptions ) { let renderProps: TProps | undefined - let hydrated = false - const container = document.createElement('div') + let container: HTMLDivElement | undefined + let serverOutput: string = '' const testHarness = createTestHarness(rendererProps, wrapper, false) return { @@ -21,35 +21,35 @@ function createServerRenderer( renderProps = props act(() => { try { - const serverOutput = ReactDOMServer.renderToString(testHarness(props)) - container.innerHTML = serverOutput + serverOutput = ReactDOMServer.renderToString(testHarness(props)) } catch (e: unknown) { rendererProps.setError(e as Error) } }) }, hydrate() { - if (hydrated) { + if (container) { throw new Error('The component can only be hydrated once') } else { + container = document.createElement('div') + container.innerHTML = serverOutput act(() => { - ReactDOM.hydrate(testHarness(renderProps), container) + ReactDOM.hydrate(testHarness(renderProps), container!) }) - hydrated = true } }, rerender(props?: TProps) { - if (!hydrated) { + if (!container) { throw new Error('You must hydrate the component before you can rerender') } act(() => { - ReactDOM.render(testHarness(props), container) + ReactDOM.render(testHarness(props), container!) }) }, unmount() { - if (hydrated) { + if (container) { act(() => { - ReactDOM.unmountComponentAtNode(container) + ReactDOM.unmountComponentAtNode(container!) }) } },