PluginProbe
Extendify / 3.2.2
Extendify v3.2.2
3.2.2 3.2.1 3.2.0 3.1.6 3.1.5 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.6 3.0.5 3.0.4 trunk 0.1.0 0.10.0 0.10.1 0.10.2 0.11.0 0.11.1 0.2.0 0.3.0 0.3.1 0.4.0 0.5.0 All 128 releases
← All changes | src/Assist/state/domain-activities.js +22 -7 3.0.4 → 3.2.2 View file →
@@ -11,18 +11,22 @@
11 11 };
12 12
13 13 const state = (set, get) => ({
14 14 ...initialState,
15 - setDomainActivity: ({ domain, position, type = 'primary' }) => {
16 - const activities = get().activities;
15 + setDomainActivity: ({
16 + domain,
17 + position,
18 + type = 'primary',
19 + action = 'clicked',
20 + }) => {
17 21 set({
18 22 activities: [
19 - ...activities,
23 + ...get().activities,
20 24 {
21 - domain,
25 + domain: domain?.toLowerCase(),
22 26 position,
23 27 type,
24 - action: 'clicked',
28 + action,
25 29 date: new Date().toISOString(),
26 30 },
27 31 ],
28 32 });
@@ -28,13 +32,24 @@
28 32 });
29 33 },
30 34 });
31 35
36 +const debounce = (func, delay) => {
37 + let timeoutId;
38 + return (...params) => {
39 + clearTimeout(timeoutId);
40 + timeoutId = setTimeout(() => func(...params), delay);
41 + };
42 +};
43 +
32 44 const path = '/extendify/v1/assists/domains-recommendations-activities';
33 45 const storage = {
34 46 getItem: async () => await apiFetch({ path }),
35 - setItem: async (_name, state) =>
36 - await apiFetch({ path, method: 'POST', data: { state } }),
47 + setItem: debounce(
48 + async (_name, state) =>
49 + await apiFetch({ path, method: 'POST', data: { state } }),
50 + 500,
51 + ),
37 52 };
38 53
39 54 export const useDomainActivities = create(
40 55 persist(