From 93e2fae14c669defdd9a641a8b50da200278138e Mon Sep 17 00:00:00 2001 From: Cameron Bothner Date: Mon, 10 Dec 2018 15:46:44 -0500 Subject: [PATCH] chore: upgrade flow and supress all the new errors --- .flowconfig | 2 +- app/javascript/Case.jsx | 1 + app/javascript/card/CardContents.jsx | 3 +-- app/javascript/card/CitationTooltip.jsx | 1 + app/javascript/card/index.jsx | 3 +++ app/javascript/catalog/CatalogToolbar.jsx | 1 + app/javascript/catalog/GalaxyBanner/index.jsx | 1 + app/javascript/catalog/home/ValueProposition.jsx | 1 + app/javascript/catalog/home/helpers.js | 2 ++ app/javascript/catalog/search_results/LibraryInfo.jsx | 8 +++++++- app/javascript/catalog/search_results/index.jsx | 2 +- app/javascript/catalog/search_results/useSearchResults.js | 7 ++++++- app/javascript/catalog/shared.jsx | 2 ++ app/javascript/comments/CommentThreadEntity.jsx | 1 + app/javascript/comments/CommentThreadsTag.jsx | 1 + app/javascript/comments/NewCommentButton.jsx | 1 + app/javascript/conversation/CommentThreadItem.jsx | 1 + app/javascript/conversation/NoSelectedCommentThread.jsx | 1 + app/javascript/conversation/RecentCommentThreads.jsx | 1 + app/javascript/conversation/ResponseForm.jsx | 2 ++ app/javascript/conversation/SelectedCommentThread.jsx | 1 + app/javascript/conversation/shared.jsx | 1 + app/javascript/deployment/contentItemSelectionContext.jsx | 4 +++- app/javascript/draft/CitationEntity.jsx | 1 + app/javascript/draft/EdgenoteEntity.jsx | 1 + app/javascript/edgenotes/Edgenote.jsx | 5 +++++ app/javascript/edgenotes/EdgenoteLibrary.jsx | 1 + app/javascript/edgenotes/editor/EditorDialog.jsx | 1 + app/javascript/edgenotes/editor/styled.jsx | 3 +++ app/javascript/edgenotes/index.jsx | 1 + app/javascript/elements/CaseElement.jsx | 1 + app/javascript/overview/Billboard.jsx | 2 ++ app/javascript/overview/BillboardTitle.jsx | 2 ++ app/javascript/overview/CaseOverview.jsx | 1 + app/javascript/overview/CommunityChooser.jsx | 1 + app/javascript/overview/EnrollForm.jsx | 1 + app/javascript/overview/StatusBar.jsx | 1 + app/javascript/overview/TableOfContents.jsx | 1 + app/javascript/overview/TableOfContentsElement.jsx | 1 + app/javascript/overview/TeachingGuide.jsx | 1 + app/javascript/page/DetailsForm.jsx | 1 + app/javascript/page/index.jsx | 1 + app/javascript/podcast/index.jsx | 1 + app/javascript/quiz/PostTestLink.jsx | 1 + app/javascript/quiz/Quiz.jsx | 2 ++ app/javascript/redux/reducers/cards.js | 4 ++++ app/javascript/redux/reducers/index.js | 1 + app/javascript/redux/reducers/quiz.js | 1 + app/javascript/shared/Identicon.jsx | 1 + app/javascript/suggested_quizzes/AllQuizzes.jsx | 4 +++- app/javascript/table_of_contents/shared.jsx | 7 +++++++ app/javascript/utility/A11y.jsx | 1 + app/javascript/utility/ErrorBoundary.jsx | 1 + app/javascript/utility/FileUploadWidget.jsx | 1 + app/javascript/utility/Less.jsx | 1 + app/javascript/utility/Lock.jsx | 1 + app/javascript/utility/ScrollView.jsx | 1 + app/javascript/utility/SortableList.jsx | 1 + app/javascript/utility/Statistics.jsx | 1 + app/javascript/utility/Tracker.jsx | 1 + docs/website/pages/en/index.js | 8 ++++++++ package.json | 2 +- yarn.lock | 8 ++++---- 63 files changed, 111 insertions(+), 13 deletions(-) diff --git a/.flowconfig b/.flowconfig index db5515fe1..4ba569bf6 100644 --- a/.flowconfig +++ b/.flowconfig @@ -23,4 +23,4 @@ suppress_comment= \\(.\\|\n\\)*\\$FlowFixMe suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-8]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\).*\n [version] -0.83.0 +0.87.0 diff --git a/app/javascript/Case.jsx b/app/javascript/Case.jsx index 6e620953e..028d733a8 100644 --- a/app/javascript/Case.jsx +++ b/app/javascript/Case.jsx @@ -174,6 +174,7 @@ class Case extends React.Component<{ } } +// $FlowFixMe export default connect( mapStateToProps, { diff --git a/app/javascript/card/CardContents.jsx b/app/javascript/card/CardContents.jsx index 2706a8c93..0e57fcee3 100644 --- a/app/javascript/card/CardContents.jsx +++ b/app/javascript/card/CardContents.jsx @@ -10,7 +10,6 @@ import { injectIntl } from 'react-intl' import { Editor, EditorState } from 'draft-js' import { Route } from 'react-router-dom' -import { Draggable } from 'react-beautiful-dnd' import { commentThreadsOpen } from 'shared/routes' import { getStyleMap } from 'draft/config' @@ -272,7 +271,7 @@ const Card = styled.div` & .c-edgenote-entity { ${p => - p.editable && + p.editable && css` pointer-events: none; `}; diff --git a/app/javascript/card/CitationTooltip.jsx b/app/javascript/card/CitationTooltip.jsx index 01599fef5..1f2071fac 100644 --- a/app/javascript/card/CitationTooltip.jsx +++ b/app/javascript/card/CitationTooltip.jsx @@ -166,6 +166,7 @@ class CitationTooltip extends React.Component<*> { } } +// $FlowFixMe export default connect( mapStateToProps, mapDispatchToProps diff --git a/app/javascript/card/index.jsx b/app/javascript/card/index.jsx index c9e130a79..79bedad93 100644 --- a/app/javascript/card/index.jsx +++ b/app/javascript/card/index.jsx @@ -22,6 +22,7 @@ import { commentThreadsOpen, commentsOpen } from 'shared/routes' import withGetEdgenote from './withGetEdgenote' import { applySmartTypography } from 'shared/draftHelpers' +import type { DragHandleProps } from 'react-beautiful-dnd' import type { ContextRouter } from 'react-router-dom' import type { DraftHandleValue } from 'draft-js/lib/DraftHandleValue' @@ -33,6 +34,7 @@ import type { State, Citation } from 'redux/state' */ type OwnProps = {| ...ContextRouter, + dragHandleProps: DragHandleProps, id: string, nonNarrative: boolean, title?: React.Node, @@ -199,6 +201,7 @@ function mergeProps ( } } +// $FlowFixMe export default withRouter( connect( // $FlowFixMe diff --git a/app/javascript/catalog/CatalogToolbar.jsx b/app/javascript/catalog/CatalogToolbar.jsx index b4f5d919a..09773a3ba 100644 --- a/app/javascript/catalog/CatalogToolbar.jsx +++ b/app/javascript/catalog/CatalogToolbar.jsx @@ -52,6 +52,7 @@ const CatalogToolbar = ({ author, history, instructor }: Props) => ( ) +// $FlowFixMe export default withRouter(CatalogToolbar) class SearchField extends React.Component< diff --git a/app/javascript/catalog/GalaxyBanner/index.jsx b/app/javascript/catalog/GalaxyBanner/index.jsx index f7c940f1e..64aad21b4 100644 --- a/app/javascript/catalog/GalaxyBanner/index.jsx +++ b/app/javascript/catalog/GalaxyBanner/index.jsx @@ -21,6 +21,7 @@ const GalaxyBanner = () => ( ) export default GalaxyBanner +// $FlowFixMe const Container = styled.aside.attrs({ className: 'pt-card pt-elevation-3' })` align-items: center; background-color: #02284b; diff --git a/app/javascript/catalog/home/ValueProposition.jsx b/app/javascript/catalog/home/ValueProposition.jsx index 24c5f7f75..8efd6689b 100644 --- a/app/javascript/catalog/home/ValueProposition.jsx +++ b/app/javascript/catalog/home/ValueProposition.jsx @@ -43,6 +43,7 @@ const ValueProposition = () => ( ) export default ValueProposition +// $FlowFixMe const Container = styled.aside.attrs({ className: 'pt-dark' })` color: white; display: grid; diff --git a/app/javascript/catalog/home/helpers.js b/app/javascript/catalog/home/helpers.js index 54f1ab78e..381885cef 100644 --- a/app/javascript/catalog/home/helpers.js +++ b/app/javascript/catalog/home/helpers.js @@ -6,7 +6,9 @@ import type { Tag } from 'redux/state' const sortGroup = (t: Tag) => t.displayName[0] +// $FlowFixMe export const groupKeywords = R.pipe( + // $FlowFixMe R.sortWith([R.ascend(R.prop('displayName'))]), R.filter(tag => !tag.category), R.groupWith((a, b) => sortGroup(a) === sortGroup(b)) diff --git a/app/javascript/catalog/search_results/LibraryInfo.jsx b/app/javascript/catalog/search_results/LibraryInfo.jsx index 92536c34e..a05804d8e 100644 --- a/app/javascript/catalog/search_results/LibraryInfo.jsx +++ b/app/javascript/catalog/search_results/LibraryInfo.jsx @@ -29,7 +29,12 @@ function LibraryInfo ({ history, slug }: Props) { } } - React.useEffect(fetchLibraryInfo, [slug]) + React.useEffect( + () => { + fetchLibraryInfo() + }, + [slug] + ) if (library == null) return null @@ -52,6 +57,7 @@ function LibraryInfo ({ history, slug }: Props) { ) } +// $FlowFixMe export default withRouter(LibraryInfo) const RightFloatLogoContainer = styled.div` diff --git a/app/javascript/catalog/search_results/index.jsx b/app/javascript/catalog/search_results/index.jsx index eb3beaec0..89ccbafb2 100644 --- a/app/javascript/catalog/search_results/index.jsx +++ b/app/javascript/catalog/search_results/index.jsx @@ -57,7 +57,7 @@ function SearchResults ({ - {loading.cases || resultsLoading ? null : cases.length === 0 ? ( + {loading.cases || resultsLoading ? null : caseSlugs.length === 0 ? ( ) : ( diff --git a/app/javascript/catalog/search_results/useSearchResults.js b/app/javascript/catalog/search_results/useSearchResults.js index 3093e6d3c..1af24ff94 100644 --- a/app/javascript/catalog/search_results/useSearchResults.js +++ b/app/javascript/catalog/search_results/useSearchResults.js @@ -26,7 +26,12 @@ export default function useSearchResults ( setCaseSlugs(results) } - React.useEffect(fetchResults, [location.pathname, location.search]) + React.useEffect( + () => { + fetchResults() + }, + [location.pathname, location.search] + ) return [caseSlugs, loading] } diff --git a/app/javascript/catalog/shared.jsx b/app/javascript/catalog/shared.jsx index b50808246..f61c67536 100644 --- a/app/javascript/catalog/shared.jsx +++ b/app/javascript/catalog/shared.jsx @@ -47,6 +47,7 @@ export const CaseRow = styled.div` transition-property: background, border; ` +// $FlowFixMe export const CaseLinkRow = styled(CaseRow.withComponent('a'))` &:hover { background-color: #415e77; @@ -80,6 +81,7 @@ export const Element = ({ ) } +// $FlowFixMe export const ElementImage = styled.div.attrs({ role: 'presentation' })` width: 36px; height: 36px; diff --git a/app/javascript/comments/CommentThreadEntity.jsx b/app/javascript/comments/CommentThreadEntity.jsx index a9c936c1d..9810835cb 100644 --- a/app/javascript/comments/CommentThreadEntity.jsx +++ b/app/javascript/comments/CommentThreadEntity.jsx @@ -46,6 +46,7 @@ const CommentThreadEntity = ({ onClick, children }) => { ) } +// $FlowFixMe export default withRouter( connect(mapStateToProps, null, mergeProps)(CommentThreadEntity) ) diff --git a/app/javascript/comments/CommentThreadsTag.jsx b/app/javascript/comments/CommentThreadsTag.jsx index ea4455185..aa3fc2399 100644 --- a/app/javascript/comments/CommentThreadsTag.jsx +++ b/app/javascript/comments/CommentThreadsTag.jsx @@ -45,4 +45,5 @@ const CommentThreadsTag = ({ match, count, cardId, acceptSelection }) => ( ) +// $FlowFixMe export default connect(mapStateToProps, { acceptSelection })(CommentThreadsTag) diff --git a/app/javascript/comments/NewCommentButton.jsx b/app/javascript/comments/NewCommentButton.jsx index f99e7dd51..f4f39e8dc 100644 --- a/app/javascript/comments/NewCommentButton.jsx +++ b/app/javascript/comments/NewCommentButton.jsx @@ -92,6 +92,7 @@ const NewCommentButton = ({ ) +// $FlowFixMe export default connect(mapStateToProps, { acceptSelection })(NewCommentButton) const UniquenessWarning = () => ( diff --git a/app/javascript/conversation/CommentThreadItem.jsx b/app/javascript/conversation/CommentThreadItem.jsx index 62609b101..317009790 100644 --- a/app/javascript/conversation/CommentThreadItem.jsx +++ b/app/javascript/conversation/CommentThreadItem.jsx @@ -159,6 +159,7 @@ const CommentThreadItem = ({ ) +// $FlowFixMe export default withRouter( injectIntl(connect(mapStateToProps, mapDispatchToProps)(CommentThreadItem)) ) diff --git a/app/javascript/conversation/NoSelectedCommentThread.jsx b/app/javascript/conversation/NoSelectedCommentThread.jsx index c92d40aab..7c2332e89 100644 --- a/app/javascript/conversation/NoSelectedCommentThread.jsx +++ b/app/javascript/conversation/NoSelectedCommentThread.jsx @@ -31,6 +31,7 @@ const NoSelectedCommentThread = ({ name, description }) => ( )} ) +// $FlowFixMe export default connect(mapStateToProps, () => ({}))(NoSelectedCommentThread) const Container = styled.div.attrs({ className: 'pt-running-text' })` diff --git a/app/javascript/conversation/RecentCommentThreads.jsx b/app/javascript/conversation/RecentCommentThreads.jsx index 097a07cb0..786f5a1fe 100644 --- a/app/javascript/conversation/RecentCommentThreads.jsx +++ b/app/javascript/conversation/RecentCommentThreads.jsx @@ -55,6 +55,7 @@ const RecentCommentThreads = ({ ) +// $FlowFixMe export default connect(mapStateToProps, () => ({}))(RecentCommentThreads) const Container = styled.div` diff --git a/app/javascript/conversation/ResponseForm.jsx b/app/javascript/conversation/ResponseForm.jsx index 442aec258..82c42c59b 100644 --- a/app/javascript/conversation/ResponseForm.jsx +++ b/app/javascript/conversation/ResponseForm.jsx @@ -48,6 +48,7 @@ class ResponseForm extends React.Component< const { editorState } = this.state if (reader == null) return null return ( + // $FlowFixMe (this.container = el)}> @@ -105,6 +106,7 @@ const Container = styled.div` } ` +// $FlowFixMe export const EmptyResponseFormContainer = styled(Container)` border-top: none; padding: 1px; diff --git a/app/javascript/conversation/SelectedCommentThread.jsx b/app/javascript/conversation/SelectedCommentThread.jsx index 8deba7d49..5f2380083 100644 --- a/app/javascript/conversation/SelectedCommentThread.jsx +++ b/app/javascript/conversation/SelectedCommentThread.jsx @@ -207,6 +207,7 @@ class SelectedCommentThread extends React.Component< ) } } +// $FlowFixMe export default connect( mapStateToProps, mapDispatchToProps diff --git a/app/javascript/conversation/shared.jsx b/app/javascript/conversation/shared.jsx index 5373ac510..30a01b00d 100644 --- a/app/javascript/conversation/shared.jsx +++ b/app/javascript/conversation/shared.jsx @@ -7,6 +7,7 @@ import styled, { css } from 'styled-components' import { FormattedDate } from 'react-intl' import Markdown from 'utility/Markdown' +// $FlowFixMe export const CommentThreadBreadcrumbs = styled.ul.attrs({ className: 'pt-breadcrumbs', })` diff --git a/app/javascript/deployment/contentItemSelectionContext.jsx b/app/javascript/deployment/contentItemSelectionContext.jsx index 5c75773db..f05976c52 100644 --- a/app/javascript/deployment/contentItemSelectionContext.jsx +++ b/app/javascript/deployment/contentItemSelectionContext.jsx @@ -12,7 +12,9 @@ import { submitForm } from 'shared/lti' import { Orchard, CSRF } from 'shared/orchard' const defaultContext = { selecting: false, onSelect: (caseSlug: string) => {} } -const { Provider: BaseProvider, Consumer } = React.createContext(defaultContext) +const { Provider: BaseProvider, Consumer } = React.createContext< + typeof defaultContext +>(defaultContext) type ContentItemSelectionParams = { lti_uid: string, diff --git a/app/javascript/draft/CitationEntity.jsx b/app/javascript/draft/CitationEntity.jsx index 0a7b76d3f..2a73bfc7f 100644 --- a/app/javascript/draft/CitationEntity.jsx +++ b/app/javascript/draft/CitationEntity.jsx @@ -80,6 +80,7 @@ class CitationSpan extends React.Component { } } +// $FlowFixMe const CitationEntity = connect( mapStateToProps, mapDispatchToProps diff --git a/app/javascript/draft/EdgenoteEntity.jsx b/app/javascript/draft/EdgenoteEntity.jsx index 8d44bd498..1df399e24 100644 --- a/app/javascript/draft/EdgenoteEntity.jsx +++ b/app/javascript/draft/EdgenoteEntity.jsx @@ -85,4 +85,5 @@ const EdgenoteEntity = connect(mapStateToProps, mapDispatchToProps, mergeProps)( EdgenoteSpan ) +// $FlowFixMe export default withRouter(EdgenoteEntity) diff --git a/app/javascript/edgenotes/Edgenote.jsx b/app/javascript/edgenotes/Edgenote.jsx index 4b10a1953..480e899b2 100644 --- a/app/javascript/edgenotes/Edgenote.jsx +++ b/app/javascript/edgenotes/Edgenote.jsx @@ -180,6 +180,7 @@ class BaseEdgenoteFigure extends React.Component { )} {embedded || ( + // $FlowFixMe { > {this.renderQuotationSection() || this.renderImageSection()} + {/* $FlowFixMe */} { export const EdgenoteFigure = BaseEdgenoteFigure +// $FlowFixMe export default connect( mapStateToProps, mapDispatchToProps, mergeProps )(withExpansion(EdgenoteFigure)) +// $FlowFixMe const Container = styled.figure.attrs({ className: 'edge pt-dark' })` position: relative; margin: 0 0 1em; @@ -372,6 +376,7 @@ const Body = styled.div` const LinkBody = Body.withComponent('a') +// $FlowFixMe const DownloadButton = styled.button.attrs({ className: 'pt-button', })` diff --git a/app/javascript/edgenotes/EdgenoteLibrary.jsx b/app/javascript/edgenotes/EdgenoteLibrary.jsx index 4c2126d4c..3aac12d76 100644 --- a/app/javascript/edgenotes/EdgenoteLibrary.jsx +++ b/app/javascript/edgenotes/EdgenoteLibrary.jsx @@ -120,6 +120,7 @@ class EdgenoteLibrary extends React.Component { ) } } +// $FlowFixMe export default connect(mapStateToProps, { createEdgenote, deleteEdgenote })( injectIntl(EdgenoteLibrary) ) diff --git a/app/javascript/edgenotes/editor/EditorDialog.jsx b/app/javascript/edgenotes/editor/EditorDialog.jsx index 432ca2707..2c9ef84dd 100644 --- a/app/javascript/edgenotes/editor/EditorDialog.jsx +++ b/app/javascript/edgenotes/editor/EditorDialog.jsx @@ -133,4 +133,5 @@ const EditorDialog = ({ ) } +// $FlowFixMe export default withExpansion(EditorDialog) diff --git a/app/javascript/edgenotes/editor/styled.jsx b/app/javascript/edgenotes/editor/styled.jsx index 54c1ab4c3..73dc07e74 100644 --- a/app/javascript/edgenotes/editor/styled.jsx +++ b/app/javascript/edgenotes/editor/styled.jsx @@ -16,6 +16,7 @@ export const Overlay = styled.div` z-index: 1; ` +// $FlowFixMe export const EditButton = styled(Button).attrs({ intent: Intent.SUCCESS, icon: 'edit', @@ -28,6 +29,7 @@ export const EditButton = styled(Button).attrs({ box-shadow: 0 0 10px white; ` +// $FlowFixMe export const Dialog = styled(BaseDialog)` width: 772px; @@ -38,6 +40,7 @@ export const Dialog = styled(BaseDialog)` `}; ` +// $FlowFixMe export const Body = styled.div.attrs({ className: 'pt-dialog-body' })` align-items: flex-start; display: flex; diff --git a/app/javascript/edgenotes/index.jsx b/app/javascript/edgenotes/index.jsx index b876f604b..7c7226a59 100644 --- a/app/javascript/edgenotes/index.jsx +++ b/app/javascript/edgenotes/index.jsx @@ -45,6 +45,7 @@ const EdgenotesCard = ({ edgenoteSlugs, oldStyle }) => { ) } +// $FlowFixMe export default connect(mapStateToProps, () => ({}))(EdgenotesCard) export function getEdgenoteSlugs (editorState: EditorState): string[] { diff --git a/app/javascript/elements/CaseElement.jsx b/app/javascript/elements/CaseElement.jsx index f6731301a..e2a485fbf 100644 --- a/app/javascript/elements/CaseElement.jsx +++ b/app/javascript/elements/CaseElement.jsx @@ -156,6 +156,7 @@ class CaseElement extends React.Component<{ } } +// $FlowFixMe export default connect( mapStateToProps, { deleteElement } diff --git a/app/javascript/overview/Billboard.jsx b/app/javascript/overview/Billboard.jsx index 4f62fcfd0..6c7d7f15e 100644 --- a/app/javascript/overview/Billboard.jsx +++ b/app/javascript/overview/Billboard.jsx @@ -173,11 +173,13 @@ const Billboard = ({ ) +// $FlowFixMe export default connect( mapStateToProps, { updateCase } )(Billboard) +// $FlowFixMe export const Container = styled.section.attrs({ className: 'Billboard' })` position: relative; ` diff --git a/app/javascript/overview/BillboardTitle.jsx b/app/javascript/overview/BillboardTitle.jsx index f461c5d5a..927e3e5a1 100644 --- a/app/javascript/overview/BillboardTitle.jsx +++ b/app/javascript/overview/BillboardTitle.jsx @@ -175,11 +175,13 @@ export const UnconnectedBillboardTitle = ({ ) } +// $FlowFixMe export default connect( mapStateToProps, { updateCase, displayErrorToast } )(UnconnectedBillboardTitle) +// $FlowFixMe export const CoverImageContainer = styled.div.attrs({ className: 'BillboardTitle pt-dark', })` diff --git a/app/javascript/overview/CaseOverview.jsx b/app/javascript/overview/CaseOverview.jsx index d686f9370..cb7b4ffdb 100644 --- a/app/javascript/overview/CaseOverview.jsx +++ b/app/javascript/overview/CaseOverview.jsx @@ -54,4 +54,5 @@ const CaseOverview = ({ editing, location, reader, signInForm }: Props) => { ) } +// $FlowFixMe export default connect(mapStateToProps)(CaseOverview) diff --git a/app/javascript/overview/CommunityChooser.jsx b/app/javascript/overview/CommunityChooser.jsx index f6c7d76bc..8c5acdc2c 100644 --- a/app/javascript/overview/CommunityChooser.jsx +++ b/app/javascript/overview/CommunityChooser.jsx @@ -130,6 +130,7 @@ export const UnconnectedCommunityChooser = injectIntl( } ) +// $FlowFixMe export default connect(mapStateToProps, { updateActiveCommunity })( UnconnectedCommunityChooser ) diff --git a/app/javascript/overview/EnrollForm.jsx b/app/javascript/overview/EnrollForm.jsx index 825fd4b89..9e265bba9 100644 --- a/app/javascript/overview/EnrollForm.jsx +++ b/app/javascript/overview/EnrollForm.jsx @@ -46,4 +46,5 @@ const EnrollForm = ({ caseSlug, readerId, enrollReader }) => ( ) +// $FlowFixMe export default connect(mapStateToProps, { enrollReader })(EnrollForm) diff --git a/app/javascript/overview/StatusBar.jsx b/app/javascript/overview/StatusBar.jsx index ad192bb80..8903f812e 100644 --- a/app/javascript/overview/StatusBar.jsx +++ b/app/javascript/overview/StatusBar.jsx @@ -156,6 +156,7 @@ function StatusBar ({ ) } +// $FlowFixMe export default withRouter( connect( mapStateToProps, diff --git a/app/javascript/overview/TableOfContents.jsx b/app/javascript/overview/TableOfContents.jsx index 783b31232..61200be6b 100644 --- a/app/javascript/overview/TableOfContents.jsx +++ b/app/javascript/overview/TableOfContents.jsx @@ -119,6 +119,7 @@ function TableOfContents ({ ) } +// $FlowFixMe export default withRouter( connect( mapStateToProps, diff --git a/app/javascript/overview/TableOfContentsElement.jsx b/app/javascript/overview/TableOfContentsElement.jsx index 24e07db4d..3481b15cd 100644 --- a/app/javascript/overview/TableOfContentsElement.jsx +++ b/app/javascript/overview/TableOfContentsElement.jsx @@ -92,6 +92,7 @@ function TableOfContentsElement ({ ) } +// $FlowFixMe export default withRouter( connect( mapStateToProps, diff --git a/app/javascript/overview/TeachingGuide.jsx b/app/javascript/overview/TeachingGuide.jsx index b853aa175..2b1652bdd 100644 --- a/app/javascript/overview/TeachingGuide.jsx +++ b/app/javascript/overview/TeachingGuide.jsx @@ -87,6 +87,7 @@ const TeachingGuide = ({ ) } +// $FlowFixMe export default connect(mapStateToProps, { deleteTeachingGuide, updateCase })( TeachingGuide ) diff --git a/app/javascript/page/DetailsForm.jsx b/app/javascript/page/DetailsForm.jsx index 137ad1919..6a93ab319 100644 --- a/app/javascript/page/DetailsForm.jsx +++ b/app/javascript/page/DetailsForm.jsx @@ -69,6 +69,7 @@ const DetailsForm = ({ ) export default DetailsForm +// $FlowFixMe const Container = styled.fieldset.attrs({ className: 'pt-card' })` background-color: rgba(37, 57, 75, 0.5) !important; border: 1px solid white; diff --git a/app/javascript/page/index.jsx b/app/javascript/page/index.jsx index 8e09dbe3d..8adde727b 100644 --- a/app/javascript/page/index.jsx +++ b/app/javascript/page/index.jsx @@ -81,6 +81,7 @@ const Page = (props: Props) => { ) } +// $FlowFixMe export default connect( mapStateToProps, { updatePage, createCard } diff --git a/app/javascript/podcast/index.jsx b/app/javascript/podcast/index.jsx index 358c22f43..4a55478c0 100644 --- a/app/javascript/podcast/index.jsx +++ b/app/javascript/podcast/index.jsx @@ -77,6 +77,7 @@ function Podcast ({ ) } +// $FlowFixMe export default connect( mapStateToProps, { updatePodcast, displayErrorToast } diff --git a/app/javascript/quiz/PostTestLink.jsx b/app/javascript/quiz/PostTestLink.jsx index af39d97e2..da4eea817 100644 --- a/app/javascript/quiz/PostTestLink.jsx +++ b/app/javascript/quiz/PostTestLink.jsx @@ -7,6 +7,7 @@ import React from 'react' import styled from 'styled-components' import { Link } from 'react-router-dom' +// $FlowFixMe const PurpleTOCFooterButton = styled(Link)` background-color: #373566; border-radius: 0 0 2pt 2pt; diff --git a/app/javascript/quiz/Quiz.jsx b/app/javascript/quiz/Quiz.jsx index 81ca27562..7f5367bd8 100644 --- a/app/javascript/quiz/Quiz.jsx +++ b/app/javascript/quiz/Quiz.jsx @@ -87,6 +87,7 @@ export function providesQuiz

( render () { return ( + // $FlowFixMe ( } } + // $FlowFixMe return connect(mapStateToProps, { submitQuiz })(QuizProvider) } diff --git a/app/javascript/redux/reducers/cards.js b/app/javascript/redux/reducers/cards.js index e6663d34a..3c79ee94a 100644 --- a/app/javascript/redux/reducers/cards.js +++ b/app/javascript/redux/reducers/cards.js @@ -14,8 +14,11 @@ import { filter, where, omit, + // $FlowFixMe lensPath, + // $FlowFixMe view, + // $FlowFixMe set, reduce, values, @@ -208,6 +211,7 @@ function sortCommentThreads ( function parseEditorStateFromPersistedCard (card: Card) { const content = card.rawContent + // $FlowFixMe if (content == null) return EditorState.createEmpty(decorator) const contentWithCommentThreads = addCommentThreads(content, card) diff --git a/app/javascript/redux/reducers/index.js b/app/javascript/redux/reducers/index.js index 5feaa3cae..0eeaed90e 100644 --- a/app/javascript/redux/reducers/index.js +++ b/app/javascript/redux/reducers/index.js @@ -37,6 +37,7 @@ const state = { ui, } +// $FlowFixMe const reducer = combineReducers(state) export default reducer diff --git a/app/javascript/redux/reducers/quiz.js b/app/javascript/redux/reducers/quiz.js index b5b2c8dff..af4bdfdb9 100644 --- a/app/javascript/redux/reducers/quiz.js +++ b/app/javascript/redux/reducers/quiz.js @@ -8,6 +8,7 @@ import type { QuizState } from 'redux/state' import type { RecordQuizSubmissionAction } from 'redux/actions' const getInitialQuizState = (): QuizState => + // $FlowFixMe (window.caseData.quiz: QuizState) || { needsPretest: false, needsPosttest: false, diff --git a/app/javascript/shared/Identicon.jsx b/app/javascript/shared/Identicon.jsx index 618e1a7aa..ee7a86283 100644 --- a/app/javascript/shared/Identicon.jsx +++ b/app/javascript/shared/Identicon.jsx @@ -34,6 +34,7 @@ export const identiconStyle = ({ } ` +// $FlowFixMe const IdenticonDiv = styled.div.attrs({ 'aria-label': ({ presentational, text }) => (presentational ? null : text), 'aria-hidden': ({ presentational }) => (presentational ? 'true' : null), diff --git a/app/javascript/suggested_quizzes/AllQuizzes.jsx b/app/javascript/suggested_quizzes/AllQuizzes.jsx index 51d3dcd5f..a6ac213b7 100644 --- a/app/javascript/suggested_quizzes/AllQuizzes.jsx +++ b/app/javascript/suggested_quizzes/AllQuizzes.jsx @@ -36,7 +36,9 @@ function AllQuizzes ({ onCreateQuiz, quizzes, }: Props) { - useEffect(() => fetchSuggestedQuizzes(), []) + useEffect(() => { + fetchSuggestedQuizzes() + }, []) function handleDeleteQuiz (param) { if ( diff --git a/app/javascript/table_of_contents/shared.jsx b/app/javascript/table_of_contents/shared.jsx index 3c69d53cd..324c28fb4 100644 --- a/app/javascript/table_of_contents/shared.jsx +++ b/app/javascript/table_of_contents/shared.jsx @@ -14,8 +14,10 @@ export const Title = styled.h2` margin: 1.6em 0 0.8em 0; ` +// $FlowFixMe export const OuterContainer = styled.div.attrs({ className: 'pt-dark' })`` +// $FlowFixMe export const Container = styled.nav.attrs(p => ({ className: `c-toc ${p.disabled ? 'c-toc--disabled' : ''}`, }))`` @@ -45,6 +47,7 @@ export const List = styled.ol` export const Item = styled.li`` +// $FlowFixMe export const Link = styled(NavLink)` color: #ebeae4; display: flex; @@ -88,10 +91,12 @@ export const Details = styled.div` } ` +// $FlowFixMe export const ElementIcon = styled(Label)` padding-right: 0.5em; ` +// $FlowFixMe export const Actions = styled.div.attrs({ className: props => `c-toc__actions pt-button-group pt-fill ${ @@ -99,11 +104,13 @@ export const Actions = styled.div.attrs({ }`, })`` +// $FlowFixMe export const AddButton = styled.button.attrs({ type: 'button', className: 'pt-button pt-icon-add', })`` +// $FlowFixMe export const AssessmentButton = styled(Link).attrs({ className: 'pt-button pt-fill pt-icon-properties pt-intent-success', })` diff --git a/app/javascript/utility/A11y.jsx b/app/javascript/utility/A11y.jsx index d2049d846..2693b7cf3 100644 --- a/app/javascript/utility/A11y.jsx +++ b/app/javascript/utility/A11y.jsx @@ -137,6 +137,7 @@ class ActiveFocusContainer extends React.Component<{ priority: number, children: React.Node, }> { + // $FlowFixMe static activeFocusContainers = new SortedList() containerElement: ?HTMLDivElement diff --git a/app/javascript/utility/ErrorBoundary.jsx b/app/javascript/utility/ErrorBoundary.jsx index a9bbb310f..62f41e099 100644 --- a/app/javascript/utility/ErrorBoundary.jsx +++ b/app/javascript/utility/ErrorBoundary.jsx @@ -55,6 +55,7 @@ class ErrorBoundary extends React.Component< } } export default ErrorBoundary +// $FlowFixMe const Container = styled.div.attrs({ className: 'pt-dark' })` margin-top: 40px; diff --git a/app/javascript/utility/FileUploadWidget.jsx b/app/javascript/utility/FileUploadWidget.jsx index f128d504e..8267e4fd9 100644 --- a/app/javascript/utility/FileUploadWidget.jsx +++ b/app/javascript/utility/FileUploadWidget.jsx @@ -54,6 +54,7 @@ const FileUploadWidget = ({ export default FileUploadWidget +// $FlowFixMe export const PositionedFileUploadWidget = styled(FileUploadWidget)` position: absolute; top: 10px; diff --git a/app/javascript/utility/Less.jsx b/app/javascript/utility/Less.jsx index 8a9a37d24..4b4159d4d 100644 --- a/app/javascript/utility/Less.jsx +++ b/app/javascript/utility/Less.jsx @@ -56,6 +56,7 @@ class Less extends React.Component< (this._innerContainer = ref)} onClick={this.handleOpen} > diff --git a/app/javascript/utility/Lock.jsx b/app/javascript/utility/Lock.jsx index 534805565..f94c4bc7c 100644 --- a/app/javascript/utility/Lock.jsx +++ b/app/javascript/utility/Lock.jsx @@ -99,6 +99,7 @@ const Lock = ({ ) +// $FlowFixMe export default connect(mapStateToProps, mapDispatchToProps)(Lock) /** diff --git a/app/javascript/utility/ScrollView.jsx b/app/javascript/utility/ScrollView.jsx index b72f83d2c..1c27e814d 100644 --- a/app/javascript/utility/ScrollView.jsx +++ b/app/javascript/utility/ScrollView.jsx @@ -62,6 +62,7 @@ function cancelScrollEvent (e: WheelEvent) { return false } +// $FlowFixMe const ScrollViewDiv = styled.div.attrs({ className: 'ScrollView' })` max-height: ${({ maxHeightOffset }) => `calc(100vh - (${maxHeightOffset}))` || '100vh'}; diff --git a/app/javascript/utility/SortableList.jsx b/app/javascript/utility/SortableList.jsx index a778131e6..801bcf965 100644 --- a/app/javascript/utility/SortableList.jsx +++ b/app/javascript/utility/SortableList.jsx @@ -85,6 +85,7 @@ const Item = SortableElement( ) ) +// $FlowFixMe const Container = SortableContainer( ({ newItem, items, render, onChange }: ContainerProps<*>) => (

diff --git a/app/javascript/utility/Statistics.jsx b/app/javascript/utility/Statistics.jsx index 3b769c6be..110164192 100644 --- a/app/javascript/utility/Statistics.jsx +++ b/app/javascript/utility/Statistics.jsx @@ -91,6 +91,7 @@ class Statistics extends React.Component { } } +// $FlowFixMe export default connect( mapStateToProps, { loadStatistics } diff --git a/app/javascript/utility/Tracker.jsx b/app/javascript/utility/Tracker.jsx index aaa8b20c6..0b4ee021c 100644 --- a/app/javascript/utility/Tracker.jsx +++ b/app/javascript/utility/Tracker.jsx @@ -114,6 +114,7 @@ function mapStateToProps ({ caseData }: State) { caseSlug: caseData.slug, } } +// $FlowFixMe const Tracker = connect( mapStateToProps, () => ({}) diff --git a/docs/website/pages/en/index.js b/docs/website/pages/en/index.js index 093b3d0cb..73ec74eb0 100755 --- a/docs/website/pages/en/index.js +++ b/docs/website/pages/en/index.js @@ -8,6 +8,7 @@ const React = require('react') +// $FlowFixMe const CompLibrary = require('../../core/CompLibrary.js') const MarkdownBlock = CompLibrary.MarkdownBlock /* Used to read markdown */ const Container = CompLibrary.Container @@ -27,6 +28,7 @@ function pageUrl (page, language) { return siteConfig.baseUrl + (language ? language + '/' : '') + page } +// $FlowFixMe class Button extends React.Component { render () { return ( @@ -39,6 +41,7 @@ class Button extends React.Component { } } +// $FlowFixMe Button.defaultProps = { target: '_self', } @@ -72,6 +75,7 @@ const PromoSection = props => (
) +// $FlowFixMe class HomeSplash extends React.Component { render () { let language = this.props.language || '' @@ -97,12 +101,15 @@ class HomeSplash extends React.Component { const Block = props => ( @@ -163,6 +170,7 @@ const Description = props => ( ) +// $FlowFixMe class Index extends React.Component { render () { let language = this.props.language || '' diff --git a/package.json b/package.json index 5cdf59956..70dbffa43 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "eslint-plugin-promise": "^4.0.0", "eslint-plugin-react": "^7.11.1", "eslint-plugin-standard": "^4.0.0", - "flow-bin": "0.83.0", + "flow-bin": "0.87.0", "flow-inspect": "^1.0.1", "jest": "^23.6.0", "prettier": "^1.15.2", diff --git a/yarn.lock b/yarn.lock index 3496a0b56..e99c2e650 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4663,10 +4663,10 @@ flatten@^1.0.2: resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= -flow-bin@0.83.0: - version "0.83.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.83.0.tgz#fd26f5f95758d7701264b3f9a1e1a3d4cbcab1a9" - integrity sha512-1K83EL/U9Gh0BaXPKkZe6TRizSmNSKx9Wuws1c8gh7DJEwiburtCxYT+4o7in1+GnNEm3CZWnbnVV8n9HMpiDA== +flow-bin@0.87.0: + version "0.87.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.87.0.tgz#fab7f984d8cc767e93fa9eb01cf7d57ed744f19d" + integrity sha512-mnvBXXZkUp4y6A96bR5BHa3q1ioIIN2L10w5osxJqagAakTXFYZwjl0t9cT3y2aCEf1wnK6n91xgYypQS/Dqbw== flow-inspect@^1.0.1: version "1.0.1"