Skip to content

Commit

Permalink
Context gets its own export object
Browse files Browse the repository at this point in the history
  • Loading branch information
nickgros committed Jun 1, 2021
1 parent 8c809f6 commit 9bbf7f4
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 35 deletions.
8 changes: 2 additions & 6 deletions src/__tests__/lib/containers/MarkdownSynapse.test.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as React from 'react'
import { mount, shallow } from 'enzyme'
import { mount } from 'enzyme'
import MarkdownSynapse, {
MarkdownSynapseProps,
} from '../../../lib/containers/MarkdownSynapse'
Expand All @@ -8,14 +8,10 @@ import SynapseImage from '../../../lib/containers/widgets/SynapseImage'
import SynapseVideo from '../../../lib/containers/widgets/SynapseVideo'
import { delay } from '../../../lib/utils/SynapseClient'
import { _TIME_DELAY } from '../../../lib/utils/SynapseConstants'
import {
MOCK_CONTEXT,
SynapseTestContext,
} from '../../../mocks/MockSynapseContext'
import { SynapseTestContext } from '../../../mocks/MockSynapseContext'
import {
SynapseContextProvider,
SynapseContextType,
withSynapseContextConsumer,
} from '../../../lib/utils/SynapseContext'
import { render, screen } from '@testing-library/react'

Expand Down
15 changes: 12 additions & 3 deletions src/lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ import PageProgress from './containers/PageProgress'
import ProjectViewCarousel from './containers/home_page/project_view_carousel/ProjectViewCarousel'
import EntityFinder from './containers/entity_finder/EntityFinder'
import ExperimentalMode from './containers/ExperimentalMode'
import { SynapseContextProvider } from './utils/SynapseContext'
import {
SynapseContextProvider,
SynapseContextConsumer,
useSynapseContext,
} from './utils/SynapseContext'

// we exclude this from main.scss because react doesn't like importing an svg
// with a relative import.
Expand All @@ -47,6 +51,12 @@ import { SynapseConstants, SynapseClient } from './utils'
import { EvaluationCard } from './containers/evaluation_queues/EvaluationCard'
import { EvaluationEditorPage } from './containers/evaluation_queues/EvaluationEditorPage'

const SynapseContext = {
SynapseContextProvider,
SynapseContextConsumer,
useSynapseContext,
}

const SynapseComponents = {
Facets,
Login,
Expand Down Expand Up @@ -87,7 +97,6 @@ const SynapseComponents = {
ProjectViewCarousel,
EntityFinder,
ExperimentalMode,
SynapseContextProvider,
}

export { SynapseClient, SynapseConstants, SynapseComponents }
export { SynapseClient, SynapseConstants, SynapseComponents, SynapseContext }
15 changes: 12 additions & 3 deletions src/lib/rollup.index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,17 @@ import { SynapseHomepage } from './containers/SynapseHomepage'
import { EvaluationEditorPage } from './containers/evaluation_queues/EvaluationEditorPage'
import { EntityFinder } from './containers/entity_finder/EntityFinder'
import ErrorPage from './containers/ErrorPage'
import { SynapseContextProvider } from './utils/SynapseContext'
import {
SynapseContextProvider,
SynapseContextConsumer,
useSynapseContext,
} from './utils/SynapseContext'

const SynapseContext = {
SynapseContextProvider,
SynapseContextConsumer,
useSynapseContext,
}

const SynapseComponents = {
Login,
Expand All @@ -38,7 +48,6 @@ const SynapseComponents = {
SynapseHomepage,
EntityFinder,
ErrorPage,
SynapseContextProvider,
}

export { SynapseComponents, SynapseConstants, SynapseClient }
export { SynapseComponents, SynapseConstants, SynapseClient, SynapseContext }
23 changes: 0 additions & 23 deletions src/lib/utils/SynapseContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,26 +55,3 @@ export function useSynapseContext(): SynapseContextType {
}
return context
}

/**
* This lets us wrap a class component that accepts a synapseContext prop
*
* We need this because we have class components that have tests that rely on the Enzyme shallow
* renderer, which is not currently compatible with the contextType API.
*
* @see SWC-5612
*/
export const withSynapseContextConsumer = <
P extends { synapseContext: SynapseContextType }
>(
Component: React.ComponentType<P>,
): React.FC<P> =>
function _(props: P) {
return (
<SynapseContextConsumer>
{synapseContext => (
<Component {...(props as P)} synapseContext={synapseContext} />
)}
</SynapseContextConsumer>
)
}

0 comments on commit 9bbf7f4

Please sign in to comment.