funda-ui 4.7.171 → 4.7.181
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/LiveSearch/index.d.ts +1 -0
- package/LiveSearch/index.js +7 -5
- package/MultipleCheckboxes/index.d.ts +24 -0
- package/MultipleCheckboxes/index.js +105 -14
- package/README.md +1 -1
- package/Select/index.d.ts +1 -0
- package/Select/index.js +8 -6
- package/Tree/index.css +5 -0
- package/Tree/index.d.ts +15 -3
- package/Tree/index.js +449 -208
- package/Utils/useHistoryTracker.d.ts +155 -15
- package/Utils/useHistoryTracker.js +262 -88
- package/lib/cjs/LiveSearch/index.d.ts +1 -0
- package/lib/cjs/LiveSearch/index.js +7 -5
- package/lib/cjs/MultipleCheckboxes/index.d.ts +24 -0
- package/lib/cjs/MultipleCheckboxes/index.js +105 -14
- package/lib/cjs/Select/index.d.ts +1 -0
- package/lib/cjs/Select/index.js +8 -6
- package/lib/cjs/Tree/index.d.ts +15 -3
- package/lib/cjs/Tree/index.js +449 -208
- package/lib/cjs/Utils/useHistoryTracker.d.ts +155 -15
- package/lib/cjs/Utils/useHistoryTracker.js +262 -88
- package/lib/css/Tree/index.css +5 -0
- package/lib/esm/LiveSearch/index.tsx +14 -6
- package/lib/esm/MultipleCheckboxes/index.tsx +350 -215
- package/lib/esm/Select/index.tsx +23 -7
- package/lib/esm/Tree/TreeList.tsx +114 -130
- package/lib/esm/Tree/index.scss +10 -12
- package/lib/esm/Tree/index.tsx +253 -68
- package/lib/esm/Tree/init-height.tsx +14 -1
- package/lib/esm/Utils/hooks/useHistoryTracker.tsx +266 -115
- package/package.json +1 -1
|
@@ -1,4 +1,142 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* History Tracker
|
|
3
|
+
* @since 20250515
|
|
4
|
+
*
|
|
5
|
+
* @usage:
|
|
6
|
+
|
|
7
|
+
const App = () => {
|
|
8
|
+
const {
|
|
9
|
+
getReady,
|
|
10
|
+
clearHistory,
|
|
11
|
+
goBack,
|
|
12
|
+
getFirstUrl,
|
|
13
|
+
getCurrentUrl,
|
|
14
|
+
getForwardHistory,
|
|
15
|
+
getHistory,
|
|
16
|
+
} = useHistoryTracker({
|
|
17
|
+
onChange: ({
|
|
18
|
+
isReady,
|
|
19
|
+
history,
|
|
20
|
+
forwardHistory,
|
|
21
|
+
currentUrl,
|
|
22
|
+
firstUrl,
|
|
23
|
+
canGoBack,
|
|
24
|
+
canGoForward
|
|
25
|
+
} : {
|
|
26
|
+
isReady: boolean;
|
|
27
|
+
history: string[];
|
|
28
|
+
forwardHistory: string[];
|
|
29
|
+
currentUrl: string;
|
|
30
|
+
firstUrl: string;
|
|
31
|
+
canGoBack: boolean;
|
|
32
|
+
canGoForward: boolean;
|
|
33
|
+
}) => {
|
|
34
|
+
console.log('--> onChange: ',
|
|
35
|
+
isReady,
|
|
36
|
+
history,
|
|
37
|
+
forwardHistory,
|
|
38
|
+
currentUrl,
|
|
39
|
+
firstUrl,
|
|
40
|
+
canGoBack,
|
|
41
|
+
canGoForward
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// useEffect(() => {
|
|
47
|
+
// console.log(getReady(), getFirstUrl(), getCurrentUrl(), getForwardHistory(), getHistory());
|
|
48
|
+
// }, [getReady, getFirstUrl, getCurrentUrl]);
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
// useEffect(() => {
|
|
52
|
+
// setTimeout(async () => {
|
|
53
|
+
// console.log('--> clean history within 2m');
|
|
54
|
+
// await clearHistory();
|
|
55
|
+
// }, 2000);
|
|
56
|
+
// }, []);
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
return (
|
|
60
|
+
<div>
|
|
61
|
+
|
|
62
|
+
<div>
|
|
63
|
+
<h3>isReady:</h3>
|
|
64
|
+
<p>{String(getReady())}</p>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<div>
|
|
68
|
+
<h3>First URL:</h3>
|
|
69
|
+
<p>{getFirstUrl()}</p>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
<div>
|
|
73
|
+
<h3>Current URL:</h3>
|
|
74
|
+
<p>{getCurrentUrl()}</p>
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
|
+
<div>
|
|
78
|
+
<h3>History ({getHistory().length}):</h3>
|
|
79
|
+
<ul>
|
|
80
|
+
{getHistory().map((url, index) => (
|
|
81
|
+
<li key={index}>{url}</li>
|
|
82
|
+
))}
|
|
83
|
+
</ul>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<div>
|
|
87
|
+
<h3>Forward History ({getForwardHistory().length}):</h3>
|
|
88
|
+
<ul>
|
|
89
|
+
{getForwardHistory().map((url, index) => (
|
|
90
|
+
<li key={index}>{url}</li>
|
|
91
|
+
))}
|
|
92
|
+
</ul>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
<button onClick={clearHistory}>
|
|
98
|
+
Clear History
|
|
99
|
+
</button>
|
|
100
|
+
|
|
101
|
+
<button onClick={async () => {
|
|
102
|
+
try {
|
|
103
|
+
const {
|
|
104
|
+
isReady,
|
|
105
|
+
history,
|
|
106
|
+
forwardHistory,
|
|
107
|
+
canGoBack,
|
|
108
|
+
canGoForward
|
|
109
|
+
} : {
|
|
110
|
+
isReady: boolean;
|
|
111
|
+
history: string[];
|
|
112
|
+
forwardHistory: string[];
|
|
113
|
+
canGoBack: boolean;
|
|
114
|
+
canGoForward: boolean;
|
|
115
|
+
} = await goBack();
|
|
116
|
+
|
|
117
|
+
console.log('--> goBack: ',
|
|
118
|
+
isReady,
|
|
119
|
+
history,
|
|
120
|
+
forwardHistory,
|
|
121
|
+
currentUrl,
|
|
122
|
+
firstUrl,
|
|
123
|
+
canGoBack,
|
|
124
|
+
canGoForward
|
|
125
|
+
);
|
|
126
|
+
} catch (error) {
|
|
127
|
+
console.error('Navigation failed', error);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
}}>
|
|
131
|
+
Back
|
|
132
|
+
</button>
|
|
133
|
+
|
|
134
|
+
</div>
|
|
135
|
+
);
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
*/
|
|
139
|
+
export interface HistoryTrackerChange {
|
|
2
140
|
isReady: boolean;
|
|
3
141
|
history: string[];
|
|
4
142
|
forwardHistory: string[];
|
|
@@ -6,21 +144,23 @@ export declare type UseHistoryTrackerChangeFnType = (args: {
|
|
|
6
144
|
firstUrl: string;
|
|
7
145
|
canGoBack: boolean;
|
|
8
146
|
canGoForward: boolean;
|
|
9
|
-
}
|
|
10
|
-
export
|
|
11
|
-
onChange?:
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
clearHistory: () =>
|
|
147
|
+
}
|
|
148
|
+
export interface UseHistoryTrackerProps {
|
|
149
|
+
onChange?: (data: HistoryTrackerChange) => void;
|
|
150
|
+
}
|
|
151
|
+
export interface UseHistoryTrackerReturn {
|
|
152
|
+
getReady: () => boolean;
|
|
153
|
+
getHistory: () => string[];
|
|
154
|
+
getForwardHistory: () => string[];
|
|
155
|
+
getCurrentUrl: () => string;
|
|
156
|
+
getFirstUrl: () => string;
|
|
157
|
+
clearHistory: () => Promise<HistoryTrackerChange>;
|
|
20
158
|
goToHistory: (index: number) => void;
|
|
21
|
-
goBack: () => Promise<
|
|
22
|
-
goForward: () => Promise<
|
|
159
|
+
goBack: () => Promise<HistoryTrackerChange>;
|
|
160
|
+
goForward: () => Promise<HistoryTrackerChange>;
|
|
23
161
|
canGoBack: () => boolean;
|
|
24
162
|
canGoForward: () => boolean;
|
|
25
|
-
|
|
163
|
+
addHistoryToFirst: (url: string) => Promise<HistoryTrackerChange>;
|
|
164
|
+
}
|
|
165
|
+
declare const useHistoryTracker: (props?: UseHistoryTrackerProps) => UseHistoryTrackerReturn;
|
|
26
166
|
export default useHistoryTracker;
|