@encatch/web-sdk 0.0.35 → 1.0.0-beta.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/README.md +140 -638
- package/dist/encatch.es.js +2 -0
- package/dist/encatch.es.js.map +1 -0
- package/dist/encatch.iife.js +2 -0
- package/dist/encatch.iife.js.map +1 -0
- package/dist/index.d.ts +191 -0
- package/package.json +32 -50
- package/dist-sdk/plugin/sdk/core-wrapper-BMvOyc0u.js +0 -22926
- package/dist-sdk/plugin/sdk/module-DC2Edddk.js +0 -481
- package/dist-sdk/plugin/sdk/module.js +0 -5
- package/dist-sdk/plugin/sdk/preview-sdk.html +0 -1182
- package/dist-sdk/plugin/sdk/vite.svg +0 -15
- package/dist-sdk/plugin/sdk/web-form-engine-core.css +0 -1
- package/index.d.ts +0 -207
- package/src/@types/encatch-type.ts +0 -111
- package/src/encatch-instance.ts +0 -161
- package/src/feedback-api-types.ts +0 -18
- package/src/hooks/useDevice.ts +0 -30
- package/src/hooks/useFeedbackInterval.ts +0 -71
- package/src/hooks/useFeedbackTriggers.ts +0 -342
- package/src/hooks/useFetchElligibleFeedbackConfiguration.ts +0 -363
- package/src/hooks/useFetchFeedbackConfigurationDetails.ts +0 -92
- package/src/hooks/usePageChangeTracker.ts +0 -88
- package/src/hooks/usePrepopulatedAnswers.ts +0 -123
- package/src/hooks/useRefineTextForm.ts +0 -55
- package/src/hooks/useSubmitFeedbackForm.ts +0 -134
- package/src/hooks/useUserSession.ts +0 -53
- package/src/module.tsx +0 -428
- package/src/store/formResponses.ts +0 -211
- package/src/utils/browser-details.ts +0 -36
- package/src/utils/duration-utils.ts +0 -158
- package/src/utils/feedback-frequency-storage.ts +0 -214
- package/src/utils/feedback-storage.ts +0 -166
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { FeedbackConfigurationItem } from "@encatch/schema";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Session storage keys
|
|
5
|
-
*/
|
|
6
|
-
const STORAGE_KEYS = {
|
|
7
|
-
PENDING_FEEDBACKS: "encatch-pending-feedbacks",
|
|
8
|
-
SUBMITTED_FEEDBACKS: "encatch-submitted-feedbacks",
|
|
9
|
-
} as const;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Submitted feedback with timestamp
|
|
13
|
-
*/
|
|
14
|
-
export interface SubmittedFeedback {
|
|
15
|
-
feedbackConfigurationId: string;
|
|
16
|
-
feedbackTitle: string;
|
|
17
|
-
submittedAt: number; // Unix timestamp
|
|
18
|
-
feedbackConfig: FeedbackConfigurationItem;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Get all pending (unsubmitted) feedbacks from session storage
|
|
23
|
-
*/
|
|
24
|
-
export const getPendingFeedbacks = (): FeedbackConfigurationItem[] => {
|
|
25
|
-
try {
|
|
26
|
-
const stored = sessionStorage.getItem(STORAGE_KEYS.PENDING_FEEDBACKS);
|
|
27
|
-
if (!stored) return [];
|
|
28
|
-
return JSON.parse(stored) as FeedbackConfigurationItem[];
|
|
29
|
-
} catch (error) {
|
|
30
|
-
console.error("Error reading pending feedbacks:", error);
|
|
31
|
-
return [];
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Set pending feedbacks to session storage
|
|
37
|
-
*/
|
|
38
|
-
export const setPendingFeedbacks = (
|
|
39
|
-
feedbacks: FeedbackConfigurationItem[]
|
|
40
|
-
): void => {
|
|
41
|
-
try {
|
|
42
|
-
sessionStorage.setItem(
|
|
43
|
-
STORAGE_KEYS.PENDING_FEEDBACKS,
|
|
44
|
-
JSON.stringify(feedbacks)
|
|
45
|
-
);
|
|
46
|
-
} catch (error) {
|
|
47
|
-
console.error("Error storing pending feedbacks:", error);
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Get all submitted feedbacks with timestamps
|
|
53
|
-
*/
|
|
54
|
-
export const getSubmittedFeedbacks = (): SubmittedFeedback[] => {
|
|
55
|
-
try {
|
|
56
|
-
const stored = sessionStorage.getItem(STORAGE_KEYS.SUBMITTED_FEEDBACKS);
|
|
57
|
-
if (!stored) return [];
|
|
58
|
-
return JSON.parse(stored) as SubmittedFeedback[];
|
|
59
|
-
} catch (error) {
|
|
60
|
-
console.error("Error reading submitted feedbacks:", error);
|
|
61
|
-
return [];
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Add a submitted feedback with current timestamp
|
|
67
|
-
*/
|
|
68
|
-
export const addSubmittedFeedback = (
|
|
69
|
-
feedback: FeedbackConfigurationItem
|
|
70
|
-
): void => {
|
|
71
|
-
try {
|
|
72
|
-
const submittedFeedbacks = getSubmittedFeedbacks();
|
|
73
|
-
const newSubmittedFeedback: SubmittedFeedback = {
|
|
74
|
-
feedbackConfigurationId: feedback.feedbackConfigurationId,
|
|
75
|
-
feedbackTitle: feedback.feedbackTitle,
|
|
76
|
-
submittedAt: Date.now(),
|
|
77
|
-
feedbackConfig: feedback,
|
|
78
|
-
};
|
|
79
|
-
submittedFeedbacks.push(newSubmittedFeedback);
|
|
80
|
-
sessionStorage.setItem(
|
|
81
|
-
STORAGE_KEYS.SUBMITTED_FEEDBACKS,
|
|
82
|
-
JSON.stringify(submittedFeedbacks)
|
|
83
|
-
);
|
|
84
|
-
} catch (error) {
|
|
85
|
-
console.error("Error adding submitted feedback:", error);
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Remove a feedback from pending list by feedback configuration ID
|
|
91
|
-
*/
|
|
92
|
-
export const removePendingFeedback = (
|
|
93
|
-
feedbackConfigurationId: string
|
|
94
|
-
): void => {
|
|
95
|
-
try {
|
|
96
|
-
const pendingFeedbacks = getPendingFeedbacks();
|
|
97
|
-
const updatedPending = pendingFeedbacks.filter(
|
|
98
|
-
(feedback) =>
|
|
99
|
-
feedback.feedbackConfigurationId !== feedbackConfigurationId
|
|
100
|
-
);
|
|
101
|
-
setPendingFeedbacks(updatedPending);
|
|
102
|
-
} catch (error) {
|
|
103
|
-
console.error("Error removing pending feedback:", error);
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Move a feedback from pending to submitted
|
|
109
|
-
* This is the main function to call when a feedback is submitted
|
|
110
|
-
*/
|
|
111
|
-
export const moveFeedbackToSubmitted = (
|
|
112
|
-
feedbackConfigurationId: string
|
|
113
|
-
): void => {
|
|
114
|
-
try {
|
|
115
|
-
const pendingFeedbacks = getPendingFeedbacks();
|
|
116
|
-
const feedbackToSubmit = pendingFeedbacks.find(
|
|
117
|
-
(feedback) =>
|
|
118
|
-
feedback.feedbackConfigurationId === feedbackConfigurationId
|
|
119
|
-
);
|
|
120
|
-
|
|
121
|
-
if (!feedbackToSubmit) {
|
|
122
|
-
console.warn(
|
|
123
|
-
`Feedback with ID ${feedbackConfigurationId} not found in pending list`
|
|
124
|
-
);
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// Add to submitted with timestamp
|
|
129
|
-
addSubmittedFeedback(feedbackToSubmit);
|
|
130
|
-
|
|
131
|
-
// Remove from pending
|
|
132
|
-
removePendingFeedback(feedbackConfigurationId);
|
|
133
|
-
} catch (error) {
|
|
134
|
-
console.error("Error moving feedback to submitted:", error);
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Clear all submitted feedbacks
|
|
140
|
-
*/
|
|
141
|
-
export const clearSubmittedFeedbacks = (): void => {
|
|
142
|
-
try {
|
|
143
|
-
sessionStorage.removeItem(STORAGE_KEYS.SUBMITTED_FEEDBACKS);
|
|
144
|
-
} catch (error) {
|
|
145
|
-
console.error("Error clearing submitted feedbacks:", error);
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Clear all pending feedbacks
|
|
151
|
-
*/
|
|
152
|
-
export const clearPendingFeedbacks = (): void => {
|
|
153
|
-
try {
|
|
154
|
-
sessionStorage.removeItem(STORAGE_KEYS.PENDING_FEEDBACKS);
|
|
155
|
-
} catch (error) {
|
|
156
|
-
console.error("Error clearing pending feedbacks:", error);
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Clear all feedback storage (both pending and submitted)
|
|
162
|
-
*/
|
|
163
|
-
export const clearAllFeedbackStorage = (): void => {
|
|
164
|
-
clearPendingFeedbacks();
|
|
165
|
-
clearSubmittedFeedbacks();
|
|
166
|
-
};
|