pocketbase-react 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +4 -1
  2. package/README.md +15 -0
  3. package/dist/pocketbase-react.js +492 -0
  4. package/dist/pocketbase-react.min.js +1 -0
  5. package/{dist/esm → es}/context/Pocketbase.d.ts +1 -3
  6. package/es/context/Pocketbase.js +28 -0
  7. package/{dist/cjs → es}/context/client.d.ts +1 -1
  8. package/es/context/client.js +8 -0
  9. package/{dist/cjs → es}/context/content.d.ts +0 -0
  10. package/es/context/content.js +67 -0
  11. package/{dist/cjs → es}/context/index.d.ts +0 -0
  12. package/es/context/index.js +3 -0
  13. package/{dist/cjs → es}/hooks/index.d.ts +0 -0
  14. package/es/hooks/index.js +2 -0
  15. package/{dist/cjs → es}/hooks/useAppContent.d.ts +1 -1
  16. package/es/hooks/useAppContent.js +26 -0
  17. package/es/hooks/useClientContext.d.ts +2 -0
  18. package/es/hooks/useClientContext.js +9 -0
  19. package/{dist/cjs → es}/index.d.ts +0 -0
  20. package/{dist/esm/index.d.ts → es/index.js} +1 -1
  21. package/{dist/cjs → es}/interfaces/Record.d.ts +1 -1
  22. package/es/interfaces/Record.js +1 -0
  23. package/{dist/cjs → es}/interfaces/index.d.ts +0 -0
  24. package/es/interfaces/index.js +1 -0
  25. package/es/store/actions/index.d.ts +2 -0
  26. package/es/store/actions/index.js +2 -0
  27. package/es/store/actions/records.d.ts +9 -0
  28. package/es/store/actions/records.js +39 -0
  29. package/{dist/cjs → es}/store/index.d.ts +0 -0
  30. package/{dist/esm/store/index.d.ts → es/store/index.js} +1 -1
  31. package/{dist/cjs → es}/store/reducers/index.d.ts +2 -2
  32. package/es/store/reducers/index.js +5 -0
  33. package/{dist/cjs → es}/store/reducers/records.d.ts +2 -3
  34. package/es/store/reducers/records.js +71 -0
  35. package/{dist/cjs → es}/store/store.d.ts +1 -1
  36. package/es/store/store.js +46 -0
  37. package/{dist/cjs → es}/store/types/index.d.ts +0 -0
  38. package/es/store/types/index.js +6 -0
  39. package/lib/context/Pocketbase.js +49 -0
  40. package/lib/context/client.js +21 -0
  41. package/lib/context/content.js +83 -0
  42. package/lib/context/index.js +42 -0
  43. package/lib/hooks/index.js +29 -0
  44. package/lib/hooks/useAppContent.js +38 -0
  45. package/lib/hooks/useClientContext.js +15 -0
  46. package/lib/index.js +55 -0
  47. package/lib/interfaces/Record.js +1 -0
  48. package/lib/interfaces/index.js +16 -0
  49. package/lib/store/actions/index.js +12 -0
  50. package/lib/store/actions/records.js +58 -0
  51. package/lib/store/index.js +55 -0
  52. package/lib/store/reducers/index.js +13 -0
  53. package/lib/store/reducers/records.js +85 -0
  54. package/lib/store/store.js +63 -0
  55. package/lib/store/types/index.js +16 -0
  56. package/package.json +94 -35
  57. package/src/context/Pocketbase.tsx +43 -0
  58. package/src/context/client.tsx +14 -0
  59. package/src/context/content.tsx +88 -0
  60. package/{dist/esm/context/index.d.ts → src/context/index.ts} +0 -0
  61. package/src/hooks/index.ts +2 -0
  62. package/src/hooks/useAppContent.ts +28 -0
  63. package/src/hooks/useClientContext.ts +11 -0
  64. package/src/index.ts +4 -0
  65. package/src/interfaces/Record.ts +10 -0
  66. package/src/interfaces/index.ts +1 -0
  67. package/src/store/actions/index.tsx +3 -0
  68. package/src/store/actions/records.tsx +54 -0
  69. package/src/store/index.ts +4 -0
  70. package/src/store/reducers/index.tsx +12 -0
  71. package/src/store/reducers/records.tsx +78 -0
  72. package/src/store/store.tsx +67 -0
  73. package/src/store/types/index.ts +14 -0
  74. package/dist/cjs/EventSource.d.ts +0 -1
  75. package/dist/cjs/context/Pocketbase.d.ts +0 -15
  76. package/dist/cjs/hooks/useClientContext.d.ts +0 -2
  77. package/dist/cjs/index.js +0 -3477
  78. package/dist/cjs/index.js.map +0 -1
  79. package/dist/cjs/store/actions/index.d.ts +0 -2
  80. package/dist/cjs/store/actions/records.d.ts +0 -11
  81. package/dist/esm/EventSource.d.ts +0 -1
  82. package/dist/esm/context/client.d.ts +0 -8
  83. package/dist/esm/context/content.d.ts +0 -16
  84. package/dist/esm/hooks/index.d.ts +0 -2
  85. package/dist/esm/hooks/useAppContent.d.ts +0 -12
  86. package/dist/esm/hooks/useClientContext.d.ts +0 -2
  87. package/dist/esm/index.js +0 -3432
  88. package/dist/esm/index.js.map +0 -1
  89. package/dist/esm/interfaces/Record.d.ts +0 -10
  90. package/dist/esm/interfaces/index.d.ts +0 -1
  91. package/dist/esm/store/actions/index.d.ts +0 -2
  92. package/dist/esm/store/actions/records.d.ts +0 -11
  93. package/dist/esm/store/reducers/index.d.ts +0 -8
  94. package/dist/esm/store/reducers/records.d.ts +0 -12
  95. package/dist/esm/store/store.d.ts +0 -27
  96. package/dist/esm/store/types/index.d.ts +0 -7
  97. package/dist/index.d.ts +0 -128
package/lib/index.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _hooks = require("./hooks");
6
+
7
+ Object.keys(_hooks).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _hooks[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _hooks[key];
14
+ }
15
+ });
16
+ });
17
+
18
+ var _interfaces = require("./interfaces");
19
+
20
+ Object.keys(_interfaces).forEach(function (key) {
21
+ if (key === "default" || key === "__esModule") return;
22
+ if (key in exports && exports[key] === _interfaces[key]) return;
23
+ Object.defineProperty(exports, key, {
24
+ enumerable: true,
25
+ get: function () {
26
+ return _interfaces[key];
27
+ }
28
+ });
29
+ });
30
+
31
+ var _context = require("./context");
32
+
33
+ Object.keys(_context).forEach(function (key) {
34
+ if (key === "default" || key === "__esModule") return;
35
+ if (key in exports && exports[key] === _context[key]) return;
36
+ Object.defineProperty(exports, key, {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _context[key];
40
+ }
41
+ });
42
+ });
43
+
44
+ var _store = require("./store");
45
+
46
+ Object.keys(_store).forEach(function (key) {
47
+ if (key === "default" || key === "__esModule") return;
48
+ if (key in exports && exports[key] === _store[key]) return;
49
+ Object.defineProperty(exports, key, {
50
+ enumerable: true,
51
+ get: function () {
52
+ return _store[key];
53
+ }
54
+ });
55
+ });
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _Record = require("./Record");
6
+
7
+ Object.keys(_Record).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _Record[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _Record[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.recordsAction = void 0;
5
+
6
+ var recordsAction = _interopRequireWildcard(require("./records"));
7
+
8
+ exports.recordsAction = recordsAction;
9
+
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
+
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.updateRecord = exports.setRecords = exports.deleteRecords = exports.deleteRecord = exports.addRecords = exports.addRecord = void 0;
5
+
6
+ var ReduxType = _interopRequireWildcard(require("../types"));
7
+
8
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
+
10
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
+
12
+ const setRecords = (key, payload) => ({
13
+ type: ReduxType.SET_RECORDS,
14
+ key,
15
+ payload
16
+ });
17
+
18
+ exports.setRecords = setRecords;
19
+
20
+ const addRecord = (key, payload) => ({
21
+ type: ReduxType.ADD_RECORD,
22
+ key,
23
+ payload
24
+ });
25
+
26
+ exports.addRecord = addRecord;
27
+
28
+ const addRecords = (key, payload) => ({
29
+ type: ReduxType.ADD_RECORDS,
30
+ key,
31
+ payload
32
+ });
33
+
34
+ exports.addRecords = addRecords;
35
+
36
+ const deleteRecord = (key, payload) => ({
37
+ type: ReduxType.DELETE_RECORD,
38
+ key,
39
+ payload
40
+ });
41
+
42
+ exports.deleteRecord = deleteRecord;
43
+
44
+ const deleteRecords = (key, payload) => ({
45
+ type: ReduxType.DELETE_RECORDS,
46
+ key,
47
+ payload
48
+ });
49
+
50
+ exports.deleteRecords = deleteRecords;
51
+
52
+ const updateRecord = (key, payload) => ({
53
+ type: ReduxType.UPDATE_RECORD,
54
+ key,
55
+ payload
56
+ });
57
+
58
+ exports.updateRecord = updateRecord;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _actions = require("./actions");
6
+
7
+ Object.keys(_actions).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _actions[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _actions[key];
14
+ }
15
+ });
16
+ });
17
+
18
+ var _reducers = require("./reducers");
19
+
20
+ Object.keys(_reducers).forEach(function (key) {
21
+ if (key === "default" || key === "__esModule") return;
22
+ if (key in exports && exports[key] === _reducers[key]) return;
23
+ Object.defineProperty(exports, key, {
24
+ enumerable: true,
25
+ get: function () {
26
+ return _reducers[key];
27
+ }
28
+ });
29
+ });
30
+
31
+ var _types = require("./types");
32
+
33
+ Object.keys(_types).forEach(function (key) {
34
+ if (key === "default" || key === "__esModule") return;
35
+ if (key in exports && exports[key] === _types[key]) return;
36
+ Object.defineProperty(exports, key, {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _types[key];
40
+ }
41
+ });
42
+ });
43
+
44
+ var _store = require("./store");
45
+
46
+ Object.keys(_store).forEach(function (key) {
47
+ if (key === "default" || key === "__esModule") return;
48
+ if (key in exports && exports[key] === _store[key]) return;
49
+ Object.defineProperty(exports, key, {
50
+ enumerable: true,
51
+ get: function () {
52
+ return _store[key];
53
+ }
54
+ });
55
+ });
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.appReducer = void 0;
5
+
6
+ var _redux = require("redux");
7
+
8
+ var _records = require("./records");
9
+
10
+ const appReducer = (0, _redux.combineReducers)({
11
+ records: _records.records
12
+ });
13
+ exports.appReducer = appReducer;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.records = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var ReduxType = _interopRequireWildcard(require("../types"));
11
+
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+
16
+ function appendRecord(record, records) {
17
+ return [...records, record];
18
+ }
19
+
20
+ function appendRecords(recordsToAppend, records) {
21
+ return [...records, ...recordsToAppend];
22
+ }
23
+
24
+ function updateRecord(record, records) {
25
+ return records.map(r => {
26
+ if (r.id === record.id) {
27
+ return record;
28
+ }
29
+
30
+ return r;
31
+ });
32
+ }
33
+
34
+ function deleteRecord(record, records) {
35
+ return records.filter(r => r.id !== record.id);
36
+ }
37
+
38
+ function deleteRecords(recordsToDelete, records) {
39
+ return records.filter(r => !recordsToDelete.includes(r));
40
+ }
41
+
42
+ const records = (state = {}, action) => {
43
+ var _state$action$key;
44
+
45
+ const list = (_state$action$key = state[action.key]) != null ? _state$action$key : [];
46
+
47
+ switch (action.type) {
48
+ case ReduxType.SET_RECORDS:
49
+ if (Array.isArray(action.payload)) {
50
+ return (0, _extends2.default)({}, state, {
51
+ [action.key]: action.payload
52
+ });
53
+ }
54
+
55
+ case ReduxType.ADD_RECORD:
56
+ return (0, _extends2.default)({}, state, {
57
+ [action.key]: appendRecord(action.payload, list)
58
+ });
59
+
60
+ case ReduxType.ADD_RECORDS:
61
+ return (0, _extends2.default)({}, state, {
62
+ [action.key]: appendRecords(action.payload, list)
63
+ });
64
+
65
+ case ReduxType.DELETE_RECORD:
66
+ return (0, _extends2.default)({}, state, {
67
+ [action.key]: deleteRecord(action.payload, list)
68
+ });
69
+
70
+ case ReduxType.DELETE_RECORDS:
71
+ return (0, _extends2.default)({}, state, {
72
+ [action.key]: deleteRecords(action.payload, list)
73
+ });
74
+
75
+ case ReduxType.UPDATE_RECORD:
76
+ return (0, _extends2.default)({}, state, {
77
+ [action.key]: updateRecord(action.payload, list)
78
+ });
79
+
80
+ default:
81
+ return state;
82
+ }
83
+ };
84
+
85
+ exports.records = records;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.useAppSelector = exports.useAppDispatch = exports.store = exports.persistor = exports.persistConfig = void 0;
7
+
8
+ var _toolkit = require("@reduxjs/toolkit");
9
+
10
+ var _reduxPersist = require("redux-persist");
11
+
12
+ var _reactRedux = require("react-redux");
13
+
14
+ var _reducers = require("./reducers");
15
+
16
+ var _reduxThunk = _interopRequireDefault(require("redux-thunk"));
17
+
18
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
19
+
20
+ const CustomStorage = {
21
+ getItem: async (_key, ..._args) => {
22
+ if (typeof document !== 'undefined') {
23
+ console.log("I'm on the web!");
24
+ return localStorage.getItem(_key);
25
+ } else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
26
+ console.log("I'm in react-native");
27
+ return await _asyncStorage.default.getItem(_key);
28
+ }
29
+ },
30
+ setItem: async (_key, _value, ..._args) => {
31
+ if (typeof document !== 'undefined') {
32
+ return localStorage.setItem(_key, _value);
33
+ } else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
34
+ return await _asyncStorage.default.setItem(_key, _value);
35
+ }
36
+ },
37
+ removeItem: async (_key, ..._args) => {
38
+ if (typeof document !== 'undefined') {
39
+ return localStorage.removeItem(_key);
40
+ } else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
41
+ return await _asyncStorage.default.removeItem(_key);
42
+ }
43
+ }
44
+ };
45
+ const persistConfig = {
46
+ key: 'root',
47
+ storage: CustomStorage
48
+ };
49
+ exports.persistConfig = persistConfig;
50
+ const reducer = (0, _toolkit.combineReducers)({
51
+ reducer: (0, _reduxPersist.persistReducer)(persistConfig, _reducers.appReducer)
52
+ });
53
+ const store = (0, _toolkit.configureStore)({
54
+ reducer,
55
+ middleware: [_reduxThunk.default]
56
+ });
57
+ exports.store = store;
58
+ const useAppDispatch = store.dispatch;
59
+ exports.useAppDispatch = useAppDispatch;
60
+ const useAppSelector = _reactRedux.useSelector;
61
+ exports.useAppSelector = useAppSelector;
62
+ const persistor = (0, _reduxPersist.persistStore)(store);
63
+ exports.persistor = persistor;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.UPDATE_RECORD = exports.SET_RECORDS = exports.DELETE_RECORDS = exports.DELETE_RECORD = exports.ADD_RECORDS = exports.ADD_RECORD = void 0;
5
+ const SET_RECORDS = 'SET_RECORDS';
6
+ exports.SET_RECORDS = SET_RECORDS;
7
+ const ADD_RECORD = 'ADD_RECORD';
8
+ exports.ADD_RECORD = ADD_RECORD;
9
+ const ADD_RECORDS = 'ADD_RECORDS';
10
+ exports.ADD_RECORDS = ADD_RECORDS;
11
+ const UPDATE_RECORD = 'UPDATE_RECORD';
12
+ exports.UPDATE_RECORD = UPDATE_RECORD;
13
+ const DELETE_RECORD = 'DELETE_RECORD';
14
+ exports.DELETE_RECORD = DELETE_RECORD;
15
+ const DELETE_RECORDS = 'DELETE_RECORDS';
16
+ exports.DELETE_RECORDS = DELETE_RECORDS;
package/package.json CHANGED
@@ -1,19 +1,7 @@
1
1
  {
2
2
  "name": "pocketbase-react",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Unofficial React SDK (React, React Native, Expo) for interacting with the PocketBase JS SDK",
5
- "main": "dist/cjs/index.js",
6
- "module": "dist/esm/index.js",
7
- "files": [
8
- "dist"
9
- ],
10
- "types": "dist/index.d.ts",
11
- "scripts": {
12
- "build": "rm -rf dist && rollup -c",
13
- "dev": "rollup -c -w",
14
- "rollup": "rollup -c",
15
- "prepublishOnly": "npm run build"
16
- },
17
5
  "keywords": [
18
6
  "pocketbase",
19
7
  "react",
@@ -24,38 +12,109 @@
24
12
  "typescript",
25
13
  "javascript-sdk"
26
14
  ],
15
+ "license": "MIT",
16
+ "author": "Tobias Krainhöfner",
17
+ "homepage": "https://github.com/tobicrain/pocketbase-react#readme",
27
18
  "repository": {
28
19
  "type": "git",
29
20
  "url": "git+https://github.com/tobicrain/pocketbase-react.git"
30
21
  },
22
+ "bugs": {
23
+ "url": "https://github.com/tobicrain/pocketbase-react/issues"
24
+ },
25
+ "main": "./lib/index.js",
26
+ "types": "./types/index.d.ts",
27
+ "unpkg": "dist/pocketbase-react.js",
28
+ "module": "es/index.js",
29
+ "files": [
30
+ "dist",
31
+ "lib",
32
+ "src",
33
+ "es"
34
+ ],
35
+ "scripts": {
36
+ "build:commonjs": "cross-env BABEL_ENV=commonjs babel src --extensions \".js,.ts,.tsx\" --out-dir lib",
37
+ "build:es": "babel src --extensions \".js,.ts,.tsx\" --out-dir es",
38
+ "build:umd": "cross-env NODE_ENV=development rollup -c -o dist/pocketbase-react.js",
39
+ "build:umd:min": "cross-env NODE_ENV=production rollup -c -o dist/pocketbase-react.min.js",
40
+ "build:types": "tsc",
41
+ "build": "yarn build:types && yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:umd:min",
42
+ "clean": "rimraf lib dist es coverage",
43
+ "dev": "rollup -c -w",
44
+ "rollup": "rollup -c",
45
+ "prepublishOnly": "npm run build"
46
+ },
31
47
  "devDependencies": {
32
- "@babel/core": "^7.19.3",
48
+ "@babel/cli": "^7.12.1",
49
+ "@babel/core": "^7.12.3",
50
+ "@babel/plugin-proposal-decorators": "^7.12.1",
51
+ "@babel/plugin-proposal-object-rest-spread": "^7.12.1",
52
+ "@babel/plugin-transform-react-display-name": "^7.12.1",
53
+ "@babel/plugin-transform-react-jsx": "^7.12.1",
54
+ "@babel/plugin-transform-runtime": "^7.12.1",
55
+ "@babel/preset-env": "^7.12.1",
56
+ "@babel/preset-typescript": "^7.14.5",
57
+ "@microsoft/api-extractor": "^7.18.1",
58
+ "@rollup/plugin-babel": "^5.2.1",
59
+ "@rollup/plugin-commonjs": "^15.1.0",
60
+ "@rollup/plugin-node-resolve": "^9.0.0",
61
+ "@rollup/plugin-replace": "^2.3.3",
62
+ "@testing-library/jest-dom": "^5.11.5",
63
+ "@testing-library/jest-native": "^3.4.3",
64
+ "@testing-library/react": "13.0.0",
65
+ "@testing-library/react-12": "npm:@testing-library/react@^12",
66
+ "@testing-library/react-hooks": "^3.4.2",
67
+ "@testing-library/react-native": "^7.1.0",
68
+ "@types/object-assign": "^4.0.30",
69
+ "@types/react": "^18",
70
+ "@types/react-dom": "^18",
71
+ "@types/react-is": "^17",
72
+ "@types/react-native": "^0.67.4",
73
+ "@typescript-eslint/eslint-plugin": "^4.28.0",
74
+ "@typescript-eslint/parser": "^4.28.0",
75
+ "babel-eslint": "^10.1.0",
76
+ "babel-jest": "^26.6.1",
77
+ "codecov": "^3.8.0",
78
+ "eslint": "^7.12.0",
79
+ "eslint-config-prettier": "^6.14.0",
80
+ "eslint-plugin-import": "^2.22.1",
81
+ "eslint-plugin-prettier": "^3.1.4",
82
+ "eslint-plugin-react": "^7.21.5",
83
+ "glob": "^7.1.6",
84
+ "jest": "^26.6.1",
85
+ "prettier": "^2.1.2",
86
+ "react": "18.0.0",
87
+ "react-17": "npm:react@^17",
88
+ "react-dom": "18.0.0",
89
+ "react-dom-17": "npm:react-dom@^17",
90
+ "react-native": "^0.64.1",
91
+ "react-test-renderer": "18.0.0",
92
+ "react-test-renderer-17": "npm:react-test-renderer@^17",
93
+ "cross-env": "^7.0.3",
94
+ "rollup": "^2.32.1",
95
+ "rollup-plugin-terser": "^7.0.2",
96
+ "rimraf": "^3.0.2",
97
+ "ts-jest": "26.5.6",
98
+ "typescript": "^4.3.4"
99
+ },
100
+ "peerDependencies": {
101
+ "pocketbase": "^0.7.1",
102
+ "react": "^16.12.0",
33
103
  "@react-native-async-storage/async-storage": "^1.17.10",
34
104
  "@reduxjs/toolkit": "^1.8.5",
35
- "@rollup/plugin-babel": "^5.3.1",
36
- "@rollup/plugin-commonjs": "^22.0.2",
37
- "@rollup/plugin-node-resolve": "^14.1.0",
38
- "@rollup/plugin-typescript": "^8.5.0",
39
105
  "node-localstorage": "^2.2.1",
40
106
  "react-redux": "^8.0.4",
41
107
  "redux": "^4.2.0",
42
- "redux-persist": "^6.0.0",
43
- "rollup": "^2.79.1",
44
- "rollup-plugin-dts": "^4.2.2",
45
- "tslib": "^2.4.0",
46
- "typescript": "^4.8.4"
47
- },
48
- "peerDependencies": {
49
- "pocketbase": "^0.7.1",
50
- "react": "^16.12.0"
108
+ "redux-persist": "^6.0.0"
51
109
  },
52
110
  "dependencies": {
53
- "pocketbase": "^0.7.1"
54
- },
55
- "author": "Tobias Krainhöfner",
56
- "license": "MIT",
57
- "bugs": {
58
- "url": "https://github.com/tobicrain/pocketbase-react/issues"
59
- },
60
- "homepage": "https://github.com/tobicrain/pocketbase-react#readme"
111
+ "@babel/runtime": "^7.12.1",
112
+ "pocketbase": "^0.7.1",
113
+ "@react-native-async-storage/async-storage": "^1.17.10",
114
+ "@reduxjs/toolkit": "^1.8.5",
115
+ "node-localstorage": "^2.2.1",
116
+ "react-redux": "^8.0.4",
117
+ "redux": "^4.2.0",
118
+ "redux-persist": "^6.0.0"
119
+ }
61
120
  }
@@ -0,0 +1,43 @@
1
+ import * as React from 'react';
2
+ import { createContext, useEffect } from 'react';
3
+ import PocketBase from 'pocketbase';
4
+ import { Provider } from 'react-redux';
5
+ import { PersistGate } from 'redux-persist/integration/react';
6
+ import * as store from '../store/store';
7
+ import { ClientProvider } from './client';
8
+ import { ContentProvider } from './content';
9
+
10
+ export const PocketbaseContext = createContext<PocketBase | null>(null);
11
+
12
+ export type PocketbaseProviderProps = {
13
+ children: React.ReactNode;
14
+ serverURL: string;
15
+ credentials: {
16
+ username: string;
17
+ password: string;
18
+ };
19
+ initialCollections?: string[];
20
+ };
21
+
22
+ export const Pocketbase = (props: PocketbaseProviderProps) => {
23
+ const [client, setClient] = React.useState<PocketBase | null>(null);
24
+ useEffect(() => {
25
+ const client = new PocketBase(props.serverURL);
26
+ client.admins.authViaEmail(props.credentials.username, props.credentials.password).then(() => {
27
+ setClient(client);
28
+ console.log('Pocketbase client initialized');
29
+ });
30
+ }, [props.serverURL]);
31
+
32
+ return client ? (
33
+ <ClientProvider client={client}>
34
+ <Provider store={store.store}>
35
+ <PersistGate persistor={store.persistor}>
36
+ <ContentProvider collections={props.initialCollections}>
37
+ {props.children}
38
+ </ContentProvider>
39
+ </PersistGate>
40
+ </Provider>
41
+ </ClientProvider>
42
+ ): null;
43
+ };
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { createContext } from 'react';
3
+ import PocketBase from 'pocketbase';
4
+
5
+ export const ClientContext = createContext<PocketBase | null>(null);
6
+
7
+ export type ClientProviderProps = {
8
+ children: React.ReactNode;
9
+ client: PocketBase;
10
+ };
11
+
12
+ export const ClientProvider = (props: ClientProviderProps) => {
13
+ return <ClientContext.Provider value={props.client}>{props.children}</ClientContext.Provider>;
14
+ };