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!)
})
}
},