@wzyjs/hooks 0.2.36 → 0.2.37
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/antd/useDateRange.d.ts +0 -0
- package/dist/antd/useDateRange.js +122 -0
- package/dist/antd/useForm.d.ts +29 -0
- package/dist/antd/useForm.js +113 -0
- package/dist/antd/useHideFooter.js +16 -0
- package/dist/antd/useHovered.d.ts +9 -0
- package/dist/antd/useHovered.js +24 -0
- package/dist/antd/useImperativeHandleForm.d.ts +5 -0
- package/dist/antd/useImperativeHandleForm.js +13 -0
- package/dist/antd/useModalFooter.d.ts +8 -0
- package/dist/antd/useModalFooter.js +69 -0
- package/dist/antd/useOptions.d.ts +0 -0
- package/dist/antd/useOptions.js +46 -0
- package/dist/antd/usePaginationState.d.ts +9 -0
- package/dist/antd/usePaginationState.js +41 -0
- package/dist/antd/useStep.d.ts +16 -0
- package/dist/antd/useStep.js +35 -0
- package/dist/base/useClick.d.ts +10 -0
- package/dist/base/useClick.js +31 -0
- package/dist/base/useDeepEffect.d.ts +1 -0
- package/dist/base/useDeepEffect.js +18 -0
- package/dist/base/useEffectValue.d.ts +1 -0
- package/dist/base/useEffectValue.js +11 -0
- package/dist/base/useOnceEffect.d.ts +1 -0
- package/dist/base/useOnceEffect.js +24 -0
- package/dist/base/useVisibleInfo.d.ts +5 -0
- package/dist/base/useVisibleInfo.js +23 -0
- package/dist/dom/useElementScrollVisible.js +40 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +42 -0
- package/dist/other/useCRUD.d.ts +63 -0
- package/dist/other/useCRUD.js +135 -0
- package/dist/other/useRequestPro.d.ts +0 -0
- package/dist/other/useRequestPro.js +73 -0
- package/dist/other/useSetting.d.ts +0 -0
- package/dist/other/useSetting.js +69 -0
- package/dist/other/useUserInfo.d.ts +0 -0
- package/dist/other/useUserInfo.js +97 -0
- package/dist/other/useWechatLogin.d.ts +11 -0
- package/dist/other/useWechatLogin.js +86 -0
- package/package.json +7 -36
- package/dist/cjs/index.d.ts +0 -10
- package/dist/cjs/index.js +0 -63
- package/dist/cjs/useDateRange.d.ts +0 -26
- package/dist/cjs/useDateRange.js +0 -135
- package/dist/cjs/useEffectValue.d.ts +0 -2
- package/dist/cjs/useEffectValue.js +0 -34
- package/dist/cjs/useElementScrollVisible.js +0 -61
- package/dist/cjs/useHideFooter.js +0 -38
- package/dist/cjs/useOptions.d.ts +0 -13
- package/dist/cjs/useOptions.js +0 -60
- package/dist/cjs/useRequestPro.d.ts +0 -11
- package/dist/cjs/useRequestPro.js +0 -76
- package/dist/cjs/useVisibleInfo.d.ts +0 -5
- package/dist/cjs/useVisibleInfo.js +0 -45
- package/dist/esm/index.d.ts +0 -10
- package/dist/esm/index.js +0 -10
- package/dist/esm/useDateRange.d.ts +0 -26
- package/dist/esm/useDateRange.js +0 -115
- package/dist/esm/useEffectValue.d.ts +0 -2
- package/dist/esm/useEffectValue.js +0 -18
- package/dist/esm/useElementScrollVisible.d.ts +0 -5
- package/dist/esm/useElementScrollVisible.js +0 -52
- package/dist/esm/useHideFooter.d.ts +0 -1
- package/dist/esm/useHideFooter.js +0 -13
- package/dist/esm/useOptions.d.ts +0 -13
- package/dist/esm/useOptions.js +0 -60
- package/dist/esm/useRequestPro.d.ts +0 -11
- package/dist/esm/useRequestPro.js +0 -64
- package/dist/esm/useVisibleInfo.d.ts +0 -5
- package/dist/esm/useVisibleInfo.js +0 -32
- /package/dist/{cjs → antd}/useHideFooter.d.ts +0 -0
- /package/dist/{cjs → dom}/useElementScrollVisible.d.ts +0 -0
|
File without changes
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
// import { useState } from 'react'
|
|
2
|
+
// import { dayjs, Dayjs } from '@wzyjs/utils'
|
|
3
|
+
//
|
|
4
|
+
// export enum PresetType {
|
|
5
|
+
// TODAY = '今天',
|
|
6
|
+
// THIS_WEEK = '本周',
|
|
7
|
+
// LAST_WEEK = '上周',
|
|
8
|
+
// THIS_MONTH = '本月',
|
|
9
|
+
// LAST_MONTH = '上月',
|
|
10
|
+
// }
|
|
11
|
+
//
|
|
12
|
+
// export const rangePresets: { label: string; value: [Dayjs, Dayjs] }[] = [
|
|
13
|
+
// {
|
|
14
|
+
// label: PresetType.TODAY,
|
|
15
|
+
// value: [dayjs().startOf('day'), dayjs().endOf('day')],
|
|
16
|
+
// },
|
|
17
|
+
// {
|
|
18
|
+
// label: PresetType.THIS_WEEK,
|
|
19
|
+
// value: [dayjs().startOf('week'), dayjs().endOf('week')],
|
|
20
|
+
// },
|
|
21
|
+
// {
|
|
22
|
+
// label: PresetType.LAST_WEEK,
|
|
23
|
+
// value: [dayjs().subtract(1, 'week').startOf('week'), dayjs().subtract(1, 'week').endOf('week')],
|
|
24
|
+
// },
|
|
25
|
+
// {
|
|
26
|
+
// label: PresetType.THIS_MONTH,
|
|
27
|
+
// value: [dayjs().startOf('month'), dayjs().endOf('month')],
|
|
28
|
+
// },
|
|
29
|
+
// {
|
|
30
|
+
// label: PresetType.LAST_MONTH,
|
|
31
|
+
// value: [dayjs().subtract(1, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],
|
|
32
|
+
// },
|
|
33
|
+
// ]
|
|
34
|
+
//
|
|
35
|
+
// const checkDateRules = (dateRange: [Dayjs, Dayjs]): number => {
|
|
36
|
+
// const [date1, date2] = dateRange
|
|
37
|
+
//
|
|
38
|
+
// // 规则1: 判断是否为同一天
|
|
39
|
+
// if (date1.isSame(date2, 'day')) {
|
|
40
|
+
// return 1
|
|
41
|
+
// }
|
|
42
|
+
//
|
|
43
|
+
// // 规则2: 判断是否为周一和周日
|
|
44
|
+
// if ((date1.day() === 1 && date2.day() === 0) || (date1.day() === 0 && date2.day() === 1)) {
|
|
45
|
+
// return 2
|
|
46
|
+
// }
|
|
47
|
+
//
|
|
48
|
+
// // 规则3: 判断是否为月初和月末
|
|
49
|
+
// const isStartOrEndOfMonth = (date: Dayjs) => {
|
|
50
|
+
// return date.date() === 1 || date.date() === date.daysInMonth()
|
|
51
|
+
// }
|
|
52
|
+
//
|
|
53
|
+
// if (isStartOrEndOfMonth(date1) && isStartOrEndOfMonth(date2)) {
|
|
54
|
+
// return 3
|
|
55
|
+
// }
|
|
56
|
+
//
|
|
57
|
+
// // 如果没有匹配到任何规则,可以根据需要返回默认值,这里假设返回 0
|
|
58
|
+
// return 0
|
|
59
|
+
// }
|
|
60
|
+
//
|
|
61
|
+
// interface Config {
|
|
62
|
+
// defaultDateRange?: PresetType | [Dayjs, Dayjs]
|
|
63
|
+
// }
|
|
64
|
+
//
|
|
65
|
+
// export const useDateRange = (config: Config) => {
|
|
66
|
+
// const { defaultDateRange = PresetType.TODAY } = config
|
|
67
|
+
//
|
|
68
|
+
// const [dateRange, setDateRange] = useState<[Dayjs, Dayjs]>(
|
|
69
|
+
// Array.isArray(defaultDateRange)
|
|
70
|
+
// ? defaultDateRange
|
|
71
|
+
// : rangePresets.find((item) => item.label === defaultDateRange)?.value || [dayjs().startOf('day'), dayjs().endOf('day')],
|
|
72
|
+
// )
|
|
73
|
+
//
|
|
74
|
+
// const rangeType = checkDateRules(dateRange)
|
|
75
|
+
//
|
|
76
|
+
// return {
|
|
77
|
+
// dateRange,
|
|
78
|
+
//
|
|
79
|
+
// // 这里的 any 实际应该是 antd 的 RangeValue<Dayjs> 类型,
|
|
80
|
+
// // 但是这个类型不好获取,所以这里先用 any 代替
|
|
81
|
+
// onChange: (dateRange?: any) => {
|
|
82
|
+
// if (!dateRange) {
|
|
83
|
+
// return
|
|
84
|
+
// }
|
|
85
|
+
// setDateRange(dateRange as [Dayjs, Dayjs])
|
|
86
|
+
// },
|
|
87
|
+
//
|
|
88
|
+
// onClickPrev: () => {
|
|
89
|
+
// switch (rangeType) {
|
|
90
|
+
// case 1:
|
|
91
|
+
// setDateRange([dateRange[0].subtract(1, 'day'), dateRange[1].subtract(1, 'day')])
|
|
92
|
+
// break
|
|
93
|
+
// case 2:
|
|
94
|
+
// setDateRange([dateRange[0].subtract(1, 'week'), dateRange[1].subtract(1, 'week')])
|
|
95
|
+
// break
|
|
96
|
+
// case 3:
|
|
97
|
+
// setDateRange([dateRange[0].subtract(1, 'month').startOf('month'), dateRange[1].subtract(1, 'month').endOf('month')])
|
|
98
|
+
// break
|
|
99
|
+
// default:
|
|
100
|
+
// setDateRange([dateRange[0].subtract(1, 'day'), dateRange[1]])
|
|
101
|
+
// break
|
|
102
|
+
// }
|
|
103
|
+
// },
|
|
104
|
+
//
|
|
105
|
+
// onClickNext: () => {
|
|
106
|
+
// switch (rangeType) {
|
|
107
|
+
// case 1:
|
|
108
|
+
// setDateRange([dateRange[0].add(1, 'day'), dateRange[1].add(1, 'day')])
|
|
109
|
+
// break
|
|
110
|
+
// case 2:
|
|
111
|
+
// setDateRange([dateRange[0].add(1, 'week'), dateRange[1].add(1, 'week')])
|
|
112
|
+
// break
|
|
113
|
+
// case 3:
|
|
114
|
+
// setDateRange([dateRange[0].add(1, 'month').startOf('month'), dateRange[1].add(1, 'month').endOf('month')])
|
|
115
|
+
// break
|
|
116
|
+
// default:
|
|
117
|
+
// setDateRange([dateRange[0], dateRange[1].add(1, 'day')])
|
|
118
|
+
// break
|
|
119
|
+
// }
|
|
120
|
+
// },
|
|
121
|
+
// }
|
|
122
|
+
// }
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Ref } from 'react';
|
|
2
|
+
interface Options<P, V> {
|
|
3
|
+
transform?: ((values: V) => any)[];
|
|
4
|
+
onChange?: (values: P) => void;
|
|
5
|
+
initialValues?: any;
|
|
6
|
+
ref?: Ref<unknown>;
|
|
7
|
+
}
|
|
8
|
+
export declare const useForm: <P = any, V = P>(options?: Options<P, V>) => {
|
|
9
|
+
form: import("antd").FormInstance<any>;
|
|
10
|
+
formValues: V;
|
|
11
|
+
setFormValues: import("react").Dispatch<import("react").SetStateAction<V>>;
|
|
12
|
+
formParams: P;
|
|
13
|
+
clearFieldsValues: () => void;
|
|
14
|
+
setFieldsValues: (values: V) => void;
|
|
15
|
+
onQuery: () => Promise<void>;
|
|
16
|
+
onReset: () => void;
|
|
17
|
+
formProps: {
|
|
18
|
+
form: import("antd").FormInstance<any>;
|
|
19
|
+
onValuesChange: (_: unknown, values: V) => void;
|
|
20
|
+
preserve: boolean;
|
|
21
|
+
labelCol: {
|
|
22
|
+
span: number;
|
|
23
|
+
};
|
|
24
|
+
style: {
|
|
25
|
+
marginTop: number;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.useForm = void 0;
|
|
40
|
+
var react_1 = require("react");
|
|
41
|
+
var antd_1 = require("antd");
|
|
42
|
+
var cloneDeep = function (value) {
|
|
43
|
+
return JSON.parse(JSON.stringify(value));
|
|
44
|
+
};
|
|
45
|
+
var useForm = function (options) {
|
|
46
|
+
if (options === void 0) { options = {}; }
|
|
47
|
+
var form = antd_1.Form.useForm()[0];
|
|
48
|
+
(0, react_1.useImperativeHandle)(options.ref, function () { return form; });
|
|
49
|
+
var _a = (0, react_1.useState)(options.initialValues), formValues = _a[0], setFormValues = _a[1];
|
|
50
|
+
var formParams = (0, react_1.useMemo)(function () {
|
|
51
|
+
var _a;
|
|
52
|
+
if (!formValues) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
if (!((_a = options.transform) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
56
|
+
return formValues;
|
|
57
|
+
}
|
|
58
|
+
return options.transform.reduce(function (values, handle) {
|
|
59
|
+
return handle(values);
|
|
60
|
+
}, cloneDeep(formValues));
|
|
61
|
+
}, [formValues]);
|
|
62
|
+
(0, react_1.useEffect)(function () {
|
|
63
|
+
var _a;
|
|
64
|
+
(_a = options.onChange) === null || _a === void 0 ? void 0 : _a.call(options, formParams);
|
|
65
|
+
}, [formParams]);
|
|
66
|
+
var onQuery = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
67
|
+
return __generator(this, function (_a) {
|
|
68
|
+
switch (_a.label) {
|
|
69
|
+
case 0: return [4 /*yield*/, form.validateFields()];
|
|
70
|
+
case 1:
|
|
71
|
+
_a.sent();
|
|
72
|
+
setFormValues(form.getFieldsValue());
|
|
73
|
+
return [2 /*return*/];
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}); };
|
|
77
|
+
var onReset = function () {
|
|
78
|
+
form.resetFields();
|
|
79
|
+
onQuery();
|
|
80
|
+
};
|
|
81
|
+
var onValuesChange = function (_, values) {
|
|
82
|
+
setFormValues(values);
|
|
83
|
+
};
|
|
84
|
+
var clearFieldsValues = function () {
|
|
85
|
+
form.resetFields();
|
|
86
|
+
setFormValues(null);
|
|
87
|
+
};
|
|
88
|
+
var setFieldsValues = function (values) {
|
|
89
|
+
form.setFieldsValue(values);
|
|
90
|
+
setFormValues(values);
|
|
91
|
+
};
|
|
92
|
+
return {
|
|
93
|
+
// 表单组件的引用
|
|
94
|
+
form: form,
|
|
95
|
+
// 表单的原始数据
|
|
96
|
+
formValues: formValues,
|
|
97
|
+
setFormValues: setFormValues,
|
|
98
|
+
// 表单数据转换为后端格式的数据
|
|
99
|
+
formParams: formParams,
|
|
100
|
+
clearFieldsValues: clearFieldsValues,
|
|
101
|
+
setFieldsValues: setFieldsValues,
|
|
102
|
+
onQuery: onQuery,
|
|
103
|
+
onReset: onReset,
|
|
104
|
+
formProps: {
|
|
105
|
+
form: form,
|
|
106
|
+
onValuesChange: onValuesChange,
|
|
107
|
+
preserve: false, // 字段被删除时,是否保留字段值
|
|
108
|
+
labelCol: { span: 4 },
|
|
109
|
+
style: { marginTop: 20 },
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
exports.useForm = useForm;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useHideFooter = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
// 进入时隐藏指定元素,销毁时恢复该元素
|
|
6
|
+
var useHideFooter = function (el) {
|
|
7
|
+
if (el === void 0) { el = '.ant-layout-footer'; }
|
|
8
|
+
(0, react_1.useEffect)(function () {
|
|
9
|
+
var e = document.querySelector(el);
|
|
10
|
+
e.style.display = 'none';
|
|
11
|
+
return function () {
|
|
12
|
+
e.style.display = 'block';
|
|
13
|
+
};
|
|
14
|
+
}, []);
|
|
15
|
+
};
|
|
16
|
+
exports.useHideFooter = useHideFooter;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.useHovered = void 0;
|
|
15
|
+
var ahooks_1 = require("ahooks");
|
|
16
|
+
var useHovered = function () {
|
|
17
|
+
var _a = (0, ahooks_1.useBoolean)(false), isHovered = _a[0], _b = _a[1], setTrue = _b.setTrue, setFalse = _b.setFalse;
|
|
18
|
+
var hoverProps = {
|
|
19
|
+
onMouseEnter: setTrue,
|
|
20
|
+
onMouseLeave: setFalse,
|
|
21
|
+
};
|
|
22
|
+
return __assign({ isHovered: isHovered, hoverProps: hoverProps }, hoverProps);
|
|
23
|
+
};
|
|
24
|
+
exports.useHovered = useHovered;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useImperativeHandleForm = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var antd_1 = require("antd");
|
|
6
|
+
var useImperativeHandleForm = function (ref) {
|
|
7
|
+
var form = antd_1.Form.useForm()[0];
|
|
8
|
+
(0, react_1.useImperativeHandle)(ref, function () { return form; });
|
|
9
|
+
return {
|
|
10
|
+
form: form,
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
exports.useImperativeHandleForm = useImperativeHandleForm;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.useModalFooter = void 0;
|
|
40
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
41
|
+
var react_1 = require("react");
|
|
42
|
+
var antd_1 = require("antd");
|
|
43
|
+
var useModalFooter = function (_a) {
|
|
44
|
+
var onOk = _a.onOk, onConfirm = _a.onConfirm;
|
|
45
|
+
var _b = (0, react_1.useState)(false), open = _b[0], setOpen = _b[1];
|
|
46
|
+
var onCancel = function () {
|
|
47
|
+
setOpen(false);
|
|
48
|
+
};
|
|
49
|
+
var onOpenChange = function (newOpen) { return __awaiter(void 0, void 0, void 0, function () {
|
|
50
|
+
return __generator(this, function (_a) {
|
|
51
|
+
switch (_a.label) {
|
|
52
|
+
case 0:
|
|
53
|
+
if (!newOpen) {
|
|
54
|
+
setOpen(false);
|
|
55
|
+
return [2 /*return*/];
|
|
56
|
+
}
|
|
57
|
+
return [4 /*yield*/, (onOk === null || onOk === void 0 ? void 0 : onOk())];
|
|
58
|
+
case 1:
|
|
59
|
+
_a.sent();
|
|
60
|
+
setOpen(true);
|
|
61
|
+
return [2 /*return*/];
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}); };
|
|
65
|
+
return {
|
|
66
|
+
footer: function (_, extra) { return ((0, jsx_runtime_1.jsxs)(antd_1.Space, { children: [(0, jsx_runtime_1.jsx)(extra.CancelBtn, {}), (0, jsx_runtime_1.jsx)(antd_1.Popconfirm, { title: '\u786E\u8BA4\u64CD\u4F5C\u5417?', open: open, onCancel: onCancel, onConfirm: onConfirm, onOpenChange: onOpenChange, children: (0, jsx_runtime_1.jsx)(antd_1.Button, { type: 'primary', children: "\u786E\u5B9A" }) })] })); },
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
exports.useModalFooter = useModalFooter;
|
|
File without changes
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// import { useEffect, useMemo, useState } from 'react'
|
|
2
|
+
// import { useRequestPro } from './useRequestPro'
|
|
3
|
+
//
|
|
4
|
+
// interface Option {
|
|
5
|
+
// apis: any
|
|
6
|
+
// onChange?: (data?: any) => void
|
|
7
|
+
// }
|
|
8
|
+
//
|
|
9
|
+
// export const useOptions = (option: Option) => {
|
|
10
|
+
// const { apis } = option
|
|
11
|
+
//
|
|
12
|
+
// const [value, setValue] = useState<string>()
|
|
13
|
+
//
|
|
14
|
+
// // 发请求获取列表数据
|
|
15
|
+
// const { data, loading } = useRequestPro(apis.list, {
|
|
16
|
+
// onSuccess: res => {
|
|
17
|
+
// const [first] = res.data?.data || []
|
|
18
|
+
// if (first) {
|
|
19
|
+
// setValue(first?.id)
|
|
20
|
+
// }
|
|
21
|
+
// },
|
|
22
|
+
// })
|
|
23
|
+
//
|
|
24
|
+
// // 将列表数据转换成 enableOptions
|
|
25
|
+
// const enableOptions = useMemo(() => {
|
|
26
|
+
// return data?.data.map((item: any) => ({ label: item.name, value: item.id })) || []
|
|
27
|
+
// }, [data])
|
|
28
|
+
//
|
|
29
|
+
// // 根据 value 获取当前详细数据
|
|
30
|
+
// const currentData = useMemo(() => {
|
|
31
|
+
// return data?.data.find((item: any) => item.id === value)
|
|
32
|
+
// }, [data, value])
|
|
33
|
+
//
|
|
34
|
+
// // value 变化时触发 onChange
|
|
35
|
+
// useEffect(() => {
|
|
36
|
+
// option.onChange?.(currentData)
|
|
37
|
+
// }, [currentData])
|
|
38
|
+
//
|
|
39
|
+
// return {
|
|
40
|
+
// loading,
|
|
41
|
+
// enableOptions,
|
|
42
|
+
// value,
|
|
43
|
+
// onChange: setValue,
|
|
44
|
+
// currentData,
|
|
45
|
+
// }
|
|
46
|
+
// }
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.usePaginationState = void 0;
|
|
15
|
+
var react_1 = require("react");
|
|
16
|
+
var usePaginationState = function (paginationProps) {
|
|
17
|
+
var options = __assign({ current: 1, pageSize: 10, showSizeChanger: true, showQuickJumper: true, showTotal: function (total) { return "\u603B\u5171 ".concat(total, " \u6761"); }, pageSizeOptions: [10, 20, 30, 50] }, paginationProps);
|
|
18
|
+
var _a = (0, react_1.useState)(options.current), current = _a[0], setCurrent = _a[1];
|
|
19
|
+
var _b = (0, react_1.useState)(options.pageSize), pageSize = _b[0], setPageSize = _b[1];
|
|
20
|
+
var onChange = function (current, pageSize) {
|
|
21
|
+
setCurrent(current);
|
|
22
|
+
setPageSize(pageSize);
|
|
23
|
+
};
|
|
24
|
+
var resetPage = function () {
|
|
25
|
+
setCurrent(1);
|
|
26
|
+
};
|
|
27
|
+
var pagination = __assign(__assign({}, options), { current: current, pageSize: pageSize, onChange: onChange });
|
|
28
|
+
var pageParams = (0, react_1.useMemo)(function () { return ({
|
|
29
|
+
pageNum: current,
|
|
30
|
+
pageSize: pageSize,
|
|
31
|
+
}); }, [current, pageSize]);
|
|
32
|
+
return {
|
|
33
|
+
// 重置到第一页
|
|
34
|
+
resetPage: resetPage,
|
|
35
|
+
// Table pagination prop
|
|
36
|
+
pagination: pagination,
|
|
37
|
+
// 转换为后端的分页参数
|
|
38
|
+
pageParams: pageParams,
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
exports.usePaginationState = usePaginationState;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare enum Dir {
|
|
2
|
+
Prev = "Prev",
|
|
3
|
+
Next = "Next"
|
|
4
|
+
}
|
|
5
|
+
interface Option {
|
|
6
|
+
defaultCurrent?: number;
|
|
7
|
+
onChangeCheck?: (current: number, dir: Dir) => false | void;
|
|
8
|
+
onChangeBefore?: () => void;
|
|
9
|
+
onChangeAfter?: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const useStep: (option: Option) => {
|
|
12
|
+
current: number;
|
|
13
|
+
onPrev: () => void;
|
|
14
|
+
onNext: () => void;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useStep = exports.Dir = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var Dir;
|
|
6
|
+
(function (Dir) {
|
|
7
|
+
Dir["Prev"] = "Prev";
|
|
8
|
+
Dir["Next"] = "Next";
|
|
9
|
+
})(Dir || (exports.Dir = Dir = {}));
|
|
10
|
+
var useStep = function (option) {
|
|
11
|
+
var _a = option.defaultCurrent, defaultCurrent = _a === void 0 ? 0 : _a, onChangeCheck = option.onChangeCheck, onChangeBefore = option.onChangeBefore, onChangeAfter = option.onChangeAfter;
|
|
12
|
+
var _b = (0, react_1.useState)(defaultCurrent), current = _b[0], setCurrent = _b[1];
|
|
13
|
+
var onPrev = function () {
|
|
14
|
+
if ((onChangeCheck === null || onChangeCheck === void 0 ? void 0 : onChangeCheck(current, Dir.Prev)) === false) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
onChangeBefore === null || onChangeBefore === void 0 ? void 0 : onChangeBefore();
|
|
18
|
+
setCurrent(current - 1);
|
|
19
|
+
onChangeAfter === null || onChangeAfter === void 0 ? void 0 : onChangeAfter();
|
|
20
|
+
};
|
|
21
|
+
var onNext = function () {
|
|
22
|
+
if ((onChangeCheck === null || onChangeCheck === void 0 ? void 0 : onChangeCheck(current, Dir.Next)) === false) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
onChangeBefore === null || onChangeBefore === void 0 ? void 0 : onChangeBefore();
|
|
26
|
+
setCurrent(current + 1);
|
|
27
|
+
onChangeAfter === null || onChangeAfter === void 0 ? void 0 : onChangeAfter();
|
|
28
|
+
};
|
|
29
|
+
return {
|
|
30
|
+
current: current,
|
|
31
|
+
onPrev: onPrev,
|
|
32
|
+
onNext: onNext,
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
exports.useStep = useStep;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type MouseEventType = React.MouseEvent<HTMLElement> | MouseEvent;
|
|
3
|
+
type ClickHandler<P> = (event: P) => void;
|
|
4
|
+
interface Option<P> {
|
|
5
|
+
onClick: ClickHandler<P>;
|
|
6
|
+
onDoubleClick: ClickHandler<P>;
|
|
7
|
+
delay?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare const useClick: <P = MouseEventType>(option: Option<P>) => ClickHandler<P>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
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.useClick = void 0;
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var useClick = function (option) {
|
|
9
|
+
var onClick = option.onClick, onDoubleClick = option.onDoubleClick, _a = option.delay, delay = _a === void 0 ? 300 : _a;
|
|
10
|
+
var clickCount = react_1.default.useRef(0);
|
|
11
|
+
var timer = react_1.default.useRef(null);
|
|
12
|
+
return function (ev) {
|
|
13
|
+
clickCount.current += 1;
|
|
14
|
+
if (clickCount.current === 1) {
|
|
15
|
+
timer.current = setTimeout(function () {
|
|
16
|
+
if (clickCount.current === 1) {
|
|
17
|
+
onClick(ev);
|
|
18
|
+
}
|
|
19
|
+
clickCount.current = 0;
|
|
20
|
+
}, delay);
|
|
21
|
+
}
|
|
22
|
+
if (clickCount.current === 2) {
|
|
23
|
+
if (timer.current) {
|
|
24
|
+
clearTimeout(timer.current);
|
|
25
|
+
}
|
|
26
|
+
onDoubleClick(ev);
|
|
27
|
+
clickCount.current = 0;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
exports.useClick = useClick;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useDeepEffect: (callback: () => void, dependencies: any[]) => void;
|
|
@@ -0,0 +1,18 @@
|
|
|
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.useDeepEffect = void 0;
|
|
7
|
+
var react_1 = require("react");
|
|
8
|
+
var isEqual_1 = __importDefault(require("lodash/isEqual"));
|
|
9
|
+
var useDeepEffect = function (callback, dependencies) {
|
|
10
|
+
var ref = (0, react_1.useRef)([]);
|
|
11
|
+
(0, react_1.useEffect)(function () {
|
|
12
|
+
if (!(0, isEqual_1.default)(ref.current, dependencies)) {
|
|
13
|
+
callback();
|
|
14
|
+
ref.current = dependencies;
|
|
15
|
+
}
|
|
16
|
+
}, [callback, dependencies]);
|
|
17
|
+
};
|
|
18
|
+
exports.useDeepEffect = useDeepEffect;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useEffectValue: (defaultValue: any, fn: any, deps?: any[]) => any[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useEffectValue = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var useEffectValue = function (defaultValue, fn, deps) {
|
|
6
|
+
if (deps === void 0) { deps = []; }
|
|
7
|
+
var _a = (0, react_1.useState)(defaultValue), value = _a[0], setValue = _a[1];
|
|
8
|
+
(0, react_1.useEffect)(function () { return setValue(fn()); }, deps);
|
|
9
|
+
return [value, setValue];
|
|
10
|
+
};
|
|
11
|
+
exports.useEffectValue = useEffectValue;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useOnceEffect: (effect: () => boolean, deps: React.DependencyList) => void;
|