diff --git a/package.json b/package.json index c5dfb29a..df61a4fd 100644 --- a/package.json +++ b/package.json @@ -82,19 +82,19 @@ }, "devDependencies": { "@size-limit/preset-small-lib": "^7.0.3", - "@testing-library/react": "^13.1.1", - "@testing-library/react-hooks": "^7.0.0", + "@testing-library/react": "^13.4.0", + "@testing-library/react-hooks": "^8.0.1", "@types/jsdom": "^16.2.5", - "@types/react": "^17.0.0", - "@types/react-dom": "^18.0.0", + "@types/react": "^18.0.20", + "@types/react-dom": "^18.0.6", "cypress": "8.7.0", "dotenv": "^16.0.0", "eslint-plugin-simple-import-sort": "^8.0.0", "husky": "^7.0.0", "jsdom": "^16.4.0", "np": "^7.0.0", - "react": "^18.0.0", - "react-dom": "^18.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", "react-test-renderer": "^18.0.0", "size-limit": "^7.0.3", "tsdx": "^0.14.1", diff --git a/src/types.ts b/src/types.ts index 6d24fe80..147a4c23 100644 --- a/src/types.ts +++ b/src/types.ts @@ -396,10 +396,6 @@ export type IntercomProviderProps = { * @remarks if `true`, 'boot' does not need to be called manually * */ autoBoot?: boolean; - /** - * React children - */ - children: React.ReactNode; /** * When we hide the messenger, you can hook into the event. This requires a function argument. */ diff --git a/test/intercomProvider.test.tsx b/test/intercomProvider.test.tsx index 4b616eb5..237d334f 100644 --- a/test/intercomProvider.test.tsx +++ b/test/intercomProvider.test.tsx @@ -39,13 +39,20 @@ describe('IntercomProvider', () => { test('should not call `onShow` callback when not calling `show`', () => { const mockOnShow = jest.fn(); - renderHook(() => useIntercom(), { - wrapper: ({ children }) => ( - - {children} - - ), - }); + renderHook<{ children: React.ReactNode }, ReturnType>( + () => useIntercom(), + { + wrapper: ({ children }) => ( + + {children} + + ), + }, + ); expect(mockOnShow).not.toBeCalled(); }); @@ -53,7 +60,10 @@ describe('IntercomProvider', () => { test('should set `window.intercomSettings.apiBase` on autoBoot', () => { const apiBase = `https://${INTERCOM_APP_ID}.intercom-messenger.com`; - const { result } = renderHook(() => useIntercom(), { + const { result } = renderHook< + { children: React.ReactNode }, + ReturnType + >(() => useIntercom(), { wrapper: ({ children }) => ( {children} @@ -76,19 +86,22 @@ describe('IntercomProvider', () => { test('should pass props when `autoBootProps` is passed', () => { const phone = '123456'; - renderHook(() => useIntercom(), { - wrapper: ({ children }) => ( - - {children} - - ), - }); + renderHook<{ children: React.ReactNode }, ReturnType>( + () => useIntercom(), + { + wrapper: ({ children }) => ( + + {children} + + ), + }, + ); expect(window.intercomSettings).toEqual({ app_id: INTERCOM_APP_ID, @@ -99,7 +112,10 @@ describe('IntercomProvider', () => { test('should not pass props when `autoBootProps` is passed and `autoBoot` is `false`', () => { const phone = '123456'; - const { result } = renderHook(() => useIntercom(), { + const { result } = renderHook< + { children: React.ReactNode }, + ReturnType + >(() => useIntercom(), { wrapper: ({ children }) => ( { test('should be available when wrapped in context', () => { - const { result } = renderHook(() => useIntercom(), { + const { result } = renderHook< + { children: React.ReactNode }, + ReturnType + >(() => useIntercom(), { wrapper: ({ children }) => ( {children} ), @@ -30,7 +33,10 @@ describe('useIntercom', () => { }); test('should set `window.intercomSettings.appId` on boot', () => { - const { result } = renderHook(() => useIntercom(), { + const { result } = renderHook< + { children: React.ReactNode }, + ReturnType + >(() => useIntercom(), { wrapper: ({ children }) => ( {children} ), @@ -46,7 +52,10 @@ describe('useIntercom', () => { }); test('should await a certain amount on delayed initialization', async () => { - const { result, waitFor } = renderHook(() => useIntercom(), { + const { result, waitFor } = renderHook< + { children: React.ReactNode }, + ReturnType + >(() => useIntercom(), { wrapper: ({ children }) => ( {children} @@ -72,7 +81,10 @@ describe('useIntercom', () => { }); it('should remove `window.intercomSettings` on shutdown', () => { - const { result } = renderHook(() => useIntercom(), { + const { result } = renderHook< + { children: React.ReactNode }, + ReturnType + >(() => useIntercom(), { wrapper: ({ children }) => ( {children} ), diff --git a/yarn.lock b/yarn.lock index 08f93935..0071ed73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1353,18 +1353,15 @@ lz-string "^1.4.4" pretty-format "^27.0.2" -"@testing-library/react-hooks@^7.0.0": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-7.0.2.tgz#3388d07f562d91e7f2431a4a21b5186062ecfee0" - integrity sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg== +"@testing-library/react-hooks@^8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-8.0.1.tgz#0924bbd5b55e0c0c0502d1754657ada66947ca12" + integrity sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g== dependencies: "@babel/runtime" "^7.12.5" - "@types/react" ">=16.9.0" - "@types/react-dom" ">=16.9.0" - "@types/react-test-renderer" ">=16.9.0" react-error-boundary "^3.1.0" -"@testing-library/react@^13.1.1": +"@testing-library/react@^13.4.0": version "13.4.0" resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-13.4.0.tgz#6a31e3bf5951615593ad984e96b9e5e2d9380966" integrity sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw== @@ -1549,24 +1546,24 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== -"@types/react-dom@>=16.9.0", "@types/react-dom@^18.0.0": +"@types/react-dom@^18.0.0": version "18.0.5" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.5.tgz#330b2d472c22f796e5531446939eacef8378444a" integrity sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA== dependencies: "@types/react" "*" -"@types/react-test-renderer@>=16.9.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-17.0.0.tgz#9be47b375eeb906fced37049e67284a438d56620" - integrity sha512-nvw+F81OmyzpyIE1S0xWpLonLUZCMewslPuA8BtjSKc5XEbn8zEQBXS7KuOLHTNnSOEM2Pum50gHOoZ62tqTRg== +"@types/react-dom@^18.0.6": + version "18.0.6" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" + integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@>=16.9.0", "@types/react@^17.0.0": - version "17.0.43" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.43.tgz#4adc142887dd4a2601ce730bc56c3436fdb07a55" - integrity sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A== +"@types/react@*", "@types/react@^18.0.20": + version "18.0.20" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.20.tgz#e4c36be3a55eb5b456ecf501bd4a00fd4fd0c9ab" + integrity sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -6764,13 +6761,13 @@ rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@^18.0.0: - version "18.1.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.1.0.tgz#7f6dd84b706408adde05e1df575b3a024d7e8a2f" - integrity sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w== +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== dependencies: loose-envify "^1.1.0" - scheduler "^0.22.0" + scheduler "^0.23.0" react-error-boundary@^3.1.0: version "3.1.0" @@ -6811,10 +6808,10 @@ react-test-renderer@^18.0.0: react-shallow-renderer "^16.15.0" scheduler "^0.22.0" -react@^18.0.0: - version "18.1.0" - resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890" - integrity sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ== +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== dependencies: loose-envify "^1.1.0" @@ -7274,6 +7271,13 @@ scheduler@^0.22.0: dependencies: loose-envify "^1.1.0" +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + scoped-regex@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f"