Frappe Prompt Using frappe.publish_realtime Does not Execute Frappe Call in Promise

I am working on various buying workflows: Material Request, Purchase Order, Request For Quotation etc.
On the Workflow action Reject or Cancel I need it to Raise a prompt for a user to fill in the reason for cancelling or rejecting the document.
I have used hooks.py and here is the invoked function and the error I am getting:

frappe.publish_realtime(event=‘eval_js’,

 message="""frappe.prompt(

    [{ label: 'Memo',   fieldname: 'memo_text', fieldtype: 'Data', reqd:1},], 

    (values) => {frappe.call({

                "method":"mtrh_dev.mtrh_dev.workflow_custom_action.apply_custom_action",

                args: {

                    comment_type: 'Workflow',

                    comment_email:"""+full_user_name+""",

                    reference_doctype:'Material Request',

                    reference_name:"""+docname+""",

                    content: values.memo_text 

        },

        async: false,

        callback: function(response){

                console.log(response)

            }

        })

        }) console.log(values.memo_text);},

    "You  """+current_state+""" """+doc.name+"""  Please enter a memo(Reason for your action)","Post Memo")""", user=frappe.session.user)

Error
Uncaught SyntaxError: Octal literals are not allowed in strict mode.
at n. (socketio_client.js:39)
at n.emit (libs.min.js?ver=1587112476.0:12150)
at n.onevent (libs.min.js?ver=1587112476.0:12151)
at n.onpacket (libs.min.js?ver=1587112476.0:12151)
at n. (libs.min.js?ver=1587112476.0:12151)
at n.emit (libs.min.js?ver=1587112476.0:12150)
at n.ondecoded (libs.min.js?ver=1587112476.0:12150)
at s. (libs.min.js?ver=1587112476.0:12151)
at s.n.emit (libs.min.js?ver=1587112476.0:12150)
at s.add (libs.min.js?ver=1587112476.0:12150)

Have you resolved the error?

Yes I did. Created a .js file on public/ folder of my app. On that .js file I listen to workflow_state change. Finally I have included it in hooks.py