Skip to content
This repository was archived by the owner on May 27, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
956f62b
chore(deps): update dependency rollup to v2.18.0
renovate-bot Jun 25, 2020
a6a79a8
chore(deps): update dependency @rollup/plugin-babel to v5.0.4
renovate-bot Jun 25, 2020
7292d44
chore(deps): update dependency @rollup/plugin-node-resolve to v8.1.0
renovate-bot Jun 25, 2020
6969038
chore(deps): update dependency eslint to v7.3.1
renovate-bot Jun 26, 2020
315ab9d
chore(deps): update dependency cypress to v4.9.0
renovate-bot Jun 26, 2020
c8b4d68
chore(deps): update jest monorepo to v26.1.0
renovate-bot Jun 26, 2020
002750c
chore(deps): update dependency @testing-library/jest-dom to v5.11.0
renovate-bot Jun 28, 2020
0767aa1
chore(deps): update dependency @testing-library/react to v10.4.3
renovate-bot Jun 29, 2020
4e2ef8d
chore(deps): update dependency rollup to v2.18.1
renovate-bot Jun 29, 2020
06baa48
chore(deps): update dependency eslint-plugin-react-hooks to v4.0.5
renovate-bot Jul 3, 2020
4e57d27
chore(deps): update babel monorepo to v7.10.4
renovate-bot Jul 3, 2020
144c3ff
chore(deps): update dependency eslint-plugin-react to v7.20.3
renovate-bot Jul 3, 2020
9256cea
fix(deps): update dependency @data-provider/core to v2.6.0
renovate-bot Jul 5, 2020
3493d3f
chore(deps): update dependency eslint to v7.4.0
renovate-bot Jul 6, 2020
c6ca06d
chore(deps): update dependency cypress to v4.10.0
renovate-bot Jul 10, 2020
9fcb1f1
chore(deps): update dependency @testing-library/react to v10.4.5
renovate-bot Jul 12, 2020
d7bfcf9
chore(deps): update dependency rollup to v2.21.0
renovate-bot Jul 13, 2020
88061d4
chore(deps): update dependency start-server-and-test to v1.11.2
renovate-bot Jul 14, 2020
77843df
chore(deps): update dependency @rollup/plugin-babel to v5.1.0
renovate-bot Jul 15, 2020
111803c
chore(deps): update dependency @rollup/plugin-node-resolve to v8.4.0
renovate-bot Jul 15, 2020
8e8bdb9
chore(deps): update dependency eslint-plugin-react-hooks to v4.0.8
renovate-bot Jul 16, 2020
ccf435c
chore(deps): update dependency @rollup/plugin-commonjs to v13.0.2
renovate-bot Jul 17, 2020
0e0ae6b
chore(deps): update dependency @babel/core to v7.10.5
renovate-bot Jul 17, 2020
a092d4f
chore(deps): update dependency @testing-library/jest-dom to v5.11.1
renovate-bot Jul 19, 2020
745b255
chore(deps): update dependency @testing-library/react to v10.4.7
renovate-bot Jul 20, 2020
88fc3ae
chore(deps): update dependency eslint to v7.5.0
renovate-bot Jul 21, 2020
029df52
chore(deps): update dependency rollup to v2.22.1
renovate-bot Jul 21, 2020
8d37232
chore(deps): update dependency cypress to v4.11.0
renovate-bot Jul 24, 2020
fe12216
chore(deps): update dependency rollup to v2.23.1
renovate-bot Aug 7, 2020
960abc2
chore(deps): update babel monorepo
renovate-bot Aug 10, 2020
0722696
chore(deps): update dependency @testing-library/jest-dom to v5.11.2
renovate-bot Aug 11, 2020
6f0bc52
chore(deps): update dependency @testing-library/react to v10.4.8
renovate-bot Aug 11, 2020
b03ec98
chore(deps): update dependency cypress to v4.12.1
renovate-bot Aug 11, 2020
923a71e
chore(deps): update dependency eslint-plugin-react to v7.20.5
renovate-bot Aug 11, 2020
03d8477
chore(deps): update dependency eslint to v7.6.0
renovate-bot Aug 11, 2020
9575ae0
fix(deps): update dependency react-redux to v7.2.1
renovate-bot Aug 11, 2020
fb4506b
chore(deps): update dependency start-server-and-test to v1.11.3
renovate-bot Aug 12, 2020
2c37b43
Merge branch 'master' into release
javierbrea Oct 31, 2020
32cc7f4
chore(deps): Update dependencies
javierbrea Oct 31, 2020
cc89bac
chore(deps): Update dependencies
javierbrea Oct 31, 2020
01e97c1
chore(deps): Remove React imports from tests due to React update to v17
javierbrea Oct 31, 2020
7ced0bf
feat(hocs): Wrap displayNames in HOCs
javierbrea Oct 31, 2020
0ff3fc0
chore(release): Upgrade version
javierbrea Oct 31, 2020
2ca1629
fix(usePolling): Do not modify original intervals array when checking…
javierbrea Oct 31, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"settings": {
"react": {
"pragma": "React",
"version": "^16.7.0"
"version": "^17.0.0"
}
}
}
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
### Fixed
### Removed

## [1.3.0] - 2020-10-31

### Added
- feat(hocs): Wrap Components displayNames in HOCs

### Changed
- chore(deps): Update dependencies

### Fixed
- fix(usePolling): Do not modify original intervals array when check sorting

## [1.2.0] - 2020-06-21

### Added
Expand Down
6,429 changes: 2,820 additions & 3,609 deletions package-lock.json

Large diffs are not rendered by default.

54 changes: 27 additions & 27 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@data-provider/react",
"version": "1.2.0",
"version": "1.3.0",
"description": "React bindings for @data-provider",
"keywords": [
"data-provider",
Expand Down Expand Up @@ -46,38 +46,38 @@
"react": ">=16.8.0"
},
"devDependencies": {
"@babel/core": "7.10.3",
"@babel/preset-env": "7.10.3",
"@babel/preset-react": "7.10.1",
"@data-provider/core": "2.5.2",
"@rollup/plugin-babel": "5.0.3",
"@rollup/plugin-commonjs": "13.0.0",
"@babel/core": "7.12.3",
"@babel/preset-env": "7.12.1",
"@babel/preset-react": "7.12.1",
"@data-provider/core": "2.6.1",
"@rollup/plugin-babel": "5.2.1",
"@rollup/plugin-commonjs": "16.0.0",
"@rollup/plugin-json": "4.1.0",
"@rollup/plugin-node-resolve": "8.0.1",
"@testing-library/jest-dom": "5.10.1",
"@testing-library/react": "10.3.0",
"@rollup/plugin-node-resolve": "10.0.0",
"@testing-library/jest-dom": "5.11.5",
"@testing-library/react": "11.1.0",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.1.0",
"babel-jest": "26.0.1",
"babel-jest": "26.6.1",
"babel-polyfill": "6.26.0",
"coveralls": "3.0.9",
"eslint": "7.3.0",
"eslint-config-prettier": "6.11.0",
"eslint": "7.12.1",
"eslint-config-prettier": "6.15.0",
"eslint-plugin-prettier": "3.1.4",
"eslint-plugin-react": "7.20.0",
"eslint-plugin-react-hooks": "4.0.4",
"husky": "4.2.5",
"jest": "26.0.1",
"lint-staged": "10.2.11",
"prettier": "2.0.5",
"react": "16.13.1",
"react-dom": "16.13.1",
"react-redux": "7.2.0",
"react-test-renderer": "16.13.1",
"eslint-plugin-react": "7.21.5",
"eslint-plugin-react-hooks": "4.2.0",
"husky": "4.3.0",
"jest": "26.6.1",
"lint-staged": "10.5.0",
"prettier": "2.1.2",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-redux": "7.2.2",
"react-test-renderer": "17.0.1",
"redux": "4.0.5",
"rollup": "2.17.1",
"rollup-plugin-terser": "6.1.0",
"sinon": "9.0.2"
"rollup": "2.32.1",
"rollup-plugin-terser": "7.0.2",
"sinon": "9.2.1"
},
"lint-staged": {
"*.js": "eslint --resolve-plugins-relative-to=.",
Expand All @@ -92,6 +92,6 @@
}
},
"engines": {
"node": "12.x || 14.x"
"node": "12.x || 14.x || 15.x"
}
}
1 change: 1 addition & 0 deletions rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ const BASE_PLUGINS = [
}),
json(),
babel({
babelHelpers: "bundled",
babelrc: false,
presets: ["@babel/env"],
}),
Expand Down
2 changes: 1 addition & 1 deletion sonar-project.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
sonar.organization=data-provider
sonar.projectKey=data-provider-react
sonar.projectVersion=1.2.0
sonar.projectVersion=1.3.0

sonar.sources=src,test
sonar.exclusions=node_modules/**
Expand Down
2 changes: 1 addition & 1 deletion src/usePolling.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class PollingHandler {
}

_checkInterval() {
const sortedIntervals = this._intervalTimes.sort((a, b) => a - b);
const sortedIntervals = [...this._intervalTimes].sort((a, b) => a - b);
if (sortedIntervals[0] !== this._currentIntervalTime) {
this._clearInterval();
this._currentIntervalTime = sortedIntervals[0];
Expand Down
153 changes: 94 additions & 59 deletions src/withDataProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ const isFunction = (provider) => {

const defaultKeys = ["data", "loading", "error", "loaded"];

const getDisplayName = (WrappedComponent) =>
WrappedComponent.displayName || WrappedComponent.name || "Component";

const useProvider = (provider, props) => {
return useMemo(() => {
if (isFunction(provider)) {
Expand Down Expand Up @@ -72,65 +75,97 @@ export const withDataProviderBranch = (provider, keys) => (
Component,
LoadingComponent,
ErrorComponent
) => (props) => {
const providerToRead = useProvider(provider, props);
const { dataProp, loadingProp, errorProp, loading, error } = useDataProviderCustomProps(
providerToRead,
keys
);
if (loading) {
if (LoadingComponent) {
return <LoadingComponent {...props} {...loadingProp} />;
) => {
const WithDataProviderBranch = (props) => {
const providerToRead = useProvider(provider, props);
const { dataProp, loadingProp, errorProp, loading, error } = useDataProviderCustomProps(
providerToRead,
keys
);
if (loading) {
if (LoadingComponent) {
return <LoadingComponent {...props} {...loadingProp} />;
}
return null;
}
return null;
}
if (error) {
if (ErrorComponent) {
return <ErrorComponent {...props} {...errorProp} />;
if (error) {
if (ErrorComponent) {
return <ErrorComponent {...props} {...errorProp} />;
}
return null;
}
return null;
}
return <Component {...props} {...dataProp} />;
};

export const withDataProvider = (provider, keys) => (Component) => (props) => {
const providerToRead = useProvider(provider, props);
const { dataProp, loadingProp, errorProp } = useDataProviderCustomProps(providerToRead, keys);
return <Component {...props} {...dataProp} {...loadingProp} {...errorProp} />;
};

export const withData = (provider, key) => (Component) => (props) => {
const providerToRead = useProvider(provider, props);
const { dataProp } = useDataCustomProp(providerToRead, key);
return <Component {...props} {...dataProp} />;
};

export const withLoading = (provider, key) => (Component) => (props) => {
const providerToRead = useProvider(provider, props);
const { loadingProp } = useLoadingCustomProp(providerToRead, key);
return <Component {...props} {...loadingProp} />;
};

export const withLoaded = (provider, key) => (Component) => (props) => {
const providerToRead = useProvider(provider, props);
const { loadedProp } = useLoadedCustomProp(providerToRead, key);
return <Component {...props} {...loadedProp} />;
};

export const withError = (provider, key) => (Component) => (props) => {
const providerToRead = useProvider(provider, props);
const { errorProp } = useErrorCustomProp(providerToRead, key);
return <Component {...props} {...errorProp} />;
};

export const withPolling = (provider, interval) => (Component) => (props) => {
const providerToRead = useProvider(provider, props);
usePolling(providerToRead, interval);
return <Component {...props} />;
};

export const withRefresh = (provider) => (Component) => (props) => {
const providerToRead = useProvider(provider, props);
useRefresh(providerToRead);
return <Component {...props} />;
return <Component {...props} {...dataProp} />;
};
WithDataProviderBranch.displayName = `WithDataProviderBranch${getDisplayName(Component)}`;
return WithDataProviderBranch;
};

export const withDataProvider = (provider, keys) => (Component) => {
const WithDataProvider = (props) => {
const providerToRead = useProvider(provider, props);
const { dataProp, loadingProp, errorProp } = useDataProviderCustomProps(providerToRead, keys);
return <Component {...props} {...dataProp} {...loadingProp} {...errorProp} />;
};
WithDataProvider.displayName = `WithDataProvider${getDisplayName(Component)}`;
return WithDataProvider;
};

export const withData = (provider, key) => (Component) => {
const WithData = (props) => {
const providerToRead = useProvider(provider, props);
const { dataProp } = useDataCustomProp(providerToRead, key);
return <Component {...props} {...dataProp} />;
};
WithData.displayName = `WithData${getDisplayName(Component)}`;
return WithData;
};

export const withLoading = (provider, key) => (Component) => {
const WithLoading = (props) => {
const providerToRead = useProvider(provider, props);
const { loadingProp } = useLoadingCustomProp(providerToRead, key);
return <Component {...props} {...loadingProp} />;
};
WithLoading.displayName = `WithLoading${getDisplayName(Component)}`;
return WithLoading;
};

export const withLoaded = (provider, key) => (Component) => {
const WithLoaded = (props) => {
const providerToRead = useProvider(provider, props);
const { loadedProp } = useLoadedCustomProp(providerToRead, key);
return <Component {...props} {...loadedProp} />;
};
WithLoaded.displayName = `WithLoaded${getDisplayName(Component)}`;
return WithLoaded;
};

export const withError = (provider, key) => (Component) => {
const WithError = (props) => {
const providerToRead = useProvider(provider, props);
const { errorProp } = useErrorCustomProp(providerToRead, key);
return <Component {...props} {...errorProp} />;
};
WithError.displayName = `WithError${getDisplayName(Component)}`;
return WithError;
};

export const withPolling = (provider, interval) => (Component) => {
const WithPolling = (props) => {
const providerToRead = useProvider(provider, props);
usePolling(providerToRead, interval);
return <Component {...props} />;
};
WithPolling.displayName = `WithPolling${getDisplayName(Component)}`;
return WithPolling;
};

export const withRefresh = (provider) => (Component) => {
const WithRefresh = (props) => {
const providerToRead = useProvider(provider, props);
useRefresh(providerToRead);
return <Component {...props} />;
};
WithRefresh.displayName = `WithRefresh${getDisplayName(Component)}`;
return WithRefresh;
};
Loading