From c9e90354c0de9b983c00d38847277583991a2fc1 Mon Sep 17 00:00:00 2001 From: Andrew Musgrave Date: Fri, 21 Dec 2018 12:56:05 -0500 Subject: [PATCH 1/2] Infer types Updated types Format Fix withSticky --- .../withAppProvider/withAppProvider.tsx | 14 ++--- .../utilities/withSticky/withSticky.tsx | 4 +- src/components/Autocomplete/Autocomplete.tsx | 2 +- src/components/Avatar/Avatar.tsx | 2 +- src/components/Badge/Badge.tsx | 2 +- src/components/Button/Button.tsx | 2 +- src/components/Checkbox/Checkbox.tsx | 2 +- src/components/ChoiceList/ChoiceList.tsx | 2 +- src/components/Collapsible/Collapsible.tsx | 2 +- src/components/DataTable/DataTable.tsx | 2 +- .../DataTable/components/Cell/Cell.tsx | 2 +- .../components/Navigation/Navigation.tsx | 2 +- src/components/DatePicker/DatePicker.tsx | 2 +- .../DatePicker/components/Day/Day.tsx | 2 +- src/components/DropZone/DropZone.tsx | 2 +- .../components/FileUpload/FileUpload.tsx | 6 +- .../EmptySearchResult/EmptySearchResult.tsx | 2 +- src/components/Frame/Frame.tsx | 2 +- .../ContextualSaveBar/ContextualSaveBar.tsx | 2 +- .../DiscardConfirmationModal.tsx | 2 +- src/components/Icon/Icon.tsx | 2 +- src/components/Loading/Loading.tsx | 2 +- src/components/Modal/Modal.tsx | 2 +- .../Navigation/components/Item/Item.tsx | 2 +- src/components/OptionList/OptionList.tsx | 2 +- .../OptionList/tests/OptionList.test.tsx | 62 +++++++------------ src/components/Page/Page.tsx | 2 +- .../Page/components/Header/Header.tsx | 2 +- src/components/Pagination/Pagination.tsx | 2 +- src/components/ProgressBar/ProgressBar.tsx | 2 +- src/components/RangeSlider/RangeSlider.tsx | 2 +- src/components/ResourceList/ResourceList.tsx | 2 +- .../components/BulkActions/BulkActions.tsx | 2 +- .../CheckableButton/CheckableButton.tsx | 2 +- .../FilterControl/FilterControl.tsx | 4 +- .../components/DateSelector/DateSelector.tsx | 2 +- .../FilterCreator/FilterCreator.tsx | 2 +- .../FilterValueSelector.tsx | 2 +- .../ResourceList/components/Item/Item.tsx | 4 +- .../ResourcePicker/ResourcePicker.tsx | 2 +- src/components/SkeletonPage/SkeletonPage.tsx | 2 +- src/components/Spinner/Spinner.tsx | 2 +- src/components/Tabs/components/Tab/Tab.tsx | 2 +- src/components/Tag/Tag.tsx | 2 +- src/components/Toast/Toast.tsx | 2 +- src/components/TopBar/TopBar.tsx | 2 +- src/components/UnstyledLink/UnstyledLink.tsx | 4 +- src/components/WithContext/WithContext.tsx | 18 ++---- src/components/WithRef/WithRef.tsx | 4 +- 49 files changed, 90 insertions(+), 110 deletions(-) diff --git a/src/components/AppProvider/utilities/withAppProvider/withAppProvider.tsx b/src/components/AppProvider/utilities/withAppProvider/withAppProvider.tsx index 4351a839a3e..4f06c1e6dfb 100644 --- a/src/components/AppProvider/utilities/withAppProvider/withAppProvider.tsx +++ b/src/components/AppProvider/utilities/withAppProvider/withAppProvider.tsx @@ -23,13 +23,13 @@ export interface WithAppProviderProps { }; } -export default function withAppProvider() { - return function addProvider( +export default function withAppProvider() { + return function addProvider( WrappedComponent: - | React.ComponentClass & C - | React.SFC & C, - ): React.ComponentClass & C { - class WithProvider extends React.Component { + | React.ComponentClass & C + | React.SFC & C, + ): React.ComponentClass & C { + class WithProvider extends React.Component { static contextTypes = WrappedComponent.contextTypes ? merge(WrappedComponent.contextTypes, polarisAppProviderContextTypes) : polarisAppProviderContextTypes; @@ -90,6 +90,6 @@ export default function withAppProvider() { WrappedComponent as React.ComponentClass, ); - return FinalComponent as React.ComponentClass & C; + return FinalComponent as React.ComponentClass & C; }; } diff --git a/src/components/AppProvider/utilities/withSticky/withSticky.tsx b/src/components/AppProvider/utilities/withSticky/withSticky.tsx index 3efaa89364d..eb98856830c 100644 --- a/src/components/AppProvider/utilities/withSticky/withSticky.tsx +++ b/src/components/AppProvider/utilities/withSticky/withSticky.tsx @@ -10,7 +10,7 @@ export default function withSticky() { WrappedComponent: | React.ComponentClass & C | React.SFC & C, - ): any & C { + ): React.ComponentClass & C { // eslint-disable-next-line shopify/react-initialize-state class WithStickyManager extends React.Component< {}, @@ -50,6 +50,6 @@ export default function withSticky() { WithStickyManager, WrappedComponent as React.ComponentClass, ); - return FinalComponent as React.ComponentClass & C; + return FinalComponent as React.ComponentClass & C; }; } diff --git a/src/components/Autocomplete/Autocomplete.tsx b/src/components/Autocomplete/Autocomplete.tsx index d7f8cd8b1de..4c490d2498b 100644 --- a/src/components/Autocomplete/Autocomplete.tsx +++ b/src/components/Autocomplete/Autocomplete.tsx @@ -101,4 +101,4 @@ export class Autocomplete extends React.PureComponent { } } -export default withAppProvider()(Autocomplete); +export default withAppProvider()(Autocomplete); diff --git a/src/components/Avatar/Avatar.tsx b/src/components/Avatar/Avatar.tsx index 787fb6dd1fc..24ec32f1a44 100644 --- a/src/components/Avatar/Avatar.tsx +++ b/src/components/Avatar/Avatar.tsx @@ -173,4 +173,4 @@ function customerPlaceholder(name?: string) { : AVATAR_IMAGES[0]; } -export default withAppProvider()(Avatar); +export default withAppProvider()(Avatar); diff --git a/src/components/Badge/Badge.tsx b/src/components/Badge/Badge.tsx index 919ed13df68..f31d08f0be5 100644 --- a/src/components/Badge/Badge.tsx +++ b/src/components/Badge/Badge.tsx @@ -109,4 +109,4 @@ function Badge({ ); } -export default withAppProvider()(Badge); +export default withAppProvider()(Badge); diff --git a/src/components/Button/Button.tsx b/src/components/Button/Button.tsx index b317f7804d1..070dcf1428c 100644 --- a/src/components/Button/Button.tsx +++ b/src/components/Button/Button.tsx @@ -203,4 +203,4 @@ function isIconSource(x: any): x is IconSource { return typeof x === 'string' || (typeof x === 'object' && x.body); } -export default withAppProvider()(Button); +export default withAppProvider()(Button); diff --git a/src/components/Checkbox/Checkbox.tsx b/src/components/Checkbox/Checkbox.tsx index 9fc05857208..60d5829cc25 100644 --- a/src/components/Checkbox/Checkbox.tsx +++ b/src/components/Checkbox/Checkbox.tsx @@ -131,4 +131,4 @@ function Checkbox({ ); } -export default withAppProvider()(Checkbox); +export default withAppProvider()(Checkbox); diff --git a/src/components/ChoiceList/ChoiceList.tsx b/src/components/ChoiceList/ChoiceList.tsx index 043fdd24d18..5ff445bb877 100644 --- a/src/components/ChoiceList/ChoiceList.tsx +++ b/src/components/ChoiceList/ChoiceList.tsx @@ -145,4 +145,4 @@ function updateSelectedChoices( return selected.filter((selectedChoice) => selectedChoice !== value); } -export default withAppProvider()(ChoiceList); +export default withAppProvider()(ChoiceList); diff --git a/src/components/Collapsible/Collapsible.tsx b/src/components/Collapsible/Collapsible.tsx index cc305e73378..45316a77de4 100644 --- a/src/components/Collapsible/Collapsible.tsx +++ b/src/components/Collapsible/Collapsible.tsx @@ -192,4 +192,4 @@ function collapsibleHeight( return `${height || 0}px`; } -export default withAppProvider()(Collapsible); +export default withAppProvider()(Collapsible); diff --git a/src/components/DataTable/DataTable.tsx b/src/components/DataTable/DataTable.tsx index 0626f3eb4f0..1755d1c5dcf 100644 --- a/src/components/DataTable/DataTable.tsx +++ b/src/components/DataTable/DataTable.tsx @@ -511,4 +511,4 @@ export class DataTable extends React.PureComponent< } } -export default withAppProvider()(DataTable); +export default withAppProvider()(DataTable); diff --git a/src/components/DataTable/components/Cell/Cell.tsx b/src/components/DataTable/components/Cell/Cell.tsx index fc856cae960..ae58f0e19a9 100644 --- a/src/components/DataTable/components/Cell/Cell.tsx +++ b/src/components/DataTable/components/Cell/Cell.tsx @@ -126,4 +126,4 @@ function Cell({ return cellMarkup; } -export default withAppProvider()(Cell); +export default withAppProvider()(Cell); diff --git a/src/components/DataTable/components/Navigation/Navigation.tsx b/src/components/DataTable/components/Navigation/Navigation.tsx index fa240c1a773..c7bff6d1982 100644 --- a/src/components/DataTable/components/Navigation/Navigation.tsx +++ b/src/components/DataTable/components/Navigation/Navigation.tsx @@ -66,4 +66,4 @@ function Navigation({ ); } -export default withAppProvider()(Navigation); +export default withAppProvider()(Navigation); diff --git a/src/components/DatePicker/DatePicker.tsx b/src/components/DatePicker/DatePicker.tsx index f93caa68569..0cb932eeb45 100644 --- a/src/components/DatePicker/DatePicker.tsx +++ b/src/components/DatePicker/DatePicker.tsx @@ -325,4 +325,4 @@ function deriveRange(selected?: Date | Range) { return selected instanceof Date ? {start: selected, end: selected} : selected; } -export default withAppProvider()(DatePicker); +export default withAppProvider()(DatePicker); diff --git a/src/components/DatePicker/components/Day/Day.tsx b/src/components/DatePicker/components/Day/Day.tsx index 51b2f35f206..d8899846412 100644 --- a/src/components/DatePicker/components/Day/Day.tsx +++ b/src/components/DatePicker/components/Day/Day.tsx @@ -94,4 +94,4 @@ export class Day extends React.PureComponent { } } -export default withAppProvider()(Day); +export default withAppProvider()(Day); diff --git a/src/components/DropZone/DropZone.tsx b/src/components/DropZone/DropZone.tsx index f2b039df349..11cf6391ba3 100755 --- a/src/components/DropZone/DropZone.tsx +++ b/src/components/DropZone/DropZone.tsx @@ -561,4 +561,4 @@ function handleDragStart(event: React.DragEvent) { event.stopPropagation(); } -export default withAppProvider()(DropZone); +export default withAppProvider()(DropZone); diff --git a/src/components/DropZone/components/FileUpload/FileUpload.tsx b/src/components/DropZone/components/FileUpload/FileUpload.tsx index 2d1f3a65a6a..bfd5d1fa5d8 100755 --- a/src/components/DropZone/components/FileUpload/FileUpload.tsx +++ b/src/components/DropZone/components/FileUpload/FileUpload.tsx @@ -149,7 +149,7 @@ export class FileUpload extends React.Component { } export default compose( - withContext(Consumer), - withAppProvider(), - withRef(), + withContext(Consumer), + withAppProvider(), + withRef(), )(FileUpload); diff --git a/src/components/EmptySearchResult/EmptySearchResult.tsx b/src/components/EmptySearchResult/EmptySearchResult.tsx index e3154a42be8..4cbd0423176 100644 --- a/src/components/EmptySearchResult/EmptySearchResult.tsx +++ b/src/components/EmptySearchResult/EmptySearchResult.tsx @@ -52,4 +52,4 @@ export class EmptySearchResult extends React.PureComponent< } } -export default withAppProvider()(EmptySearchResult); +export default withAppProvider()(EmptySearchResult); diff --git a/src/components/Frame/Frame.tsx b/src/components/Frame/Frame.tsx index 4e30bc5c38d..eef05f3c94d 100644 --- a/src/components/Frame/Frame.tsx +++ b/src/components/Frame/Frame.tsx @@ -416,4 +416,4 @@ function isMobileView() { return navigationBarCollapsed().matches; } -export default withAppProvider()(Frame); +export default withAppProvider()(Frame); diff --git a/src/components/Frame/components/ContextualSaveBar/ContextualSaveBar.tsx b/src/components/Frame/components/ContextualSaveBar/ContextualSaveBar.tsx index c831104f025..190f0fc5122 100644 --- a/src/components/Frame/components/ContextualSaveBar/ContextualSaveBar.tsx +++ b/src/components/Frame/components/ContextualSaveBar/ContextualSaveBar.tsx @@ -131,4 +131,4 @@ class ContextualSaveBar extends React.PureComponent { } } -export default withAppProvider()(ContextualSaveBar); +export default withAppProvider()(ContextualSaveBar); diff --git a/src/components/Frame/components/ContextualSaveBar/components/DiscardConfirmationModal/DiscardConfirmationModal.tsx b/src/components/Frame/components/ContextualSaveBar/components/DiscardConfirmationModal/DiscardConfirmationModal.tsx index ba12e680cb4..b5163344398 100644 --- a/src/components/Frame/components/ContextualSaveBar/components/DiscardConfirmationModal/DiscardConfirmationModal.tsx +++ b/src/components/Frame/components/ContextualSaveBar/components/DiscardConfirmationModal/DiscardConfirmationModal.tsx @@ -47,4 +47,4 @@ function DiscardConfirmationModal({ ); } -export default withAppProvider()(DiscardConfirmationModal); +export default withAppProvider()(DiscardConfirmationModal); diff --git a/src/components/Icon/Icon.tsx b/src/components/Icon/Icon.tsx index c3a02174e2c..0fb860d54ff 100644 --- a/src/components/Icon/Icon.tsx +++ b/src/components/Icon/Icon.tsx @@ -239,4 +239,4 @@ function isBundledIcon(key: string | BundledIcon): key is BundledIcon { return Object.keys(BUNDLED_ICONS).includes(key); } -export default withAppProvider()(Icon); +export default withAppProvider()(Icon); diff --git a/src/components/Loading/Loading.tsx b/src/components/Loading/Loading.tsx index b534fadb015..894ef6d5f03 100644 --- a/src/components/Loading/Loading.tsx +++ b/src/components/Loading/Loading.tsx @@ -37,4 +37,4 @@ export class Loading extends React.PureComponent { } } -export default withAppProvider()(Loading); +export default withAppProvider()(Loading); diff --git a/src/components/Modal/Modal.tsx b/src/components/Modal/Modal.tsx index 15d4e3e8c5a..da6d077470c 100644 --- a/src/components/Modal/Modal.tsx +++ b/src/components/Modal/Modal.tsx @@ -384,4 +384,4 @@ function isIframeModal( ); } -export default withAppProvider()(Modal); +export default withAppProvider()(Modal); diff --git a/src/components/Navigation/components/Item/Item.tsx b/src/components/Navigation/components/Item/Item.tsx index 4240bb836a0..e9b7281fb25 100644 --- a/src/components/Navigation/components/Item/Item.tsx +++ b/src/components/Navigation/components/Item/Item.tsx @@ -376,6 +376,6 @@ function matchStateForItem( return matchesUrl ? MatchState.MatchUrl : MatchState.NoMatch; } -export const Item = withAppProvider()(BaseItem); +export const Item = withAppProvider()(BaseItem); export default Item; diff --git a/src/components/OptionList/OptionList.tsx b/src/components/OptionList/OptionList.tsx index 3c585a8bddf..aee26edaca4 100644 --- a/src/components/OptionList/OptionList.tsx +++ b/src/components/OptionList/OptionList.tsx @@ -226,4 +226,4 @@ function testSectionsPropEquality( return optionsAreEqual && titlesAreEqual; } -export default withAppProvider()(OptionList); +export default withAppProvider()(OptionList); diff --git a/src/components/OptionList/tests/OptionList.test.tsx b/src/components/OptionList/tests/OptionList.test.tsx index 59b885654e2..bbf66650723 100644 --- a/src/components/OptionList/tests/OptionList.test.tsx +++ b/src/components/OptionList/tests/OptionList.test.tsx @@ -61,7 +61,7 @@ describe('', () => { it('renders options and sections', () => { const {options, sections} = defaultProps; - const optionWrappers = shallowWithAppProvider( + const optionWrappers = shallowWithAppProvider( , ).find(Option); @@ -71,7 +71,7 @@ describe('', () => { it('renders sections', () => { const {sections} = defaultProps; const options: OptionDescriptor[] = []; - const optionWrappers = shallowWithAppProvider( + const optionWrappers = shallowWithAppProvider( , ).find(Option); @@ -81,7 +81,7 @@ describe('', () => { it('renders options', () => { const {options} = defaultProps; const sections: SectionDescriptor[] = []; - const optionWrappers = shallowWithAppProvider( + const optionWrappers = shallowWithAppProvider( , ).find(Option); @@ -90,9 +90,7 @@ describe('', () => { it('re-renders with new options passed in', () => { const {sections} = defaultProps; - const optionList = shallowWithAppProvider( - , - ); + const optionList = shallowWithAppProvider(); const newOptions: OptionDescriptor[] = [ { @@ -114,9 +112,7 @@ describe('', () => { it('re-renders with new sections passed in', () => { const {options} = defaultProps; - const optionList = shallowWithAppProvider( - , - ); + const optionList = shallowWithAppProvider(); const newSections: SectionDescriptor[] = [ { @@ -141,9 +137,7 @@ describe('', () => { }); it('re-renders with new options and new sections passed in', () => { - const optionList = shallowWithAppProvider( - , - ); + const optionList = shallowWithAppProvider(); const newOptions: OptionDescriptor[] = [ { @@ -181,9 +175,7 @@ describe('', () => { it('re-renders with undefined options', () => { const {sections} = defaultProps; - const optionList = shallowWithAppProvider( - , - ); + const optionList = shallowWithAppProvider(); optionList.setProps({options: undefined}); @@ -193,9 +185,7 @@ describe('', () => { it('re-renders with undefined sections', () => { const {options} = defaultProps; - const optionList = shallowWithAppProvider( - , - ); + const optionList = shallowWithAppProvider(); optionList.setProps({sections: undefined}); @@ -204,9 +194,7 @@ describe('', () => { }); it('re-renders with undefined options and new sections', () => { - const optionList = shallowWithAppProvider( - , - ); + const optionList = shallowWithAppProvider(); const newSections: SectionDescriptor[] = [ { @@ -231,9 +219,7 @@ describe('', () => { }); it('re-renders with new options and undefined sections', () => { - const optionList = shallowWithAppProvider( - , - ); + const optionList = shallowWithAppProvider(); const newOptions: OptionDescriptor[] = [ { @@ -257,7 +243,7 @@ describe('', () => { const spy = jest.fn(); const {options, sections} = defaultProps; - const buttonWrappers = mountWithAppProvider( + const buttonWrappers = mountWithAppProvider( , ).find('button'); @@ -270,7 +256,7 @@ describe('', () => { describe('allowMultiple', () => { it('renders options and sections', () => { const {options, sections} = defaultProps; - const optionWrappers = shallowWithAppProvider( + const optionWrappers = shallowWithAppProvider( , ).find(Option); @@ -280,7 +266,7 @@ describe('', () => { it('renders sections', () => { const {sections} = defaultProps; const options: OptionDescriptor[] = []; - const optionWrappers = shallowWithAppProvider( + const optionWrappers = shallowWithAppProvider( , ).find(Option); @@ -290,7 +276,7 @@ describe('', () => { it('renders options', () => { const {options} = defaultProps; const sections: SectionDescriptor[] = []; - const optionWrappers = shallowWithAppProvider( + const optionWrappers = shallowWithAppProvider( , ).find(Option); @@ -299,7 +285,7 @@ describe('', () => { it('re-renders with new options passed in', () => { const {sections} = defaultProps; - const optionList = shallowWithAppProvider( + const optionList = shallowWithAppProvider( , ); @@ -323,7 +309,7 @@ describe('', () => { it('re-renders with new sections passed in', () => { const {options} = defaultProps; - const optionList = shallowWithAppProvider( + const optionList = shallowWithAppProvider( , ); @@ -350,7 +336,7 @@ describe('', () => { }); it('re-renders with new options and new sections passed in', () => { - const optionList = shallowWithAppProvider( + const optionList = shallowWithAppProvider( , ); @@ -392,7 +378,7 @@ describe('', () => { it('re-renders with undefined options', () => { const {sections} = defaultProps; - const optionList = shallowWithAppProvider( + const optionList = shallowWithAppProvider( , ); @@ -404,7 +390,7 @@ describe('', () => { it('re-renders with undefined sections', () => { const {options} = defaultProps; - const optionList = shallowWithAppProvider( + const optionList = shallowWithAppProvider( , ); @@ -415,7 +401,7 @@ describe('', () => { }); it('re-renders with undefined options and new sections', () => { - const optionList = shallowWithAppProvider( + const optionList = shallowWithAppProvider( , ); @@ -442,7 +428,7 @@ describe('', () => { }); it('re-renders with new options and undefined sections', () => { - const optionList = shallowWithAppProvider( + const optionList = shallowWithAppProvider( , ); @@ -469,7 +455,7 @@ describe('', () => { const spy = jest.fn(); const {options, sections} = defaultProps; - const inputWrappers = mountWithAppProvider( + const inputWrappers = mountWithAppProvider( , ).find('input'); @@ -484,7 +470,7 @@ describe('', () => { const {options, sections} = defaultProps; const selected = ['11', '8']; - const inputWrappers = mountWithAppProvider( + const inputWrappers = mountWithAppProvider( ', () => { const {options, sections} = defaultProps; const selected = ['10', '8', '5']; - const inputWrappers = mountWithAppProvider( + const inputWrappers = mountWithAppProvider( { } } -export default withAppProvider()(Page); +export default withAppProvider()(Page); diff --git a/src/components/Page/components/Header/Header.tsx b/src/components/Page/components/Header/Header.tsx index 8a95e113cc3..17714899a44 100644 --- a/src/components/Page/components/Header/Header.tsx +++ b/src/components/Page/components/Header/Header.tsx @@ -291,4 +291,4 @@ function secondaryActionsFrom( )); } -export default withAppProvider()(Header); +export default withAppProvider()(Header); diff --git a/src/components/Pagination/Pagination.tsx b/src/components/Pagination/Pagination.tsx index f0f8f0ad6b8..a23ad7219e7 100644 --- a/src/components/Pagination/Pagination.tsx +++ b/src/components/Pagination/Pagination.tsx @@ -192,4 +192,4 @@ function handleCallback(fn: () => void) { }; } -export default withAppProvider()(Pagination); +export default withAppProvider()(Pagination); diff --git a/src/components/ProgressBar/ProgressBar.tsx b/src/components/ProgressBar/ProgressBar.tsx index f8aa458b1cb..0b1a7d45ee8 100644 --- a/src/components/ProgressBar/ProgressBar.tsx +++ b/src/components/ProgressBar/ProgressBar.tsx @@ -68,4 +68,4 @@ function parseProgress(progress: number, warningMessage: string) { return progressWidth; } -export default withAppProvider()(ProgressBar); +export default withAppProvider()(ProgressBar); diff --git a/src/components/RangeSlider/RangeSlider.tsx b/src/components/RangeSlider/RangeSlider.tsx index e911d819247..93f33bc7fed 100644 --- a/src/components/RangeSlider/RangeSlider.tsx +++ b/src/components/RangeSlider/RangeSlider.tsx @@ -202,4 +202,4 @@ export function invertNumber(number: number) { } } -export default withAppProvider()(RangeSlider); +export default withAppProvider()(RangeSlider); diff --git a/src/components/ResourceList/ResourceList.tsx b/src/components/ResourceList/ResourceList.tsx index d1ebb9dcac4..c1fda7a9ecb 100644 --- a/src/components/ResourceList/ResourceList.tsx +++ b/src/components/ResourceList/ResourceList.tsx @@ -705,4 +705,4 @@ function isSmallScreen() { : window.innerWidth <= SMALL_SCREEN_WIDTH; } -export default withAppProvider()(ResourceList); +export default withAppProvider()(ResourceList); diff --git a/src/components/ResourceList/components/BulkActions/BulkActions.tsx b/src/components/ResourceList/components/BulkActions/BulkActions.tsx index 63cc2b3d9ac..00cea4b4775 100644 --- a/src/components/ResourceList/components/BulkActions/BulkActions.tsx +++ b/src/components/ResourceList/components/BulkActions/BulkActions.tsx @@ -481,4 +481,4 @@ function instanceOfBulkActionArray( return actions.length === validList.length; } -export default withAppProvider()(BulkActions); +export default withAppProvider()(BulkActions); diff --git a/src/components/ResourceList/components/CheckableButton/CheckableButton.tsx b/src/components/ResourceList/components/CheckableButton/CheckableButton.tsx index 26b28cfdcba..20135a80b31 100644 --- a/src/components/ResourceList/components/CheckableButton/CheckableButton.tsx +++ b/src/components/ResourceList/components/CheckableButton/CheckableButton.tsx @@ -51,4 +51,4 @@ function CheckableButton({ ); } -export default withAppProvider()(CheckableButton); +export default withAppProvider()(CheckableButton); diff --git a/src/components/ResourceList/components/FilterControl/FilterControl.tsx b/src/components/ResourceList/components/FilterControl/FilterControl.tsx index beace809158..372d691b5a5 100644 --- a/src/components/ResourceList/components/FilterControl/FilterControl.tsx +++ b/src/components/ResourceList/components/FilterControl/FilterControl.tsx @@ -297,6 +297,6 @@ function findOperatorLabel(filter: Filter, appliedFilter: AppliedFilter) { } export default compose( - withAppProvider(), - withContext(Consumer), + withAppProvider(), + withContext(Consumer), )(FilterControl); diff --git a/src/components/ResourceList/components/FilterControl/components/DateSelector/DateSelector.tsx b/src/components/ResourceList/components/FilterControl/components/DateSelector/DateSelector.tsx index b868487847a..7bedb039b73 100644 --- a/src/components/ResourceList/components/FilterControl/components/DateSelector/DateSelector.tsx +++ b/src/components/ResourceList/components/FilterControl/components/DateSelector/DateSelector.tsx @@ -412,4 +412,4 @@ function formatDateValue(date: Date) { return date.toISOString().slice(0, 10); } -export default withAppProvider()(DateSelector); +export default withAppProvider()(DateSelector); diff --git a/src/components/ResourceList/components/FilterControl/components/FilterCreator/FilterCreator.tsx b/src/components/ResourceList/components/FilterControl/components/FilterCreator/FilterCreator.tsx index 1ce250a381e..e9826cee45b 100644 --- a/src/components/ResourceList/components/FilterControl/components/FilterCreator/FilterCreator.tsx +++ b/src/components/ResourceList/components/FilterControl/components/FilterCreator/FilterCreator.tsx @@ -211,4 +211,4 @@ export class FilterCreator extends React.PureComponent { } } -export default withAppProvider()(FilterCreator); +export default withAppProvider()(FilterCreator); diff --git a/src/components/ResourceList/components/FilterControl/components/FilterValueSelector/FilterValueSelector.tsx b/src/components/ResourceList/components/FilterControl/components/FilterValueSelector/FilterValueSelector.tsx index 51908a5cecd..5ddd8da0d29 100644 --- a/src/components/ResourceList/components/FilterControl/components/FilterValueSelector/FilterValueSelector.tsx +++ b/src/components/ResourceList/components/FilterControl/components/FilterValueSelector/FilterValueSelector.tsx @@ -135,4 +135,4 @@ function buildOperatorOptions(operatorText?: string | Operator[]) { }); } -export default withAppProvider()(FilterValueSelector); +export default withAppProvider()(FilterValueSelector); diff --git a/src/components/ResourceList/components/Item/Item.tsx b/src/components/ResourceList/components/Item/Item.tsx index 0283ff581f6..5d685245bce 100644 --- a/src/components/ResourceList/components/Item/Item.tsx +++ b/src/components/ResourceList/components/Item/Item.tsx @@ -401,6 +401,6 @@ function stopPropagation(event: React.MouseEvent) { } export default compose( - withContext(Consumer), - withAppProvider(), + withContext(Consumer), + withAppProvider(), )(Item); diff --git a/src/components/ResourcePicker/ResourcePicker.tsx b/src/components/ResourcePicker/ResourcePicker.tsx index 0fa9ff13c6e..ae792319b65 100644 --- a/src/components/ResourcePicker/ResourcePicker.tsx +++ b/src/components/ResourcePicker/ResourcePicker.tsx @@ -157,4 +157,4 @@ export class ResourcePicker extends React.PureComponent { } } -export default withAppProvider()(ResourcePicker); +export default withAppProvider()(ResourcePicker); diff --git a/src/components/SkeletonPage/SkeletonPage.tsx b/src/components/SkeletonPage/SkeletonPage.tsx index 3024fdffb37..33fe051888c 100644 --- a/src/components/SkeletonPage/SkeletonPage.tsx +++ b/src/components/SkeletonPage/SkeletonPage.tsx @@ -113,4 +113,4 @@ function renderTitle(title: string) { return
{titleContent}
; } -export default withAppProvider()(SkeletonPage); +export default withAppProvider()(SkeletonPage); diff --git a/src/components/Spinner/Spinner.tsx b/src/components/Spinner/Spinner.tsx index aed1d3a24ea..a7c78d30541 100644 --- a/src/components/Spinner/Spinner.tsx +++ b/src/components/Spinner/Spinner.tsx @@ -69,4 +69,4 @@ function Spinner({ ); } -export default withAppProvider()(Spinner); +export default withAppProvider()(Spinner); diff --git a/src/components/Tabs/components/Tab/Tab.tsx b/src/components/Tabs/components/Tab/Tab.tsx index a88b3492c3d..73e24515451 100644 --- a/src/components/Tabs/components/Tab/Tab.tsx +++ b/src/components/Tabs/components/Tab/Tab.tsx @@ -152,4 +152,4 @@ function focusPanelID(panelID: string) { } } -export default withAppProvider()(Tab); +export default withAppProvider()(Tab); diff --git a/src/components/Tag/Tag.tsx b/src/components/Tag/Tag.tsx index 60530c304c6..a946eb9a8df 100644 --- a/src/components/Tag/Tag.tsx +++ b/src/components/Tag/Tag.tsx @@ -44,4 +44,4 @@ function Tag({ ); } -export default withAppProvider()(Tag); +export default withAppProvider()(Tag); diff --git a/src/components/Toast/Toast.tsx b/src/components/Toast/Toast.tsx index b67cb2e849f..df0ccc5fcb3 100644 --- a/src/components/Toast/Toast.tsx +++ b/src/components/Toast/Toast.tsx @@ -70,4 +70,4 @@ export class Toast extends React.PureComponent { } } -export default withAppProvider()(Toast); +export default withAppProvider()(Toast); diff --git a/src/components/TopBar/TopBar.tsx b/src/components/TopBar/TopBar.tsx index 9ee08975135..b3c9700911b 100644 --- a/src/components/TopBar/TopBar.tsx +++ b/src/components/TopBar/TopBar.tsx @@ -139,4 +139,4 @@ export class TopBar extends React.PureComponent { } } -export default withAppProvider()(TopBar); +export default withAppProvider()(TopBar); diff --git a/src/components/UnstyledLink/UnstyledLink.tsx b/src/components/UnstyledLink/UnstyledLink.tsx index 3474fccc0dd..5d94feaee8d 100644 --- a/src/components/UnstyledLink/UnstyledLink.tsx +++ b/src/components/UnstyledLink/UnstyledLink.tsx @@ -38,6 +38,6 @@ export class UnstyledLink extends React.PureComponent { } export default compose( - withAppProvider(), - withRef(), + withAppProvider(), + withRef(), )(UnstyledLink); diff --git a/src/components/WithContext/WithContext.tsx b/src/components/WithContext/WithContext.tsx index a200e75c07f..a4fb3612660 100644 --- a/src/components/WithContext/WithContext.tsx +++ b/src/components/WithContext/WithContext.tsx @@ -2,19 +2,13 @@ import * as React from 'react'; import hoistStatics from 'hoist-non-react-statics'; import {WithContextTypes} from '../../types'; -export default function withContext< - OriginalProps, - ExternalProps, - InjectedProps ->(Consumer: React.ComponentType) { - return function addContext( +export default function withContext( + Consumer: React.ComponentType, +) { + return function addContext( WrappedComponent: - | React.ComponentClass< - OriginalProps & ExternalProps & WithContextTypes - > - | React.SFC< - OriginalProps & ExternalProps & WithContextTypes - >, + | React.ComponentClass> + | React.SFC>, ): React.ComponentClass { // eslint-disable-next-line react/prefer-stateless-function class WithContext extends React.Component< diff --git a/src/components/WithRef/WithRef.tsx b/src/components/WithRef/WithRef.tsx index edf2a03e3a1..383decab252 100644 --- a/src/components/WithRef/WithRef.tsx +++ b/src/components/WithRef/WithRef.tsx @@ -9,8 +9,8 @@ export interface Ref { ref: React.RefObject | null; } -export default function withRef() { - return function addForwardRef( +export default function withRef() { + return function addForwardRef( WrappedComponent: ReactComponent & C, ): React.ComponentClass { class WithRef extends React.Component { From 0a1ae9e64788edefa53a1c5c0f426b5242134a95 Mon Sep 17 00:00:00 2001 From: Andrew Musgrave Date: Wed, 2 Jan 2019 16:12:04 -0500 Subject: [PATCH 2/2] changelog --- UNRELEASED.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/UNRELEASED.md b/UNRELEASED.md index 5eeea28fdff..13c3965fd92 100644 --- a/UNRELEASED.md +++ b/UNRELEASED.md @@ -32,3 +32,5 @@ Use [the changelog guidelines](https://git.io/polaris-changelog-guidelines) to f ### Dependency upgrades ### Code quality + +- Improve `withAppProvider`, `withSticky`, `withRef`, and `withContext` types to allow them to infer a components props ([#805](https://github.com/Shopify/polaris-react/pull/805))