@gateweb/react-utils 1.15.0 → 1.16.0
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/cjs/index.d.ts +22 -2
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/useDisclosure-12s-SZtbSE4A.js +24 -0
- package/dist/es/index.d.mts +22 -2
- package/dist/es/index.mjs +1 -0
- package/dist/es/useDisclosure-12s-BQAHpAXK.mjs +24 -0
- package/package.json +10 -12
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1226,6 +1226,26 @@ type TCountdownActions = {
|
|
|
1226
1226
|
*/
|
|
1227
1227
|
declare const useCountdown: (initialCountdown: number, enableReinitialize?: boolean) => TCountdownActions;
|
|
1228
1228
|
|
|
1229
|
+
type UseDisclosureReturn = {
|
|
1230
|
+
/** Whether the disclosure is currently open. */
|
|
1231
|
+
isOpen: boolean;
|
|
1232
|
+
/** Open the disclosure (sets isOpen = true). */
|
|
1233
|
+
open: () => void;
|
|
1234
|
+
/** Close the disclosure (sets isOpen = false). */
|
|
1235
|
+
close: () => void;
|
|
1236
|
+
/** Toggle the disclosure state (open -> close or close -> open). */
|
|
1237
|
+
toggle: () => void;
|
|
1238
|
+
};
|
|
1239
|
+
/**
|
|
1240
|
+
* A small hook to control open/close state.
|
|
1241
|
+
*
|
|
1242
|
+
* Supports an optional controlled pattern by passing `isOpen` and `onChange`.
|
|
1243
|
+
*
|
|
1244
|
+
* @example
|
|
1245
|
+
* const { isOpen, open, close, toggle } = useDisclosure();
|
|
1246
|
+
*/
|
|
1247
|
+
declare function useDisclosure(initialState?: boolean): UseDisclosureReturn;
|
|
1248
|
+
|
|
1229
1249
|
type TValueOptions<T> = AtLeastOne<{
|
|
1230
1250
|
/**
|
|
1231
1251
|
* The controlled value.
|
|
@@ -1335,5 +1355,5 @@ declare const getLocalStorage: <T>(key: string, deCode?: boolean) => T | undefin
|
|
|
1335
1355
|
*/
|
|
1336
1356
|
declare const setLocalStorage: (key: string, value: Record<string, any>, enCode?: boolean) => void;
|
|
1337
1357
|
|
|
1338
|
-
export { ByteSize, MimeTypeMap, OtherMimeType, QueryProvider, adToRocEra, camelCase2PascalCase, camelCase2SnakeCase, camelString2PascalString, camelString2SnakeString, convertBytes, createDataContext, createEnumLikeObject, debounce, deepClone, deepMerge, downloadFile, extractEnumLikeObject, fakeApi, formatAmount, formatBytes, formatStarMask, generatePeriodArray, getCurrentPeriod, getLocalStorage, getMimeType, invariant, isChinese, isDateString, isDateTimeString, isEmail, isEnglish, isEqual, isNil, isNonZeroStart, isNumber, isNumberAtLeastN, isNumberN, isNumberNM, isServer, isTWMobile, isTWPhone, isTimeString, isValidPassword, maskString, mergeConfig, mergeRefs, objectToSearchParams, omit, omitByValue, parseFileInfoFromFilename, parseFilenameFromDisposition, pascalCase2CamelCase, pascalCase2SnakeCase, pascalString2CamelString, pascalString2SnakeString, pick, pickByValue, renameKey, rocEraToAd, searchParamsToObject, setLocalStorage, snakeCase2CamelCase, snakeCase2PascalCase, snakeString2CamelString, snakeString2PascalString, throttle, useCountdown, useQueryContext, useValue, validTaxId, validateDateString, validateFileType, wait };
|
|
1339
|
-
export type { MimeTypeExtension, MimeTypeValue, PartialBy, RequiredBy, TCountdownActions };
|
|
1358
|
+
export { ByteSize, MimeTypeMap, OtherMimeType, QueryProvider, adToRocEra, camelCase2PascalCase, camelCase2SnakeCase, camelString2PascalString, camelString2SnakeString, convertBytes, createDataContext, createEnumLikeObject, debounce, deepClone, deepMerge, downloadFile, extractEnumLikeObject, fakeApi, formatAmount, formatBytes, formatStarMask, generatePeriodArray, getCurrentPeriod, getLocalStorage, getMimeType, invariant, isChinese, isDateString, isDateTimeString, isEmail, isEnglish, isEqual, isNil, isNonZeroStart, isNumber, isNumberAtLeastN, isNumberN, isNumberNM, isServer, isTWMobile, isTWPhone, isTimeString, isValidPassword, maskString, mergeConfig, mergeRefs, objectToSearchParams, omit, omitByValue, parseFileInfoFromFilename, parseFilenameFromDisposition, pascalCase2CamelCase, pascalCase2SnakeCase, pascalString2CamelString, pascalString2SnakeString, pick, pickByValue, renameKey, rocEraToAd, searchParamsToObject, setLocalStorage, snakeCase2CamelCase, snakeCase2PascalCase, snakeString2CamelString, snakeString2PascalString, throttle, useCountdown, useDisclosure, useQueryContext, useValue, validTaxId, validateDateString, validateFileType, wait };
|
|
1359
|
+
export type { MimeTypeExtension, MimeTypeValue, PartialBy, RequiredBy, TCountdownActions, UseDisclosureReturn };
|
package/dist/cjs/index.js
CHANGED
|
@@ -4,6 +4,7 @@ var dayjs = require('dayjs');
|
|
|
4
4
|
var queryStore12s = require('./queryStore-12s-q_SLGgYH.js');
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var useCountdown12s = require('./useCountdown-12s-uiqhgllY.js');
|
|
7
|
+
var useDisclosure12s = require('./useDisclosure-12s-SZtbSE4A.js');
|
|
7
8
|
var download12s = require('./download-12s-DKxkL92w.js');
|
|
8
9
|
var webStorage12s = require('./webStorage-12s-DHr9PcPl.js');
|
|
9
10
|
|
|
@@ -1423,6 +1424,7 @@ function mergeRefs(refs) {
|
|
|
1423
1424
|
exports.QueryProvider = queryStore12s.QueryProvider;
|
|
1424
1425
|
exports.useQueryContext = queryStore12s.useQueryContext;
|
|
1425
1426
|
exports.useCountdown = useCountdown12s.useCountdown;
|
|
1427
|
+
exports.useDisclosure = useDisclosure12s.useDisclosure;
|
|
1426
1428
|
exports.downloadFile = download12s.downloadFile;
|
|
1427
1429
|
exports.getLocalStorage = webStorage12s.getLocalStorage;
|
|
1428
1430
|
exports.setLocalStorage = webStorage12s.setLocalStorage;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
var React = require('react');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A small hook to control open/close state.
|
|
6
|
+
*
|
|
7
|
+
* Supports an optional controlled pattern by passing `isOpen` and `onChange`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const { isOpen, open, close, toggle } = useDisclosure();
|
|
11
|
+
*/ function useDisclosure(initialState = false) {
|
|
12
|
+
const [isOpen, setIsOpen] = React.useState(initialState);
|
|
13
|
+
const open = React.useCallback(()=>setIsOpen(true), []);
|
|
14
|
+
const close = React.useCallback(()=>setIsOpen(false), []);
|
|
15
|
+
const toggle = React.useCallback(()=>setIsOpen((prev)=>!prev), []);
|
|
16
|
+
return {
|
|
17
|
+
isOpen,
|
|
18
|
+
open,
|
|
19
|
+
close,
|
|
20
|
+
toggle
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
exports.useDisclosure = useDisclosure;
|
package/dist/es/index.d.mts
CHANGED
|
@@ -1226,6 +1226,26 @@ type TCountdownActions = {
|
|
|
1226
1226
|
*/
|
|
1227
1227
|
declare const useCountdown: (initialCountdown: number, enableReinitialize?: boolean) => TCountdownActions;
|
|
1228
1228
|
|
|
1229
|
+
type UseDisclosureReturn = {
|
|
1230
|
+
/** Whether the disclosure is currently open. */
|
|
1231
|
+
isOpen: boolean;
|
|
1232
|
+
/** Open the disclosure (sets isOpen = true). */
|
|
1233
|
+
open: () => void;
|
|
1234
|
+
/** Close the disclosure (sets isOpen = false). */
|
|
1235
|
+
close: () => void;
|
|
1236
|
+
/** Toggle the disclosure state (open -> close or close -> open). */
|
|
1237
|
+
toggle: () => void;
|
|
1238
|
+
};
|
|
1239
|
+
/**
|
|
1240
|
+
* A small hook to control open/close state.
|
|
1241
|
+
*
|
|
1242
|
+
* Supports an optional controlled pattern by passing `isOpen` and `onChange`.
|
|
1243
|
+
*
|
|
1244
|
+
* @example
|
|
1245
|
+
* const { isOpen, open, close, toggle } = useDisclosure();
|
|
1246
|
+
*/
|
|
1247
|
+
declare function useDisclosure(initialState?: boolean): UseDisclosureReturn;
|
|
1248
|
+
|
|
1229
1249
|
type TValueOptions<T> = AtLeastOne<{
|
|
1230
1250
|
/**
|
|
1231
1251
|
* The controlled value.
|
|
@@ -1335,5 +1355,5 @@ declare const getLocalStorage: <T>(key: string, deCode?: boolean) => T | undefin
|
|
|
1335
1355
|
*/
|
|
1336
1356
|
declare const setLocalStorage: (key: string, value: Record<string, any>, enCode?: boolean) => void;
|
|
1337
1357
|
|
|
1338
|
-
export { ByteSize, MimeTypeMap, OtherMimeType, QueryProvider, adToRocEra, camelCase2PascalCase, camelCase2SnakeCase, camelString2PascalString, camelString2SnakeString, convertBytes, createDataContext, createEnumLikeObject, debounce, deepClone, deepMerge, downloadFile, extractEnumLikeObject, fakeApi, formatAmount, formatBytes, formatStarMask, generatePeriodArray, getCurrentPeriod, getLocalStorage, getMimeType, invariant, isChinese, isDateString, isDateTimeString, isEmail, isEnglish, isEqual, isNil, isNonZeroStart, isNumber, isNumberAtLeastN, isNumberN, isNumberNM, isServer, isTWMobile, isTWPhone, isTimeString, isValidPassword, maskString, mergeConfig, mergeRefs, objectToSearchParams, omit, omitByValue, parseFileInfoFromFilename, parseFilenameFromDisposition, pascalCase2CamelCase, pascalCase2SnakeCase, pascalString2CamelString, pascalString2SnakeString, pick, pickByValue, renameKey, rocEraToAd, searchParamsToObject, setLocalStorage, snakeCase2CamelCase, snakeCase2PascalCase, snakeString2CamelString, snakeString2PascalString, throttle, useCountdown, useQueryContext, useValue, validTaxId, validateDateString, validateFileType, wait };
|
|
1339
|
-
export type { MimeTypeExtension, MimeTypeValue, PartialBy, RequiredBy, TCountdownActions };
|
|
1358
|
+
export { ByteSize, MimeTypeMap, OtherMimeType, QueryProvider, adToRocEra, camelCase2PascalCase, camelCase2SnakeCase, camelString2PascalString, camelString2SnakeString, convertBytes, createDataContext, createEnumLikeObject, debounce, deepClone, deepMerge, downloadFile, extractEnumLikeObject, fakeApi, formatAmount, formatBytes, formatStarMask, generatePeriodArray, getCurrentPeriod, getLocalStorage, getMimeType, invariant, isChinese, isDateString, isDateTimeString, isEmail, isEnglish, isEqual, isNil, isNonZeroStart, isNumber, isNumberAtLeastN, isNumberN, isNumberNM, isServer, isTWMobile, isTWPhone, isTimeString, isValidPassword, maskString, mergeConfig, mergeRefs, objectToSearchParams, omit, omitByValue, parseFileInfoFromFilename, parseFilenameFromDisposition, pascalCase2CamelCase, pascalCase2SnakeCase, pascalString2CamelString, pascalString2SnakeString, pick, pickByValue, renameKey, rocEraToAd, searchParamsToObject, setLocalStorage, snakeCase2CamelCase, snakeCase2PascalCase, snakeString2CamelString, snakeString2PascalString, throttle, useCountdown, useDisclosure, useQueryContext, useValue, validTaxId, validateDateString, validateFileType, wait };
|
|
1359
|
+
export type { MimeTypeExtension, MimeTypeValue, PartialBy, RequiredBy, TCountdownActions, UseDisclosureReturn };
|
package/dist/es/index.mjs
CHANGED
|
@@ -2,6 +2,7 @@ import dayjs from 'dayjs';
|
|
|
2
2
|
export { Q as QueryProvider, u as useQueryContext } from './queryStore-12s-CFQTVwrg.mjs';
|
|
3
3
|
import React, { useMemo, createContext, useContext, useState, useCallback } from 'react';
|
|
4
4
|
export { u as useCountdown } from './useCountdown-12s-t52WIHfq.mjs';
|
|
5
|
+
export { u as useDisclosure } from './useDisclosure-12s-BQAHpAXK.mjs';
|
|
5
6
|
export { d as downloadFile } from './download-12s-CnaJ0p_f.mjs';
|
|
6
7
|
export { g as getLocalStorage, s as setLocalStorage } from './webStorage-12s-W1DItzhS.mjs';
|
|
7
8
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState, useCallback } from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A small hook to control open/close state.
|
|
6
|
+
*
|
|
7
|
+
* Supports an optional controlled pattern by passing `isOpen` and `onChange`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const { isOpen, open, close, toggle } = useDisclosure();
|
|
11
|
+
*/ function useDisclosure(initialState = false) {
|
|
12
|
+
const [isOpen, setIsOpen] = useState(initialState);
|
|
13
|
+
const open = useCallback(()=>setIsOpen(true), []);
|
|
14
|
+
const close = useCallback(()=>setIsOpen(false), []);
|
|
15
|
+
const toggle = useCallback(()=>setIsOpen((prev)=>!prev), []);
|
|
16
|
+
return {
|
|
17
|
+
isOpen,
|
|
18
|
+
open,
|
|
19
|
+
close,
|
|
20
|
+
toggle
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { useDisclosure as u };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gateweb/react-utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.16.0",
|
|
4
4
|
"description": "React Utils for GateWeb",
|
|
5
5
|
"homepage": "https://github.com/GatewebSolutions/react-utils",
|
|
6
6
|
"files": [
|
|
@@ -31,16 +31,6 @@
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
|
-
"scripts": {
|
|
35
|
-
"prepare": "husky",
|
|
36
|
-
"run-code": "ts-node src/period.ts",
|
|
37
|
-
"test": "vitest run",
|
|
38
|
-
"test:watch": "vitest",
|
|
39
|
-
"test:coverage": "vitest run --coverage",
|
|
40
|
-
"test:ui": "vitest --ui --coverage.enabled=true",
|
|
41
|
-
"build": "bunchee",
|
|
42
|
-
"build:prepare": "bunchee --prepare"
|
|
43
|
-
},
|
|
44
34
|
"publishConfig": {
|
|
45
35
|
"access": "public"
|
|
46
36
|
},
|
|
@@ -79,5 +69,13 @@
|
|
|
79
69
|
"@commitlint/config-conventional"
|
|
80
70
|
]
|
|
81
71
|
},
|
|
82
|
-
"
|
|
72
|
+
"scripts": {
|
|
73
|
+
"run-code": "ts-node src/period.ts",
|
|
74
|
+
"test": "vitest run",
|
|
75
|
+
"test:watch": "vitest",
|
|
76
|
+
"test:coverage": "vitest run --coverage",
|
|
77
|
+
"test:ui": "vitest --ui --coverage.enabled=true",
|
|
78
|
+
"build": "bunchee",
|
|
79
|
+
"build:prepare": "bunchee --prepare"
|
|
80
|
+
}
|
|
83
81
|
}
|