slack update modal view on on_enter_pressed

249 Views Asked by At

I'm trying to update the hint of an input text on my modal view upon the user press enter.

Slack documentation state that it is possible using on_enter_pressed but I can't get it to work.

This is the code that get properly called on the action on_enter_pressed but it throw an error

private com.slack.api.bolt.response.Response checkFileAlreadyInRepo(BlockActionRequest request, ActionContext actionContext)
    throws IOException {
    Assert.notNull(request, "block action request");
    
    request.getPayload().getView().getBlocks().forEach(b -> {
        if(b.getBlockId().equals("file-url-block")){
            ((InputBlock) b).setHint(PlainTextObject.builder().text("hello").build());
        }
    });

    actionContext.respond(b -> b
        .replaceOriginal(true).blocks(request.getPayload().getView().getBlocks())
    );

    return actionContext.ack();

This is the error:

java.lang.NullPointerException: Parameter specified as non-null is null: method okhttp3.Request$Builder.url, parameter url
at okhttp3.Request$Builder.url(Request.kt) ~[okhttp-4.9.2.jar:na]
at com.slack.api.util.http.SlackHttpClient.postJsonBody(SlackHttpClient.java:184) ~[slack-api-client-1.14.0.jar:1.14.0]
at com.slack.api.app_backend.interactive_components.ActionResponseSender.send(ActionResponseSender.java:21) ~[slack-app-backend-1.14.0.jar:1.14.0]
at com.slack.api.bolt.util.Responder.send(Responder.java:52) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.context.ActionRespondUtility.respond(ActionRespondUtility.java:31) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.context.ActionRespondUtility.respond(ActionRespondUtility.java:36) ~[bolt-1.14.0.jar:1.14.0]
at com.workday.be.throg.service.upload_file.UploadFileService.checkFileAlreadyInRepo(UploadFileService.java:158) ~[main/:na]
at com.slack.api.bolt.App.runHandler(App.java:1147) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.App.lambda$runMiddleware$3(App.java:1003) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.middleware.builtin.IgnoringSelfEvents.apply(IgnoringSelfEvents.java:97) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.App.runMiddleware(App.java:1003) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.App.lambda$runMiddleware$4(App.java:1006) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.middleware.builtin.SingleTeamAuthorization.apply(SingleTeamAuthorization.java:87) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.App.runMiddleware(App.java:1006) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.App.lambda$runMiddleware$4(App.java:1006) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.middleware.builtin.RequestVerification.apply(RequestVerification.java:27) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.App.runMiddleware(App.java:1006) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.App.lambda$runMiddleware$4(App.java:1006) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.middleware.builtin.SSLCheck.apply(SSLCheck.java:51) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.App.runMiddleware(App.java:1006) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.App.run(App.java:575) ~[bolt-1.14.0.jar:1.14.0]
at com.slack.api.bolt.socket_mode.SocketModeApp.lambda$buildSocketModeClient$0(SocketModeApp.java:37) ~[bolt-socket-mode-1.14.0.jar:1.14.0]
at com.slack.api.socket_mode.SocketModeClient.processMessage(SocketModeClient.java:355) ~[slack-api-client-1.14.0.jar:1.14.0]
at com.slack.api.socket_mode.SocketModeClient.lambda$initializeMessageProcessorExecutor$0(SocketModeClient.java:157) ~[slack-api-client-1.14.0.jar:1.14.0]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_345]
at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308) ~[na:1.8.0_345]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java) ~[na:1.8.0_345]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_345]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) ~[na:1.8.0_345]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_345]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_345]
at java.lang.Thread.run(Thread.java:750) ~[na:1.8.0_345]

Not sure why responseUrl is null, I was expecting to be populated in the ActionContext

message: enter image description here

Modal view: enter image description here

Can anyone suggest a solution? Please just comment for more info thanks

1

There are 1 best solutions below

0
On

After a chat with Slack support team, at present is not possible to dynamically change the modal view, they said it could be a future feature, no date yet.