Actions menu api (#1862)
* wip * wip * random action on click * removing actions * register single key per command use * change removeActionsMenu action name * fixed actions menu not hiding content properly: * actions menu fix * added mock Block Player action * ActionsMenu buttons styling * added displaying priority for menu actions * moved utils actionMenu features to the UI * import as a type: * more object oriented style for API * removed registered actions from RemotePlayer instance * readme update * Fixing typos / Improving wording * added instructions on AlterActionsMenu test map Co-authored-by: Hanusiak Piotr <piotr@ltmp.co> Co-authored-by: David Négrier <d.negrier@thecodingmachine.com>
This commit is contained in:
@@ -162,3 +162,34 @@ class ActionMessage {
|
||||
remove() {};
|
||||
}
|
||||
```
|
||||
|
||||
### Adding custom ActionsMenu Action
|
||||
|
||||
When clicking on other player's WOKA, the contextual menu (we call it ActionsMenu) is displayed with some default Actions. It is possible to add custom actions right when player is clicked:
|
||||
|
||||
<div class="col">
|
||||
<img src="images/actions-menu-1.png" class="figure-img img-fluid rounded" alt="" />
|
||||
</div>
|
||||
|
||||
To do that, we need to listen for the `onRemotePlayerClicked` stream and make use of the `remotePlayer` object that is passed by as a payload.
|
||||
|
||||
```javascript
|
||||
WA.ui.onRemotePlayerClicked.subscribe((remotePlayer) => {
|
||||
remotePlayer.addAction('Ask to tell a joke', () => {
|
||||
console.log('I am NOT telling you a joke!');
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
`remotePlayer.addAction(actionName, callback)` returns an Action object, which can remove itself from ActionsMenu:
|
||||
```javascript
|
||||
const action = remotePlayer.addAction('This will disappear!', () => {
|
||||
console.log('You managed to click me!');
|
||||
});
|
||||
setTimeout(
|
||||
() => {
|
||||
action.remove();
|
||||
},
|
||||
1000,
|
||||
);
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user