@codeleap/hooks 7.0.1 → 7.0.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.
- package/dist/index.js +57 -31
- package/dist/index.js.map +1 -1
- package/dist/onMount.js +7 -3
- package/dist/onMount.js.map +1 -1
- package/dist/onUpdate.js +7 -3
- package/dist/onUpdate.js.map +1 -1
- package/dist/useBooleanToggle.js +6 -3
- package/dist/useBooleanToggle.js.map +1 -1
- package/dist/useComponentTestId.js +8 -4
- package/dist/useComponentTestId.js.map +1 -1
- package/dist/useConditionalState.js +9 -5
- package/dist/useConditionalState.js.map +1 -1
- package/dist/useDebounce.js +8 -5
- package/dist/useDebounce.js.map +1 -1
- package/dist/useDebounceCallback.js +9 -6
- package/dist/useDebounceCallback.js.map +1 -1
- package/dist/useDerivedRef.js +8 -4
- package/dist/useDerivedRef.js.map +1 -1
- package/dist/useDerivedState.js +10 -6
- package/dist/useDerivedState.js.map +1 -1
- package/dist/useEffectOnce.js +7 -3
- package/dist/useEffectOnce.js.map +1 -1
- package/dist/useFilteredList.js +6 -3
- package/dist/useFilteredList.js.map +1 -1
- package/dist/useForceRender.js +6 -3
- package/dist/useForceRender.js.map +1 -1
- package/dist/useId.js +7 -4
- package/dist/useId.js.map +1 -1
- package/dist/useInterval.js +11 -8
- package/dist/useInterval.js.map +1 -1
- package/dist/useIsMounted.js +9 -5
- package/dist/useIsMounted.js.map +1 -1
- package/dist/useLazyStore.js +8 -5
- package/dist/useLazyStore.js.map +1 -1
- package/dist/useModal.js +8 -5
- package/dist/useModal.js.map +1 -1
- package/dist/useOptions.js +7 -4
- package/dist/useOptions.js.map +1 -1
- package/dist/usePartialState.js +9 -6
- package/dist/usePartialState.js.map +1 -1
- package/dist/usePlaces.js +20 -11
- package/dist/usePlaces.js.map +1 -1
- package/dist/usePlacesAutocompleteUtils.js +14 -7
- package/dist/usePlacesAutocompleteUtils.js.map +1 -1
- package/dist/usePrevious.js +8 -4
- package/dist/usePrevious.js.map +1 -1
- package/dist/usePromise.js +11 -7
- package/dist/usePromise.js.map +1 -1
- package/dist/useRenderCall.js +6 -3
- package/dist/useRenderCall.js.map +1 -1
- package/dist/useSearch/index.js +12 -9
- package/dist/useSearch/index.js.map +1 -1
- package/dist/useSearch/types.js +2 -1
- package/dist/useStableReference.js +8 -5
- package/dist/useStableReference.js.map +1 -1
- package/dist/useToggle.js +6 -3
- package/dist/useToggle.js.map +1 -1
- package/dist/useUncontrolled.js +8 -5
- package/dist/useUncontrolled.js.map +1 -1
- package/dist/useUnmount.js +9 -5
- package/dist/useUnmount.js.map +1 -1
- package/package.json +1 -1
package/dist/useIsMounted.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsMounted.js","sourceRoot":"","sources":["../src/useIsMounted.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useIsMounted.js","sourceRoot":"","sources":["../src/useIsMounted.ts"],"names":[],"mappings":";;AAgBA,oCAQC;AAYD,kCAIC;AAxCD,iCAA4D;AAE5D,MAAM,qBAAqB,GAAG,OAAO,SAAS,KAAK,WAAW,CAAA;AAE9D,MAAM,yBAAyB,GAC7B,qBAAqB,CAAC,CAAC,CAAC,uBAAe,CAAC,CAAC,CAAC,iBAAS,CAAA;AAErD;;;;;;;;GAQG;AACH,SAAgB,YAAY;IAC1B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAE7C,yBAAyB,CAAC,GAAG,EAAE;QAC7B,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,WAAW;IACzB,OAAO;QACL,QAAQ,EAAE,YAAY,EAAE;KACzB,CAAA;AACH,CAAC"}
|
package/dist/useLazyStore.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLazyStore = useLazyStore;
|
|
4
|
+
const store_1 = require("@codeleap/store");
|
|
5
|
+
const react_1 = require("react");
|
|
3
6
|
/**
|
|
4
7
|
* Hook that lazily creates a global store with an initial value.
|
|
5
8
|
* The store is created only once and persists across re-renders.
|
|
@@ -8,9 +11,9 @@ import { useMemo } from 'react';
|
|
|
8
11
|
* const counterStore = useLazyStore(0)
|
|
9
12
|
* // Store is created once and can be used across components
|
|
10
13
|
*/
|
|
11
|
-
|
|
12
|
-
const store = useMemo(() => {
|
|
13
|
-
return globalState(initialValue);
|
|
14
|
+
function useLazyStore(initialValue) {
|
|
15
|
+
const store = (0, react_1.useMemo)(() => {
|
|
16
|
+
return (0, store_1.globalState)(initialValue);
|
|
14
17
|
}, []);
|
|
15
18
|
return store;
|
|
16
19
|
}
|
package/dist/useLazyStore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLazyStore.js","sourceRoot":"","sources":["../src/useLazyStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useLazyStore.js","sourceRoot":"","sources":["../src/useLazyStore.ts"],"names":[],"mappings":";;AAWA,oCAMC;AAjBD,2CAA6C;AAC7C,iCAA+B;AAE/B;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAI,YAAe;IAC7C,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACzB,OAAO,IAAA,mBAAW,EAAC,YAAY,CAAC,CAAA;IAClC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/dist/useModal.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useModal = useModal;
|
|
4
|
+
const types_1 = require("@codeleap/types");
|
|
5
|
+
const react_1 = require("react");
|
|
3
6
|
/**
|
|
4
7
|
* Hook that manages modal visibility state with open, close, and toggle functions.
|
|
5
8
|
*
|
|
@@ -10,8 +13,8 @@ import { useState } from 'react';
|
|
|
10
13
|
* modal.toggle() // Toggles visibility
|
|
11
14
|
* modal.toggle(true) // Forces open
|
|
12
15
|
*/
|
|
13
|
-
|
|
14
|
-
const [visible, setVisible] = useState(startsOpen);
|
|
16
|
+
function useModal(startsOpen = false) {
|
|
17
|
+
const [visible, setVisible] = (0, react_1.useState)(startsOpen);
|
|
15
18
|
function open() {
|
|
16
19
|
setVisible(true);
|
|
17
20
|
}
|
|
@@ -19,7 +22,7 @@ export function useModal(startsOpen = false) {
|
|
|
19
22
|
setVisible(false);
|
|
20
23
|
}
|
|
21
24
|
function toggle(forceVisible) {
|
|
22
|
-
setVisible(prev => TypeGuards.isBoolean(forceVisible) ? forceVisible : !prev);
|
|
25
|
+
setVisible(prev => types_1.TypeGuards.isBoolean(forceVisible) ? forceVisible : !prev);
|
|
23
26
|
}
|
|
24
27
|
return {
|
|
25
28
|
visible,
|
package/dist/useModal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModal.js","sourceRoot":"","sources":["../src/useModal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useModal.js","sourceRoot":"","sources":["../src/useModal.ts"],"names":[],"mappings":";;AAaA,4BAqBC;AAlCD,2CAA4C;AAC5C,iCAAgC;AAEhC;;;;;;;;;GASG;AACH,SAAgB,QAAQ,CAAC,UAAU,GAAG,KAAK;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,UAAU,CAAC,CAAA;IAElD,SAAS,IAAI;QACX,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IAED,SAAS,KAAK;QACZ,UAAU,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;IAED,SAAS,MAAM,CAAC,YAAsB;QACpC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC/E,CAAC;IAED,OAAO;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;KACN,CAAA;AACH,CAAC"}
|
package/dist/useOptions.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useOptions = useOptions;
|
|
4
|
+
const react_1 = require("react");
|
|
2
5
|
/**
|
|
3
6
|
* Hook that manages selected option state with boolean flags for each option.
|
|
4
7
|
*
|
|
@@ -8,9 +11,9 @@ import { useMemo, useState } from 'react';
|
|
|
8
11
|
* setSelectedOption('dark')
|
|
9
12
|
* // isSelected = { light: false, dark: true }
|
|
10
13
|
*/
|
|
11
|
-
|
|
12
|
-
const [selectedOption, setSelectedOption] = useState(initialOptions);
|
|
13
|
-
const isSelected = useMemo(() => {
|
|
14
|
+
function useOptions(options, initialOptions = options[0]) {
|
|
15
|
+
const [selectedOption, setSelectedOption] = (0, react_1.useState)(initialOptions);
|
|
16
|
+
const isSelected = (0, react_1.useMemo)(() => {
|
|
14
17
|
return options.reduce((acc, option) => {
|
|
15
18
|
acc[option] = option === selectedOption;
|
|
16
19
|
return acc;
|
package/dist/useOptions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOptions.js","sourceRoot":"","sources":["../src/useOptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useOptions.js","sourceRoot":"","sources":["../src/useOptions.ts"],"names":[],"mappings":";;AAWA,gCAeC;AA1BD,iCAAyC;AAEzC;;;;;;;;GAQG;AACH,SAAgB,UAAU,CAAmB,OAAqB,EAAE,iBAAoB,OAAO,CAAC,CAAC,CAAC;IAChG,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAI,cAAc,CAAC,CAAA;IAEvE,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC9B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACpC,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,KAAK,cAAc,CAAA;YACvC,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAwB,CAAC,CAAA;IAC9B,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAA;IAE7B,OAAO;QACL,cAAc;QACd,iBAAiB;QACjB,UAAU;KACX,CAAA;AACH,CAAC"}
|
package/dist/usePartialState.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.usePartialState = usePartialState;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const utils_1 = require("@codeleap/utils");
|
|
3
6
|
/**
|
|
4
7
|
* Hook that manages state with partial updates using deep merge.
|
|
5
8
|
*
|
|
@@ -8,14 +11,14 @@ import { deepMerge } from '@codeleap/utils';
|
|
|
8
11
|
* setUser({ age: 31 }) // Only updates age, keeps name
|
|
9
12
|
* setUser(prev => ({ age: prev.age + 1 })) // Functional update
|
|
10
13
|
*/
|
|
11
|
-
|
|
12
|
-
const [state, setState] = useState(initial);
|
|
14
|
+
function usePartialState(initial) {
|
|
15
|
+
const [state, setState] = (0, react_1.useState)(initial);
|
|
13
16
|
function setPartial(value) {
|
|
14
17
|
if (typeof value === 'function') {
|
|
15
|
-
setState((v) => deepMerge(v, value(v)));
|
|
18
|
+
setState((v) => (0, utils_1.deepMerge)(v, value(v)));
|
|
16
19
|
}
|
|
17
20
|
else {
|
|
18
|
-
setState(deepMerge(state, value));
|
|
21
|
+
setState((0, utils_1.deepMerge)(state, value));
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
24
|
return [state, setPartial];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePartialState.js","sourceRoot":"","sources":["../src/usePartialState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePartialState.js","sourceRoot":"","sources":["../src/usePartialState.ts"],"names":[],"mappings":";;AAcA,0CAcC;AA5BD,iCAAgC;AAEhC,2CAA2C;AAI3C;;;;;;;GAOG;AACH,SAAgB,eAAe,CAAyB,OAAsB;IAC5E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,CAAA;IAE3C,SAAS,UAAU,CACjB,KAAkD;QAElD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,CAAC,EAAE,KAAK,CAAC,CAAM,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAA,iBAAS,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAAU,EAAE,UAAU,CAAU,CAAA;AAC1C,CAAC"}
|
package/dist/usePlaces.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -7,8 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
9
|
});
|
|
9
10
|
};
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.usePlaces = exports.retrievePlaces = exports.retrievePlaceDetails = void 0;
|
|
16
|
+
const axios_1 = __importDefault(require("axios"));
|
|
17
|
+
const react_query_1 = require("@tanstack/react-query");
|
|
12
18
|
const BASE_URL = 'https://maps.googleapis.com/maps/api/place/autocomplete/json';
|
|
13
19
|
const BASE_URL_DETAILS = 'https://maps.googleapis.com/maps/api/place/details/json';
|
|
14
20
|
const BASE_URL_GEOCODING = 'https://maps.googleapis.com/maps/api/geocode/json';
|
|
@@ -16,9 +22,9 @@ const latLngRegex = /^-?\d+(\.\d+)?,-?\d+(\.\d+)?$/;
|
|
|
16
22
|
/**
|
|
17
23
|
* Retrieves detailed information for a specific Google Place.
|
|
18
24
|
*/
|
|
19
|
-
|
|
25
|
+
const retrievePlaceDetails = (placeId, apiKey) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
26
|
var _a;
|
|
21
|
-
const response = yield
|
|
27
|
+
const response = yield axios_1.default.get(BASE_URL_DETAILS, {
|
|
22
28
|
params: {
|
|
23
29
|
place_id: placeId,
|
|
24
30
|
key: apiKey,
|
|
@@ -26,32 +32,34 @@ export const retrievePlaceDetails = (placeId, apiKey) => __awaiter(void 0, void
|
|
|
26
32
|
});
|
|
27
33
|
return (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.result;
|
|
28
34
|
});
|
|
35
|
+
exports.retrievePlaceDetails = retrievePlaceDetails;
|
|
29
36
|
/**
|
|
30
37
|
* Retrieves places from Google Places API or Geocoding API.
|
|
31
38
|
* Supports both text search and lat/lng coordinates.
|
|
32
39
|
*/
|
|
33
|
-
|
|
40
|
+
const retrievePlaces = (params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
41
|
var _a, _b, _c, _d, _e;
|
|
35
42
|
let response;
|
|
36
43
|
const inputWithoutSpaces = (_b = (_a = params === null || params === void 0 ? void 0 : params.input) === null || _a === void 0 ? void 0 : _a.replace(/\s/g, '')) !== null && _b !== void 0 ? _b : '';
|
|
37
44
|
const isLatLng = latLngRegex === null || latLngRegex === void 0 ? void 0 : latLngRegex.test(inputWithoutSpaces);
|
|
38
45
|
if (isLatLng) {
|
|
39
|
-
response = yield (
|
|
46
|
+
response = yield (axios_1.default === null || axios_1.default === void 0 ? void 0 : axios_1.default.get(BASE_URL_GEOCODING, { params: { latlng: params === null || params === void 0 ? void 0 : params.input, key: params === null || params === void 0 ? void 0 : params.key } }));
|
|
40
47
|
}
|
|
41
48
|
else {
|
|
42
|
-
response = yield (
|
|
49
|
+
response = yield (axios_1.default === null || axios_1.default === void 0 ? void 0 : axios_1.default.get(BASE_URL, { params }));
|
|
43
50
|
}
|
|
44
51
|
let places = ((_c = response === null || response === void 0 ? void 0 : response.data) === null || _c === void 0 ? void 0 : _c.results) || ((_d = response === null || response === void 0 ? void 0 : response.data) === null || _d === void 0 ? void 0 : _d.predictions);
|
|
45
52
|
if (params === null || params === void 0 ? void 0 : params.showDetails) {
|
|
46
53
|
const apiKey = (_e = params === null || params === void 0 ? void 0 : params.key) !== null && _e !== void 0 ? _e : '';
|
|
47
54
|
places = yield Promise.all(places === null || places === void 0 ? void 0 : places.map((place) => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
55
|
const placeId = place === null || place === void 0 ? void 0 : place.place_id;
|
|
49
|
-
const details = yield retrievePlaceDetails(placeId, apiKey);
|
|
56
|
+
const details = yield (0, exports.retrievePlaceDetails)(placeId, apiKey);
|
|
50
57
|
return Object.assign(Object.assign({}, place), { details });
|
|
51
58
|
})));
|
|
52
59
|
}
|
|
53
60
|
return places;
|
|
54
61
|
});
|
|
62
|
+
exports.retrievePlaces = retrievePlaces;
|
|
55
63
|
/**
|
|
56
64
|
* Hook that fetches Google Places using React Query.
|
|
57
65
|
* Automatically handles caching and refetching.
|
|
@@ -63,11 +71,12 @@ export const retrievePlaces = (params) => __awaiter(void 0, void 0, void 0, func
|
|
|
63
71
|
* showDetails: true
|
|
64
72
|
* })
|
|
65
73
|
*/
|
|
66
|
-
|
|
67
|
-
const places = useQuery({
|
|
74
|
+
const usePlaces = (params) => {
|
|
75
|
+
const places = (0, react_query_1.useQuery)({
|
|
68
76
|
queryKey: ['places', params],
|
|
69
|
-
queryFn: () => retrievePlaces(params),
|
|
77
|
+
queryFn: () => (0, exports.retrievePlaces)(params),
|
|
70
78
|
});
|
|
71
79
|
return places;
|
|
72
80
|
};
|
|
81
|
+
exports.usePlaces = usePlaces;
|
|
73
82
|
//# sourceMappingURL=usePlaces.js.map
|
package/dist/usePlaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePlaces.js","sourceRoot":"","sources":["../src/usePlaces.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePlaces.js","sourceRoot":"","sources":["../src/usePlaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.usePlacesAutocompleteUtils = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const types_1 = require("@codeleap/types");
|
|
3
9
|
/**
|
|
4
10
|
* Hook that manages address autocomplete state with debounced input handling.
|
|
5
11
|
* Useful for Google Places autocomplete implementations.
|
|
@@ -16,14 +22,14 @@ import { TypeGuards } from '@codeleap/types';
|
|
|
16
22
|
* onPress: (addr, item) => console.log('Selected:', item)
|
|
17
23
|
* })
|
|
18
24
|
*/
|
|
19
|
-
|
|
25
|
+
const usePlacesAutocompleteUtils = (props) => {
|
|
20
26
|
const { debounce = 250, onValueChange, onPress, } = props;
|
|
21
|
-
const [address, setAddress] =
|
|
22
|
-
const [isTyping, setIsTyping] =
|
|
23
|
-
const setSearchTimeout =
|
|
27
|
+
const [address, setAddress] = react_1.default.useState('');
|
|
28
|
+
const [isTyping, setIsTyping] = react_1.default.useState(false);
|
|
29
|
+
const setSearchTimeout = react_1.default.useRef(null);
|
|
24
30
|
const handleChangeAddress = (address) => {
|
|
25
31
|
setAddress(address);
|
|
26
|
-
if (TypeGuards.isNil(debounce)) {
|
|
32
|
+
if (types_1.TypeGuards.isNil(debounce)) {
|
|
27
33
|
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(address);
|
|
28
34
|
setTimeout(() => setIsTyping(false), 250);
|
|
29
35
|
}
|
|
@@ -55,4 +61,5 @@ export const usePlacesAutocompleteUtils = (props) => {
|
|
|
55
61
|
setIsTyping,
|
|
56
62
|
};
|
|
57
63
|
};
|
|
64
|
+
exports.usePlacesAutocompleteUtils = usePlacesAutocompleteUtils;
|
|
58
65
|
//# sourceMappingURL=usePlacesAutocompleteUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePlacesAutocompleteUtils.js","sourceRoot":"","sources":["../src/usePlacesAutocompleteUtils.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"usePlacesAutocompleteUtils.js","sourceRoot":"","sources":["../src/usePlacesAutocompleteUtils.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AACzB,2CAA4C;AAQ5C;;;;;;;;;;;;;;;GAeG;AACI,MAAM,0BAA0B,GAAG,CAAgC,KAAyC,EAAE,EAAE;IACrH,MAAM,EACJ,QAAQ,GAAG,GAAG,EACd,aAAa,EACb,OAAO,GACR,GAAG,KAAK,CAAA;IAET,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAChD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAErD,MAAM,gBAAgB,GAAG,eAAK,CAAC,MAAM,CAAuC,IAAI,CAAC,CAAA;IAEjF,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,EAAE;QAC9C,UAAU,CAAC,OAAO,CAAC,CAAA;QAEnB,IAAI,kBAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,OAAO,CAAC,CAAA;YACxB,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC7B,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;gBACtC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAA;YACjC,CAAC;YAED,gBAAgB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACzC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,OAAO,CAAC,CAAA;gBACxB,WAAW,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,CAAC,CAAC,CAAA;QACnB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,IAAO,EAAE,EAAE;QACtD,UAAU,CAAC,OAAO,CAAC,CAAA;QACnB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,OAAO,EAAE,IAAI,CAAC,CAAA;IAC1B,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,UAAU,CAAC,EAAE,CAAC,CAAA;QACd,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,EAAE,CAAC,CAAA;IACrB,CAAC,CAAA;IAED,OAAO;QACL,mBAAmB;QACnB,kBAAkB;QAClB,kBAAkB;QAClB,OAAO;QACP,QAAQ;QACR,WAAW;KACZ,CAAA;AACH,CAAC,CAAA;AAjDY,QAAA,0BAA0B,8BAiDtC"}
|
package/dist/usePrevious.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.usePrevious = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
2
5
|
/**
|
|
3
6
|
* Hook that returns the previous value of a variable.
|
|
4
7
|
* The value is updated after render is committed to the DOM.
|
|
@@ -9,11 +12,12 @@ import { useEffect, useRef } from 'react';
|
|
|
9
12
|
* // On first render: count=0, prevCount=null
|
|
10
13
|
* // After setCount(1): count=1, prevCount=0
|
|
11
14
|
*/
|
|
12
|
-
|
|
13
|
-
const ref = useRef(null);
|
|
14
|
-
useEffect(() => {
|
|
15
|
+
const usePrevious = (value) => {
|
|
16
|
+
const ref = (0, react_1.useRef)(null);
|
|
17
|
+
(0, react_1.useEffect)(() => {
|
|
15
18
|
ref.current = value;
|
|
16
19
|
});
|
|
17
20
|
return ref.current;
|
|
18
21
|
};
|
|
22
|
+
exports.usePrevious = usePrevious;
|
|
19
23
|
//# sourceMappingURL=usePrevious.js.map
|
package/dist/usePrevious.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePrevious.js","sourceRoot":"","sources":["../src/usePrevious.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"usePrevious.js","sourceRoot":"","sources":["../src/usePrevious.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AAEzC;;;;;;;;;GASG;AACI,MAAM,WAAW,GAAG,CAAI,KAAQ,EAAE,EAAE;IACzC,MAAM,GAAG,GAAG,IAAA,cAAM,EAAI,IAAI,CAAC,CAAA;IAC3B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,GAAG,CAAC,OAAO,GAAG,KAAK,CAAA;IACrB,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAC,OAAO,CAAA;AACpB,CAAC,CAAA;AANY,QAAA,WAAW,eAMvB"}
|
package/dist/usePromise.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -7,8 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
9
|
});
|
|
9
10
|
};
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.usePromise = void 0;
|
|
13
|
+
const react_1 = require("react");
|
|
14
|
+
const types_1 = require("@codeleap/types");
|
|
12
15
|
/**
|
|
13
16
|
* Hook that creates a deferred promise with manual resolve/reject control.
|
|
14
17
|
* Useful for coordinating asynchronous operations across component lifecycle.
|
|
@@ -22,10 +25,10 @@ import { TypeGuards } from '@codeleap/types';
|
|
|
22
25
|
* // Later, from another callback:
|
|
23
26
|
* promise.resolve('success')
|
|
24
27
|
*/
|
|
25
|
-
|
|
26
|
-
const rejectRef = useRef(null);
|
|
27
|
-
const resolveRef = useRef(null);
|
|
28
|
-
const timeoutRef = useRef(null);
|
|
28
|
+
const usePromise = (options) => {
|
|
29
|
+
const rejectRef = (0, react_1.useRef)(null);
|
|
30
|
+
const resolveRef = (0, react_1.useRef)(null);
|
|
31
|
+
const timeoutRef = (0, react_1.useRef)(null);
|
|
29
32
|
const reject = (err) => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
33
|
var _a, _b;
|
|
31
34
|
yield ((_a = rejectRef.current) === null || _a === void 0 ? void 0 : _a.call(rejectRef, err));
|
|
@@ -46,7 +49,7 @@ export const usePromise = (options) => {
|
|
|
46
49
|
return new Promise((resolve, reject) => {
|
|
47
50
|
rejectRef.current = reject;
|
|
48
51
|
resolveRef.current = resolve;
|
|
49
|
-
if (TypeGuards.isNumber(options === null || options === void 0 ? void 0 : options.timeout) && (options === null || options === void 0 ? void 0 : options.timeout) > 0) {
|
|
52
|
+
if (types_1.TypeGuards.isNumber(options === null || options === void 0 ? void 0 : options.timeout) && (options === null || options === void 0 ? void 0 : options.timeout) > 0) {
|
|
50
53
|
timeoutRef.current = setTimeout(() => {
|
|
51
54
|
reject(new Error(`usePromise: ${(options === null || options === void 0 ? void 0 : options.debugName) || ''} timed out after ${options === null || options === void 0 ? void 0 : options.timeout}ms`));
|
|
52
55
|
}, options === null || options === void 0 ? void 0 : options.timeout);
|
|
@@ -59,4 +62,5 @@ export const usePromise = (options) => {
|
|
|
59
62
|
reject,
|
|
60
63
|
};
|
|
61
64
|
};
|
|
65
|
+
exports.usePromise = usePromise;
|
|
62
66
|
//# sourceMappingURL=usePromise.js.map
|
package/dist/usePromise.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePromise.js","sourceRoot":"","sources":["../src/usePromise.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePromise.js","sourceRoot":"","sources":["../src/usePromise.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAA8B;AAC9B,2CAAyD;AASzD;;;;;;;;;;;;GAYG;AACI,MAAM,UAAU,GAAG,CAAU,OAA8B,EAAE,EAAE;IACpE,MAAM,SAAS,GAAG,IAAA,cAAM,EAAc,IAAI,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,IAAA,cAAM,EAAe,IAAI,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,IAAA,cAAM,EAAuC,IAAI,CAAC,CAAA;IAErE,MAAM,MAAM,GAAG,CAAO,GAAQ,EAAE,EAAE;;QAChC,MAAM,CAAA,MAAA,SAAS,CAAC,OAAO,0DAAG,GAAG,CAAC,CAAA,CAAA;QAC9B,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,wDAAG,GAAG,CAAC,CAAA;QACxB,IAAI,UAAU,CAAC,OAAO;YAAE,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACxD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAA;IAC1B,CAAC,CAAA,CAAA;IAED,MAAM,OAAO,GAAG,CAAO,KAAQ,EAAE,EAAE;;QACjC,MAAM,CAAA,MAAA,UAAU,CAAC,OAAO,2DAAG,KAAK,CAAC,CAAA,CAAA;QACjC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,wDAAG,KAAK,CAAC,CAAA;QAC3B,IAAI,UAAU,CAAC,OAAO;YAAE,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACxD,UAAU,CAAC,OAAO,GAAG,IAAI,CAAA;IAC3B,CAAC,CAAA,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAA;YAC1B,UAAU,CAAC,OAAO,GAAG,OAAO,CAAA;YAC5B,IAAI,kBAAU,CAAC,QAAQ,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,IAAG,CAAC,EAAE,CAAC;gBAClE,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBACnC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,EAAE,oBAAoB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,IAAI,CAAC,CAAC,CAAA;gBACpG,CAAC,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAA;YACtB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO;QACL,MAAM;QACN,OAAO;QACP,MAAM;KACP,CAAA;AACH,CAAC,CAAA;AApCY,QAAA,UAAU,cAoCtB"}
|
package/dist/useRenderCall.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useRenderCall = useRenderCall;
|
|
4
|
+
const react_1 = require("react");
|
|
2
5
|
/** Calls `fn` synchronously during render, capped at `maxRunCount` renders (default 1). Does not use effects — execution happens inline during the render phase. */
|
|
3
|
-
|
|
4
|
-
const callCount = useRef(0);
|
|
6
|
+
function useRenderCall(fn, maxRunCount = 1) {
|
|
7
|
+
const callCount = (0, react_1.useRef)(0);
|
|
5
8
|
if (callCount.current < maxRunCount) {
|
|
6
9
|
callCount.current++;
|
|
7
10
|
fn();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRenderCall.js","sourceRoot":"","sources":["../src/useRenderCall.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useRenderCall.js","sourceRoot":"","sources":["../src/useRenderCall.ts"],"names":[],"mappings":";;AAGA,sCAMC;AATD,iCAA8B;AAE9B,oKAAoK;AACpK,SAAgB,aAAa,CAAC,EAAc,EAAE,WAAW,GAAG,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAA,cAAM,EAAC,CAAC,CAAC,CAAA;IAC3B,IAAI,SAAS,CAAC,OAAO,GAAG,WAAW,EAAE,CAAC;QACpC,SAAS,CAAC,OAAO,EAAE,CAAA;QACnB,EAAE,EAAE,CAAA;IACN,CAAC;AACH,CAAC"}
|
package/dist/useSearch/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -7,9 +8,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
9
|
});
|
|
9
10
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.useSearch = useSearch;
|
|
13
|
+
const react_1 = require("react");
|
|
14
|
+
const useBooleanToggle_1 = require("../useBooleanToggle");
|
|
15
|
+
const types_1 = require("@codeleap/types");
|
|
13
16
|
/**
|
|
14
17
|
* Hook that manages searchable select/autocomplete state with async loading support.
|
|
15
18
|
* Handles both local filtering and remote data fetching.
|
|
@@ -26,11 +29,11 @@ import { TypeGuards } from '@codeleap/types';
|
|
|
26
29
|
* search.onChangeSearch('query')
|
|
27
30
|
* search.load()
|
|
28
31
|
*/
|
|
29
|
-
|
|
32
|
+
function useSearch(props) {
|
|
30
33
|
const { value, multiple, options, filterItems, debugName, defaultOptions, loadOptions, onLoadOptionsError, } = Object.assign({}, props);
|
|
31
|
-
const [loading, setLoading] = useBooleanToggle(false);
|
|
32
|
-
const isValueArray = TypeGuards.isArray(value) && multiple;
|
|
33
|
-
const [labelOptions, setLabelOptions] = useState(() => {
|
|
34
|
+
const [loading, setLoading] = (0, useBooleanToggle_1.useBooleanToggle)(false);
|
|
35
|
+
const isValueArray = types_1.TypeGuards.isArray(value) && multiple;
|
|
36
|
+
const [labelOptions, setLabelOptions] = (0, react_1.useState)(() => {
|
|
34
37
|
if (isValueArray) {
|
|
35
38
|
return defaultOptions.filter(o => value.includes(o.value));
|
|
36
39
|
}
|
|
@@ -40,8 +43,8 @@ export function useSearch(props) {
|
|
|
40
43
|
}
|
|
41
44
|
return [_option];
|
|
42
45
|
});
|
|
43
|
-
const [filteredOptions, setFilteredOptions] = useState(defaultOptions);
|
|
44
|
-
const [, setSearchInput] = useState('');
|
|
46
|
+
const [filteredOptions, setFilteredOptions] = (0, react_1.useState)(defaultOptions);
|
|
47
|
+
const [, setSearchInput] = (0, react_1.useState)('');
|
|
45
48
|
function load() {
|
|
46
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
47
50
|
setLoading(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/useSearch/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/useSearch/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAqBA,8BAiEC;AAtFD,iCAAgC;AAChC,0DAAsD;AAEtD,2CAA4C;AAE5C;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,SAAS,CAAkE,KAAgC;IACzH,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,EAEd,WAAW,EACX,kBAAkB,GACnB,qBAAQ,KAAK,CAAE,CAAA;IAEhB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,mCAAgB,EAAC,KAAK,CAAC,CAAA;IACrD,MAAM,YAAY,GAAG,kBAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAA;IAC1D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE;QACpD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5D,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,CAAA;QACX,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAC,cAAc,CAAC,CAAA;IACtE,MAAM,CAAC,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;IAEvC,SAAe,IAAI;;YACjB,UAAU,CAAC,IAAI,CAAC,CAAA;YAChB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,CAAA;gBACrC,kBAAkB,CAAC,OAAO,CAAC,CAAA;YAC7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,kBAAkB,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;YACD,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;KAAA;IAED,MAAM,cAAc,GAAG,CAAO,WAAkB,EAAE,EAAE;QAClD,cAAc,CAAC,WAAW,CAAC,CAAA;QAE3B,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,CAAA;YAChB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAA;gBAC5C,kBAAkB,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,iCAAiC,SAAS,MAAM,CAAC,CAAA;gBAC/D,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,CAAC,CAAC,CAAA;YACzB,CAAC;YACD,UAAU,CAAC,GAAG,EAAE;gBACd,UAAU,CAAC,KAAK,CAAC,CAAA;YACnB,CAAC,EAAE,CAAC,CAAC,CAAA;YACL,OAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAC/C,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC,CAAA,CAAA;IAED,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;AACtG,CAAC"}
|
package/dist/useSearch/types.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useStableReference = useStableReference;
|
|
4
|
+
const utils_1 = require("@codeleap/utils");
|
|
5
|
+
const react_1 = require("react");
|
|
3
6
|
/** Returns the previous ref value when the object is deeply equal to the last render, preventing unnecessary re-renders caused by referential inequality. */
|
|
4
|
-
|
|
5
|
-
const ref = useRef(value);
|
|
6
|
-
const hasChanged = !deepEqual(ref.current, value);
|
|
7
|
+
function useStableReference(value) {
|
|
8
|
+
const ref = (0, react_1.useRef)(value);
|
|
9
|
+
const hasChanged = !(0, utils_1.deepEqual)(ref.current, value);
|
|
7
10
|
if (hasChanged) {
|
|
8
11
|
ref.current = value;
|
|
9
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStableReference.js","sourceRoot":"","sources":["../src/useStableReference.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useStableReference.js","sourceRoot":"","sources":["../src/useStableReference.ts"],"names":[],"mappings":";;AAIA,gDAUC;AAdD,2CAA2C;AAC3C,iCAA8B;AAE9B,6JAA6J;AAC7J,SAAgB,kBAAkB,CAAgC,KAAQ;IACxE,MAAM,GAAG,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAA;IAEzB,MAAM,UAAU,GAAG,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAEjD,IAAI,UAAU,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,OAAO,GAAG,CAAC,OAAO,CAAA;AACpB,CAAC"}
|
package/dist/useToggle.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useToggle = useToggle;
|
|
4
|
+
const react_1 = require("react");
|
|
2
5
|
/**
|
|
3
6
|
* Hook that toggles between two values.
|
|
4
7
|
*
|
|
@@ -7,8 +10,8 @@ import { useState } from 'react';
|
|
|
7
10
|
* toggleTheme() // Switches to 'dark'
|
|
8
11
|
* toggleTheme('light') // Sets to 'light'
|
|
9
12
|
*/
|
|
10
|
-
|
|
11
|
-
const [value, setValue] = useState(initial);
|
|
13
|
+
function useToggle(options, initial) {
|
|
14
|
+
const [value, setValue] = (0, react_1.useState)(initial);
|
|
12
15
|
function toggleOrSetValue(newValue) {
|
|
13
16
|
const v = newValue || (value === options[0] ? options[1] : options[0]);
|
|
14
17
|
setValue(v);
|
package/dist/useToggle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToggle.js","sourceRoot":"","sources":["../src/useToggle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useToggle.js","sourceRoot":"","sources":["../src/useToggle.ts"],"names":[],"mappings":";;AAUA,8BAaC;AAvBD,iCAAgC;AAEhC;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,OAAU,EACV,OAAU;IAEV,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,CAAA;IAE3C,SAAS,gBAAgB,CAAC,QAAY;QACpC,MAAM,CAAC,GAAM,QAAQ,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QAEzE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACb,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAU,CAAA;AAC3C,CAAC"}
|
package/dist/useUncontrolled.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useUncontrolled = useUncontrolled;
|
|
4
|
+
const react_1 = require("react");
|
|
2
5
|
/**
|
|
3
6
|
* Hook that manages controlled/uncontrolled component pattern with smooth transitions.
|
|
4
7
|
*
|
|
@@ -11,14 +14,14 @@ import { useEffect, useRef, useState } from 'react';
|
|
|
11
14
|
* onChange: (v) => props.onChange?.(v)
|
|
12
15
|
* })
|
|
13
16
|
*/
|
|
14
|
-
|
|
17
|
+
function useUncontrolled({ value, defaultValue, finalValue, rule, onChange, onValueUpdate, }) {
|
|
15
18
|
var _a;
|
|
16
19
|
// determine, whether new props indicate controlled state
|
|
17
20
|
const shouldBeControlled = rule(value);
|
|
18
21
|
// initialize state
|
|
19
|
-
const modeRef = useRef('initial');
|
|
22
|
+
const modeRef = (0, react_1.useRef)('initial');
|
|
20
23
|
const initialValue = rule(defaultValue) ? defaultValue : finalValue;
|
|
21
|
-
const [uncontrolledValue, setUncontrolledValue] = useState(initialValue);
|
|
24
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, react_1.useState)(initialValue);
|
|
22
25
|
// compute effective value
|
|
23
26
|
let effectiveValue = (_a = (shouldBeControlled ? value : uncontrolledValue)) !== null && _a !== void 0 ? _a : null;
|
|
24
27
|
if (!shouldBeControlled && modeRef.current === 'controlled') {
|
|
@@ -44,7 +47,7 @@ export function useUncontrolled({ value, defaultValue, finalValue, rule, onChang
|
|
|
44
47
|
setUncontrolledValue(nextValue);
|
|
45
48
|
}
|
|
46
49
|
};
|
|
47
|
-
useEffect(() => {
|
|
50
|
+
(0, react_1.useEffect)(() => {
|
|
48
51
|
if (mode === 'uncontrolled') {
|
|
49
52
|
setUncontrolledValue(effectiveValue);
|
|
50
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUncontrolled.js","sourceRoot":"","sources":["../src/useUncontrolled.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useUncontrolled.js","sourceRoot":"","sources":["../src/useUncontrolled.ts"],"names":[],"mappings":";;AAyBA,0CAuDC;AAhFD,iCAAmD;AAanD;;;;;;;;;;;GAWG;AACH,SAAgB,eAAe,CAAI,EACjC,KAAK,EACL,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,aAAa,GACU;;IACvB,yDAAyD;IACzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;IAEtC,mBAAmB;IACnB,MAAM,OAAO,GAAG,IAAA,cAAM,EAAmB,SAAS,CAAC,CAAA;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAA;IACnE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,IAAA,gBAAQ,EAAC,YAAY,CAAC,CAAA;IAExE,0BAA0B;IAC1B,IAAI,cAAc,GAAa,MAAA,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,mCAAI,IAAI,CAAA;IAEvF,IAAI,CAAC,kBAAkB,IAAI,OAAO,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;QAC5D,uDAAuD;QACvD,6DAA6D;QAC7D,iEAAiE;QACjE,EAAE;QACF,4DAA4D;QAC5D,+DAA+D;QAC/D,sDAAsD;QACtD,wDAAwD;QACxD,EAAE;QACF,qEAAqE;QAErE,cAAc,GAAG,UAAU,CAAA;IAC7B,CAAC;IAED,OAAO,CAAC,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAA;IACpE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAA;IAE5B,MAAM,YAAY,GAAG,CAAC,SAAmB,EAAE,EAAE;QAC3C,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAA;QAErD,4DAA4D;QAC5D,8CAA8C;QAC9C,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5B,oBAAoB,CAAC,SAAS,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5B,oBAAoB,CAAC,cAAc,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,aAAa,KAAK,UAAU,IAAI,aAAa,CAAC,cAAc,CAAC,CAAA;IACtE,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAA;IAE1B,OAAO,CAAC,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,OAAO,CAAU,CAAA;AACjE,CAAC"}
|
package/dist/useUnmount.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useUnmount = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useEffectOnce_1 = require("./useEffectOnce");
|
|
3
6
|
/**
|
|
4
7
|
* Hook that runs a cleanup function when the component unmounts.
|
|
5
8
|
* The function reference is updated on each render to always use the latest version.
|
|
@@ -10,10 +13,11 @@ import { useEffectOnce } from './useEffectOnce';
|
|
|
10
13
|
* // Cleanup logic here
|
|
11
14
|
* })
|
|
12
15
|
*/
|
|
13
|
-
|
|
14
|
-
const fnRef = useRef(fn);
|
|
16
|
+
const useUnmount = (fn) => {
|
|
17
|
+
const fnRef = (0, react_1.useRef)(fn);
|
|
15
18
|
// update the ref each render so if it change the newest callback will be invoked
|
|
16
19
|
fnRef.current = fn;
|
|
17
|
-
useEffectOnce(() => () => fnRef.current());
|
|
20
|
+
(0, useEffectOnce_1.useEffectOnce)(() => () => fnRef.current());
|
|
18
21
|
};
|
|
22
|
+
exports.useUnmount = useUnmount;
|
|
19
23
|
//# sourceMappingURL=useUnmount.js.map
|
package/dist/useUnmount.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUnmount.js","sourceRoot":"","sources":["../src/useUnmount.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"useUnmount.js","sourceRoot":"","sources":["../src/useUnmount.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAC9B,mDAA+C;AAE/C;;;;;;;;;GASG;AACI,MAAM,UAAU,GAAG,CAAC,EAAa,EAAQ,EAAE;IAChD,MAAM,KAAK,GAAG,IAAA,cAAM,EAAC,EAAE,CAAC,CAAA;IAExB,iFAAiF;IACjF,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;IAElB,IAAA,6BAAa,EAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;AAC5C,CAAC,CAAA;AAPY,QAAA,UAAU,cAOtB"}
|