funda-ui 4.7.163 → 4.7.175

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.
@@ -1,4 +1,142 @@
1
- export declare type UseHistoryTrackerChangeFnType = (args: {
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
- }) => void;
10
- export declare type UseHistoryTrackerProps = {
11
- onChange?: UseHistoryTrackerChangeFnType | null;
12
- };
13
- declare const useHistoryTracker: (props: UseHistoryTrackerProps) => {
14
- isReady: boolean;
15
- history: string[];
16
- forwardHistory: string[];
17
- currentUrl: string;
18
- firstUrl: string;
19
- clearHistory: () => void;
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<unknown>;
22
- goForward: () => Promise<unknown>;
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;