@@ -119,3 +119,68 @@ async function initAndClick() {
119119}
120120
121121// 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