@@ -119,3 +119,68 @@ async function initAndClick() {
119
119
}
120
120
121
121
// Userflow END
122
+
123
+ // Feedback form START
124
+ const yesButton = document . querySelector ( '.feedback--answer-yes' ) ;
125
+ const noButton = document . querySelector ( '.feedback--answer-no' ) ;
126
+ const yesResponse = document . querySelector ( '.feedback--response-yes' ) ;
127
+ const noResponse = document . querySelector ( '.feedback--response-no' ) ;
128
+ const yesFeedback = document . querySelector ( '#yes-feedback-text' ) ;
129
+ const noFeedback = document . querySelector ( '#no-feedback-text' ) ;
130
+ const yesSubmitButton = document . querySelector ( '#yesSubmitButton' ) ;
131
+ const noSubmitButton = document . querySelector ( '#noSubmitButton' ) ;
132
+ const tyResponse = document . querySelector ( '.feedback-ty' ) ;
133
+ const feedbackPrompt = document . querySelector ( '.feedback--prompt' )
134
+ if ( yesButton ) {
135
+ const sendFeedback = ( value ) => {
136
+ if ( typeof gtag !== 'function' ) return ;
137
+ const args = {
138
+ event_category : 'docs_helpful' ,
139
+ event_label : window . location . pathname ,
140
+ value : value
141
+ } ;
142
+ gtag ( 'event' , 'click' , args ) ;
143
+ } ;
144
+ async function sendFeedbackText ( value , text ) {
145
+ async function logJSONData ( data ) {
146
+ return fetch ( "https://feedback-43tn7xos3a-uc.a.run.app" , {
147
+ method : "POST" ,
148
+ headers : {
149
+ "Content-Type" : "application/json" ,
150
+ } ,
151
+ mode : "cors" ,
152
+ credentials : "omit" ,
153
+ body : JSON . stringify ( data )
154
+ } ) ;
155
+ }
156
+ let data = {
157
+ value : value ,
158
+ feedback : text ,
159
+ url : "{{.Permalink}}"
160
+ } ;
161
+ let res = await logJSONData ( data ) ;
162
+ } ;
163
+ yesButton . addEventListener ( 'click' , ( ) => {
164
+ feedbackPrompt . remove ( ) ;
165
+ yesResponse . classList . add ( 'feedback--response__visible' ) ;
166
+ sendFeedback ( 1 ) ;
167
+ sendFeedbackText ( 1 , "Helpful" )
168
+ } ) ;
169
+ noButton . addEventListener ( 'click' , ( ) => {
170
+ feedbackPrompt . remove ( ) ;
171
+ noResponse . classList . add ( 'feedback--response__visible' ) ;
172
+ sendFeedback ( 0 ) ;
173
+ sendFeedbackText ( 0 , "Not Helpful" )
174
+ } ) ;
175
+ yesSubmitButton . addEventListener ( 'click' , ( ) => {
176
+ yesResponse . remove ( ) ;
177
+ tyResponse . classList . add ( 'feedback--response__visible' ) ;
178
+ sendFeedbackText ( 1 , yesFeedback . value ) ;
179
+ } ) ;
180
+ noSubmitButton . addEventListener ( 'click' , ( ) => {
181
+ noResponse . remove ( ) ;
182
+ tyResponse . classList . add ( 'feedback--response__visible' ) ;
183
+ sendFeedbackText ( 0 , noFeedback . value ) ;
184
+ } ) ;
185
+ }
186
+ // Feedback form END
0 commit comments